명령이 실행 된 Explorer 폴더에서 지정된 디렉터리를 열려면 셸 명령을 만들려고합니다.기존 탐색기 창에서 특정 디렉토리 또는 폴더를 여는 방법은 무엇입니까?
regedit (HKCR\Directory\background\shell
)의 오른쪽 클릭 메뉴 항목으로 추가 하겠지만 현재 Explorer 인스턴스에서 실제로 폴더를 열 수있는 방법을 알아낼 수 없습니다. ("열린 파일 위치"옵션과 같이).
명령이 실행 된 Explorer 폴더에서 지정된 디렉터리를 열려면 셸 명령을 만들려고합니다.기존 탐색기 창에서 특정 디렉토리 또는 폴더를 여는 방법은 무엇입니까?
regedit (HKCR\Directory\background\shell
)의 오른쪽 클릭 메뉴 항목으로 추가 하겠지만 현재 Explorer 인스턴스에서 실제로 폴더를 열 수있는 방법을 알아낼 수 없습니다. ("열린 파일 위치"옵션과 같이).
열린 파일 위치 기능 (shell32의 COpenFileLocationMenu)은 레지스트리의 단순한 정적 명령이 아닌 셸 확장입니다. COpenFileLocationMenu는 IObjectWithSite
도 구현합니다.
COpenFileLocationMenu의 IContextMenu::InvokeCommand 메서드를 호출하면 해당 사이트에서 IUnknown_QueryService(..., SID_SInPlaceBrowser, IShellBrowser)
이 호출되므로 IShellBrowser
으로 Explorer 창을 탐색 할 수 있습니다. ...
배경 메뉴 항목은 IShellExtInit::Initialize
에서 폴더 위치를 수신하고 일반 메뉴 항목은보기를 얻을 IShellBrowser::QueryActiveShellView
를 사용하고 현재 위치를 찾을 수 있습니다
당신은 당신에게 다음 셸 확장을 작성하지 않으려면 scriptableShellWindows object을 해결해야하지만 Powershell의 Pluvoke'ing GetForegroundWindow
을 사용하여 올바른 창을 찾으려면 약간의 추측을해야합니다.