![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как закрыть все приложения кроме моего????????? [D5, Win95/98]
Ted © (2002-01-27 07:38:00)Подскажите, плиз, как закрыть все запущеные на компе приложения кроме моего?????????
Ted (2002-01-28 09:16:00) [1]> yus
Все работает, стормозил про "Program Manager"
>copyr25
> yus
Спасибо.......
Ted (2002-01-28 09:03:00) [2]> yus
попробовал ваш способ, но он к сожалению вызывает вывод окна "завершение работы".
yus (2002-01-27 22:40:00) [3]Способ не лучший но работает.
procedure TForm1.Button1Click(Sender: TObject);
var
Hand:THandle;
begin
Hand:=GetForegroundWindow;
repeat
if (hand <> application.Handle)and(окна которые не нужно закрывать)and(.....) then postmessage(hand ,wm_close,0,0);
Hand:= GetNextWindow(Hand,GW_HWNDNEXT);
until Hand =0;
end;
copyr25 (2002-01-27 19:16:00) [4]Я делал это так:
...
public
{ Public declarations }
protected
procedure WMGetSysCommand(var Message :TMessage); message WM_SYSCOMMAND;
end;
var ... h,k:Hwnd;
...
procedure TForm1.WMGetSysCommand(var Message : TMessage) ;
begin //запоминаем handle своего окна
if (Message.wParam = SC_MINIMIZE) then k:=h
else inherited;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
h:=handle; //закрыть все окна
while h > 0 do begin
if isWindowVisible(h) then
postmessage(h,WM_SYSCOMMAND,SC_MINIMIZE,0);
h:=getnextwindow(h,GW_HWNDNEXT);
end;
k:=handle; // открыть свое окно
postmessage(k,WM_SYSCOMMAND,SC_RESTORE,0);
end;
Ted (2002-01-27 16:37:00) [5]Я имел ввиду закрыть программы запущеные пользователем. Например блокнот, калькулятор и т.п.
Anatoly Podgoretsky (2002-01-27 16:16:00) [6]Беда только в том, что твое после этого работать не будет.