DELPHI常用技巧

 等待程序运行结束
  1. procedure TForm1.Button1Click(Sender: TObject);   
  2. var  
  3.   sCommandLine: string;   
  4.   bCreateProcess: boolean;   
  5.   lpStartupInfo: TStartupInfo;   
  6.   lpProcessInformation: TProcessInformation;   
  7. begin  
  8.   sCommandLine := 'D:/TEMP/TEST.EXE';   
  9.   //  StartupInfo   
  10.   FillChar(lpStartupInfo, Sizeof(TStartupInfo), #0);   
  11.   lpStartupInfo.cb := Sizeof(TStartupInfo);   
  12.   lpStartupInfo.dwFlags := STARTF_USESHOWWINDOW;   
  13.   lpStartupInfo.wShowWindow := SW_NORMAL;   
  14.   
  15.   bCreateProcess := CreateProcess(nil, PChar(sCommandLine),   
  16.     nilnil, True, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,   
  17.     nilnil, lpStartupInfo, lpProcessInformation);   
  18.   if bCreateProcess then      //等外部进程的结束   
  19.     WaitForSingleObject(lpProcessInformation.hProcess, INFINITE);   
  20. end;  
监视另一个程序的启动和关闭的动作

  1. Procedure WinExecAndWait(CommandLine:String);   
  2.   var ComLineBuffer: array[0..512of char;   
  3.       StartupInfo: TStartupInfo;   
  4.       ProcessInfo: TProcessInformation;   
  5.       Re:Cardinal;   
  6.   begin  
  7.     StrPCopy(ComLineBuffer,CommandLine);   
  8.     FillChar(StartupInfo, Sizeof(StartupInfo), #0);   
  9.     StartupInfo.cb := Sizeof(StartupInfo);   
  10.     StartupInfo.dwFlags := STARTF_USESHOWWINDOW;   
  11.     StartupInfo.wShowWindow := SW_HIDE;   
  12.     if CreateProcess(nil,   
  13.                      ComLineBuffer,  { pointer to command line string }  
  14.                      nil,  { pointer to process security attributes }  
  15.                      nil,  { pointer to thread security attributes }  
  16.                      True,  { handle inheritance flag }  
  17.                      CREATE_NEW_CONSOLE or   { creation flags }  
  18.                      NORMAL_PRIORITY_CLASS,   
  19.                      nil,   { pointer to new environment block }  
  20.                      nil,   { pointer to current directory name, PChar}  
  21.                      StartupInfo,  { pointer to STARTUPINFO }  
  22.                      ProcessInfo) { pointer to PROCESS_INF }  
  23.     then  
  24.     begin  
  25.       WaitforSingleObject(ProcessInfo.hProcess, INFINITE);   
  26.       GetExitCodeProcess(ProcessInfo.hProcess, Re);   
  27.       CloseHandle(ProcessInfo.hProcess);  { to prevent memory leaks }  
  28.       CloseHandle(ProcessInfo.hThread);   
  29.     end;   
  30.   end;
对某一个窗口发送鼠标消息

  1. SendMessage(Handle,WM_LBUTTONDBLCLK,0,0); 
对系统发消息关闭程序

  1. SendMessage(Handle, WM_CLOSE, 00);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值