2
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);
                }
        }
}

但它每次都会打开一个新窗口。我怎样才能做到这一点?

4

1 回答 1

0

hwnd您传递的是父窗口。通常,您也无法获得随机窗口来执行您想要的任何操作。你给他们发信息,如果他们理解信息,他们就会做出反应。例如WM_CLOSE,几乎总是被理解,WM_COPYDATA但很少被理解。

在这种情况下,它有点复杂。您需要通过IShellWindows. 然后设法调用它的IExplorerBrowser::BrowseToObject方法。但这有点太复杂了,无法在这里解释。

于 2013-07-29T15:20:19.173 回答