программно Я открываю панель управления Windows с помощью ShellExecute программно() изменения:размера и/или положение панели управления Windows
TCHAR strParameter[MAX_PATH];
wsprintf(strParameter, _T("shell32.dll, Control_RunDLL \"%ws\""), strApp);
HINSTANCE result = ShellExecute(NULL, _T("open"), _T("rundll32.exe"), strParameter, NULL, SW_SHOWNORMAL) ;
Теперь я хотел бы манипулировать окно панели управления путем изменения его размера или его положение.
Я знаю, что как только вы получите ручку окна, вы можете использовать SetWindowPos().
Проблема в том, что я не мог найти способ получить этот дескриптор в случае панели управления. Я не могу перечислять на основе заголовка окна или класса окна, потому что я не знаю ни того, ни другого.
Кто-то уже сделал это с Windows 7?
Возможный дубликат [Как получить hWnd окна, открытого ShellExecuteEx .. hProcess?] (Http://stackoverflow.com/questions/3269390/how-to-get-hwnd-of-window-opened-by- shellexecuteex-hprocess) – David
Я так не думаю: я также пытался использовать CreateProcess() вместо ShellEexecute(), чтобы я мог использовать PID для перечисления, но это не помогает. Я подозреваю, что причиной этого является rundll32.exe (строка командной строки: rundll32.exe shell32.dll, Control_RunDLL), но окно панели управления, вероятно, не связано с процессом rundll32.exe, а с explorer.exe (?). Но перечисление всех окон explorer.exe также не поможет, потому что я не знаю, какое имя или класс окна панели управления в любом случае. – Andariel