2010年11月4日星期四

后台服务程序怎么弹窗?(转)

  1. function RunUserProcess(lpFileName,lpCommand:string;swFlags:DWORD):DWord;
  2. var
  3.   dwProcessId: DWord;
  4.   hToken, hProcess: THandle;
  5.   si: STARTUPINFO;
  6.   pi: PROCESS_INFORMATION;
  7. begin
  8.   Result := 0;
  9.   GetWindowThreadProcessId(FindWindow('Shell_TrayWnd', nil), @dwProcessId);
  10.   hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, dwProcessId);
  11.   if hProcess <> 0 then
  12.   begin
  13.     OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, hToken);
  14.     try
  15.       ZeroMemory(@si, SizeOf(STARTUPINFO));
  16.       si.cb := SizeOf(STARTUPINFO);
  17.       Si.lpDesktop := PChar('Winsta0\Default');
  18.       si.wShowWindow := swFlags;
  19.       si.dwFlags := STARTF_USESHOWWINDOW;
  20.       CreateProcessAsUser(hToken, PChar(lpFileName), PChar(' '+lpCommand), nil, nil, False, CREATE_NEW_CONSOLE or  NORMAL_PRIORITY_CLASS, nil, nil, si, pi);
  21.       Result := Pi.dwProcessId;
  22.     finally
  23.       CloseHandle(hProcess);
  24.     end;
  25.   end;
  26. end;
复制代码
RunUserProcess(IE路径,网页地址,弹窗模式);

摘自:http://bbs.bearcome.com/viewthread.php?tid=56965&page=1

没有评论: