Къде бъркам

1 отговора 128 прегледа
#1

Къде бъркам

Реших да си направя процедурка минимизираща всички прозорци. В първия вариант изглеждаше така:

procedure MinimizeAllWindows;
begin
EnumWindows(@MinimizeAll,0);
end;

където

function MinimizeAll(hwnd: hWnd; Param: integer): boolean; stdcall;
begin
CloseWindow(hwnd);
end;

Това, което се получи след тоя вариант естествено надмина и най-големите ми очаквания. Минимизираха се всички прозорци, ама действително всички - включително и тия които по традиция са си невидими. Постепенно функцията MinimizeAll се разшири и нещата сравнително се оправиха, но пак остават минимизиращи се прозорци, които не трябва да се минмизират. Като Application прозореца на Делфи приложенията. Въпроса е какво пропускам - тествам hwndto с IsVisible - true,GetTopWindow()>0, GWL_STYLE - WS_OVERLAPPEDWINDOW i едва тогава CloseWindow() обаче пак има пропуски.

Отговор
в отговор на Aджaмия #2

Re: Къде бъркам

Hi,
Ne razbrah zasto tochno ti triabwa da min wsichki windows i koi tochno ne triabwa da se minimizirat, obache mogesh da izpolzwash GetWindowModuleFileName(hwnd,LPCSTR,UINT) i da filtrirash po imeto na exe-to a koeto prinadlegi prozoretza.

Отговор