0

파일 브라우저를 열어야하는 직장에서 설치 관리자를 만들고 있습니다. wix에는 파일 브라우저가 없으므로 Shell.BrowseForFolder 메서드를 사용하는 사용자 지정 vbscript 작업을 만들었습니다. 그것은 잘 작동하지만, 파일 대화 상자가 메인 주 창 뒤에 나타납니다. 누구든지이 문제를 해결하기 위해 취할 수있는 wix/vbscript 접근법을 알고 있습니까?vbScript의 FileOpenDialog 대화 상자 뒤에 사용자 지정 작업이 나타납니다.

답변

1

MSI UI에 대한 HWND를 찾아 Shell.BrowseForFolder로 전달하십시오. FindWindow ("MsiDialogCloseClass", vbNullString)를 사용하는 몇 가지 예제 솔루션을 볼 수 있습니다. 사용자 지정 작업에서 UI를 시작하는 것에주의하십시오. 자동 설치/복구/제거 등을 고려하여 모든 경우에 올바르게 작동하는지 확인해야합니다.

사용자가 디렉토리를 선택할 수 있도록하려는 것 같습니다. MSI는이를 기본 지원합니다. 당신이 그것을 사용하는 것이 좋습니다. 예를 들어 http://wix.codeplex.com/SourceControl/latest#src/ext/UIExtension/wixlib/BrowseDlg.wxs을 참조하십시오.

+0

빠른 응답을 보내 주셔서 감사합니다. 사용자가 디렉토리 만이 아닌 특정 파일을 선택할 수있게하려고하므로 사용자 지정 작업이 필요하다고 생각합니다. 저는 꽤 새로 워서 msi와 관련이 있습니다. 어떻게하면 HWND를 찾을 수 있는지, 그리고 어떻게 vbScript 함수에 전달할 수 있는지 말해 줄 수 있습니까? – user2437443

+0

MSI는 HWND를 공개하지 않으므로 직접 찾으십시오. 여기서 MSI에 대한 지식 부족으로 인해 다시는 돌아 오지 않아야합니다. 필자가 언급 한대로 FindWindow를 사용하여 창을 찾습니다. 또는 시스템의 창을 열거하여 원하는 기준 (제목, 프로세스 ID 등)과 일치하는 것을 찾을 수 있습니다. VBScript는 사용 가능한 표면적이 제한되어 있으므로 여기에서 많은 작업을 수행 할 수있는 기능을 실제로 제한한다는 것을 알 수 있습니다. – TheESJ