请教,怎样运行一运行我的程序就关闭任务栏上所有运行的程序(100分)

  • 主题发起人 主题发起人 lsssxs
  • 开始时间 开始时间
L

lsssxs

Unregistered / Unconfirmed
GUEST, unregistred user!
请教,怎样运行一运行我的程序就关闭任务栏上所有运行的程序
让任务栏显示的就是运行我的程序,别的程序都关闭,如果在我的程序之后运行,也关闭他,强行关闭掉,
 
EnumWindows(@EnumWindowsProc, 0); //遍历窗口关掉相应进程

function EnumWindowsProc(WinHwnd: LongWord; Param: LongWord): Boolean; stdcall;
var
WinProcessId : LongWord;
MyProcessid: LongWord;
begin
Result := TRUE;

{--过滤条件--}
if ( IsWindowVisible(WinHwnd) or IsIconic(WinHwnd) ) and
(
(GetWindowLong(WinHwnd, GWL_HWNDPARENT) = 0) or
(GetWindowLong(WinHwnd, GWL_HWNDPARENT) = Longint(GetDesktopWindow))
)and
( GetWindowLong(WinHwnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = 0 ) then
begin
GetWindowThreadProcessId(WinHwnd, @WinProcessId);
GetWindowThreadProcessId(Form1.handle, @MyProcessId);//得到自己进程ID
if WinProcessId<>MyProcessId then
TerminateProcess(OpenProcess(PROCESS_TERMINATE,BOOL(0),WinProcessId), 0);
end;
end;
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3451328
 
很好,特别感谢2位兄弟
每人50分,不要嫌弃分少,


procedure TForm1.Timer1Timer(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,0)
end;
 
还是有一个问题,这个只是关闭掉非系统的,如果市和系统一起启动,还是关闭不了,有办法只要在任务栏上有显示的,除我的程序本身以外的,都关闭他们,可以吗
 
后退
顶部