문제

HTA 응용 프로그램은 mshta.exe 내에서 호스팅되므로 어떻게 매니페스트를 제공합니까? 또한 mshta.exe.manifest를 제공한다고 가정하면 다른 HTA 앱을 잠재적으로 파괴 할 수 있습니까?

도움이 되었습니까?

해결책

Vista+에서 Mshta.exe는 내장 된 매니페스트를 가지고있어 외부 선언보다 우선 순위를 차지하므로 제안이 옵션이 아닙니다.

XP/2003에서는 시스템 바이너리의 동작을 수정하기 위해 System32에서 파일을 삭제하는 것처럼 나쁜 형태 일지라도 제안이 효과가있을 것입니다 (특히 매니페스트에 넣은 등록이 귀하가있는 개체인지 확인하십시오. 돌보는 사람 만).

Win2003 이상에서 사용 가능한 적절한 솔루션은 Microsoft.windows.actctx 대상 명백한 명백한 참조가 주어지면 객체를 인스턴스화하기 위해.

예를 들어:

var actCtx = WScript.CreateObject("Microsoft.Windows.ActCtx");
actCtx.Manifest = "myregfree.manifest";
var obj =  actCtx.CreateObject("MyObj");   

아마도 이것이 XP에서도 작동해야한다면, 당신이 취할 수있는 경로는 두 솔루션의 조합입니다.

다른 팁

편집하다: 내 대답은 잘못되었지만 비슷한 오답을 피하기 위해 여기에 남겨 둘 것입니다. :)


질문이 컴퓨터에 등록하지 않고 COM 객체에 액세스 할 수 있다는 것입니다. 답은 잠정적 인 예라고 생각합니다. 그러나 당신이해야 할 작업은 상당 할 것이며 대부분의 개발 도구가 물론 Delphi, .NET, Java)에게 제공하는 많은 저수준 코드를 구현하는 것을 의미합니다. DLL과 직접 인터페이스해야합니다 (일반적인 DLL과 같이 인터페이스를 쿼리하고 메소드를 호출해야합니다.

C, C ++ 지식이있는 경우, COM 이이 언어에서 액세스하는 방식은 몇 가지 포인터를 제공합니다.

더 이상 도움이되지 않아서 죄송합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top