Текущий архив: 2002.12.05;
Скачать: CL | DM;
Вниз
Как закрыть другую прогу? Найти похожие ветки
← →
DJ LLL © (2002-10-23 22:21) [0]ХЕЛП! Помогите мне. Надо закрыть другую прогу. В FAQ"е нашел такое чудо:
SendMessage(ApplicationHandle,WM_CLOSE,0,0)
ApplicationHandle - ???????????? =8:(
← →
Dr_Mike © (2002-10-23 23:03) [1]FindWindow перед этим
← →
DJ LLL © (2002-10-23 23:29) [2]Как это сделать. Я новичок, несердись.
← →
Song © (2002-10-24 09:48) [3]Почитай хэлп по FindWindow
← →
F1 (2002-10-24 11:20) [4]Вот прога, ищет все окна, и может их закрывать или делать невидимыми.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, ComCtrls, ImgList;
type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
TreeView1: TTreeView;
Edit1: TEdit;
ImageList1: TImageList;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//Получаем список окон
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var
p:^HWND;
Wnd:HWND;
Buf:array[byte] of char;
begin
TreeView1.Items.Clear;
Wnd:=Handle;
repeat
Buf[0]:=#0;
if GetParent(Wnd)=0 then
begin
if GetWindowText(Wnd, Buf, 255)>0 then
begin
New(p);
p^:=Wnd;
with TreeView1.Items.Add(Nil, Buf) do
begin
if IsWindowVisible(Wnd) then
begin
ImageIndex:=0;
SelectedIndex:=0;
end else
begin
ImageIndex:=1;
SelectedIndex:=1;
end;
Data:=P;
end;
end;
end;
Wnd:=GetNextWindow(Wnd, GW_HWNDNEXT);
until Wnd=0;
end;
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
Var
p:^HWND;
begin
if TreeView1.Selected=Nil then Exit;
p:=TreeView1.Selected.Data;
Edit1.Text:=IntToStr(p^);
end;
//Change Visible
procedure TForm1.SpeedButton2Click(Sender: TObject);
Var
p:^HWND;
begin
if TreeView1.Selected=Nil then Exit;
p:=TreeView1.Selected.Data;
if IsWindowVisible(p^) then
begin
ShowWindow(p^,SW_HIDE);
TreeView1.Selected.ImageIndex:=1;
TreeView1.Selected.SelectedIndex:=1;
end else
begin
ShowWindow(p^,SW_SHOW);
TreeView1.Selected.ImageIndex:=0;
TreeView1.Selected.SelectedIndex:=0;
end;
SetFocus;
end;
//Попытка закрытия, именно попытка *
procedure TForm1.SpeedButton3Click(Sender: TObject);
Var
p:^HWND;
begin
if TreeView1.Selected=Nil then Exit;
p:=TreeView1.Selected.Data;
SendMessage(p^, WM_CLOSE, 0, 0);
Dispose(p);
TreeView1.Selected.Destroy;
end;
* Если окно не захочет закрываться, например спросит "А не хотите ли вы блин сохранить документ, блин???", то оно не закроется. А если ты все-таки хочешь железно закрыть чужое окно, тогда уничтожай процесс (TerminateProcess), но для начала почитай про это повнимательней(есть последствия). Или внедряйся в другой процесс и завершай его изнутри это лучший способ, но геморойный.
← →
Song © (2002-10-24 11:37) [5]2F1 (24.10.02 11:20)
Пушкой по воробьям? :-))
Страницы: 1 вся ветка
Текущий архив: 2002.12.05;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.016 c