procedure TForm1.Button1Click(Sender: TObject); var H: HWND; P: PChar; begin ShellExecute(0, 'open', 'notepad.exe', nil, nil ,SW_SHOW); while True do begin H := GetForegroundWindow; if H <> Handle then Break; end; P := 'collecte (问题虫) '; SendMessage(H, WM_SETTEXT, 0, Integer(P)); end;———————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 ————————————————————————————————————
var
H: HWND;
P: PChar;
begin
ShellExecute(0, 'open', 'notepad.exe', nil, nil ,SW_SHOW);
while True do
begin
H := GetForegroundWindow;
if H <> Handle then Break;
end;
P := 'collecte (问题虫) ';
SendMessage(H, WM_SETTEXT, 0, Integer(P));
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
为什么我紧跟着执行:
SendMessage(mHandle, WM_CLOSE, 0, 0);
窗口并没有关闭啊?
SendMessage(mHandle, WM_CLOSE, 0, 0);
应该放在while外,如:
procedure TForm1.Button1Click(Sender: TObject);
var
H: HWND;
P: PChar;
begin
ShellExecute(0, 'open', 'notepad.exe', nil, nil ,SW_SHOW);
while True do
begin
H := GetForegroundWindow;
if H <> Handle then Break;
end;
P := 'collecte (问题虫) ';
SendMessage(H, WM_SETTEXT, 0, Integer(P));
SendMessage(H, WM_CLOSE, 0, 0);
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
SendMessage(mHandle, WM_CLOSE, 0, 0);
应该放在while外,如:
procedure TForm1.Button1Click(Sender: TObject);
var
H: HWND;
P: PChar;
begin
ShellExecute(0, 'open', 'notepad.exe', nil, nil ,SW_SHOW);
while True do
begin
H := GetForegroundWindow;
if H <> Handle then Break;
end;
P := 'collecte (问题虫) ';
SendMessage(H, WM_SETTEXT, 0, Integer(P));
SendMessage(H, WM_CLOSE, 0, 0);
end;————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
if SendMessage(mHandle, WM_CLOSE, 0, 0)<>0 then
begin
MessageBoxEx(self.Handle,'关闭失败!','提示:',MB_ICONERROR,LANG_CHINESE);
end;