C ++ Win 32 API: проблема с прохождением окна SW_HIDE - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь скрыть окно 3-й части при загрузке наших компьютеров.Я использую следующий код.

#include<windows.h>
#include <stdio.h>
int main() {
    char windowName[500];
   HWND window = FindWindow("WindowClassAsReportedByWindowSpy++", NULL);

   //GetWindowText(window, windowName, 63);
   ShowWindow(firefox,SW_HIDE);

   getchar();
   return 0;
}

Единственная проблема - окно не будет скрыто.Любые идеи о том, почему это не работает / как я могу сделать это по-другому.

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Скорее всего, ваша программа вызывает FindWindow перед созданием целевого окна, и поэтому не находит его.

Вам нужно будет поспать и повторить поиск.

0 голосов
/ 07 сентября 2011

Возможно, вы хотите проверить работоспособность, чтобы убедиться, что FindWindow не возвращает NULL.Более того, вызывайте FindWindow в цикле , пока не вернет NULL.

#include <windows.h>
#include <stdio.h>

static const wchar_t g_cszFirefoxClass[] = L"firefox";

int __cdecl wmain(__in int argc, __in_ecount_z_opt(argc) wchar_t* _wargv[], __in_z_opt __wenviron[])
{
  UNREFERENCED_PARAMETER(argc);
  UNREFERENCED_PARAMETER(_wargv);
  UNREFERENCED_PARAMETER(__wenviron);

  HWND hWnd;

  do {
    hWnd = FindWindow(g_cszFirefoxClass, NULL);
    Sleep(100);
  } while (hWnd == NULL);

  wprintf(L"[-] Firefox found! [HWND = 0x%X]\n", hWnd);

  if (ShowWindow(hWnd, SW_HIDE))
  {
    wprintf(L"[-] Successfully hid Firefox window!\n");
    return EXIT_SUCCESS;
  }
  else
  {
    fwprintf(stderr, L"[x] Failed to hide Firefox window..\n");
    return EXIT_FAILURE;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...