c ++ ShellExecute & quot; открыть & quot; в уже открывшемся окне

I'm trying to open a new folder in the same window that is already opened. This is the code:

if (DirectoryExists(myfolder)) {
HWND currenthwnd,hwnd;

hwnd=NULL;
currenthwnd=GetForegroundWindow();
if (currenthwnd!=hwnd)
{
hwnd=currenthwnd;
if (hwnd!=NULL)
{
ShellExecute(hwnd, "open", myfolder, NULL, NULL, SW_SHOW);
}
}
}

Но он каждый раз открывает новое окно. Как мне этого добиться?

1

Решение

hwnd который вы передаете это родитель окно. В общем, вы не можете получить случайные окна, чтобы делать то, что вы от них хотите. Вы отправляете им сообщение, и если они поймут это сообщение, они отреагируют на него. Например. WM_CLOSE почти всегда понимают, WM_COPYDATA менее часто.

В этом случае это немного сложнее. Вам нужно найти окно оболочки через IShellWindows, а потом умудриться позвонить IExplorerBrowser::BrowseToObject метод. Но это слишком сложно, чтобы объяснить здесь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]