-5

XPシステムでVC6を使用しています。タイトルが「C:\」に一致するウィンドウを探したいのですが、見つかりません。hr の戻り値は -2147023116 です。誰でも助けることができますか?

HWND hwnd = FindWindow(NULL, "C:\\");
IWebBrowserApp *pwba;
HWND hwndindex = NULL;
HRESULT hr = pwba->get_HWND((long*)hwndindex);
if (hwnd == hwndindex)
{
  BOOL found = true;
  blablabla...
}
4

2 に答える 2

2

以下のコードは動作するはずです:

INT iIndex = 1;
HWND hwnd = ::GetWindow( ::GetDesktopWindow(), GW_CHILD | GW_HWNDFIRST );
while( hwnd ) {
  CString sCaption; 
  ::GetWindowText(hwnd, sCaption.GetBuffer(256), 255);
  sCaption.ReleaseBuffer();

  //DWORD dwProcessID = 0L;
  //::GetWindowThreadProcessId(hwnd, &dwProcessID);   

  //CString sExePath;
  //::GetModuleFileName((HMODULE)dwProcessID, sExePath.GetBuffer(MAX_PATH), MAX_PATH);
  //sExePath.ReleaseBuffer();

  if ( sCaption.Find(_T("c:\\")) != -1 ) {  
        // found you!
  }

  hwnd = ::GetWindow( hwnd, GW_HWNDNEXT );
}
于 2013-08-09T09:32:37.190 に答える
0
HRESULT hr = pwba->get_HWND((long*)&hwndindex);

問題が解決しました!重要な「&」を 1 つ見逃していました

于 2013-08-10T08:40:33.543 に答える