200分,如何使用 CreateProcess 打开 指定网页? ( 积分: 200 )

  • 主题发起人 主题发起人 抵住诱惑
  • 开始时间 开始时间

抵住诱惑

Unregistered / Unconfirmed
GUEST, unregistred user!
要求:<br>&nbsp;&nbsp;&nbsp;&nbsp;1,调用IE打开网页,例如打开&nbsp;www.163.com<br>&nbsp;&nbsp;&nbsp;&nbsp;2,打开后关闭刚打开的网页,例如间隔30秒后关闭掉刚打开的网页.<br><br>麻烦高手解答,奉上200分!
 
下面是一个函数,用于启动一个可执行文件,并传给启动参数(命令行),并等待它结束。<br>稍加改动就可以达到楼主的要求。把等待结束改为延时后关闭即可。<br>参数两个,前一个是可执行文件路径,后一个是命令参数。<br>注意可执行路径用ExtractShortPathName处理一下,要短文件名才行。<br>调用这个函数的例子:<br>M_wait_rar(ExtractShortPathName(extractfilepath(application.ExeName)+'rar.exe'),'x&nbsp;-o+&nbsp;'+ss+'&nbsp;'+ss2);<br><br>//函数*****************************************************************<br>procedure&nbsp;M_wait_rar(M_filename1,&nbsp;M_cmd1:&nbsp;string);<br>var&nbsp;&nbsp;SUInfo:&nbsp;TStartupInfo;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcInfo:&nbsp;TProcessInformation;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CmdLine2:&nbsp;string;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result1:&nbsp;boolean;<br>begin<br>&nbsp;CmdLine2&nbsp;:=&nbsp;'&quot;'&nbsp;+&nbsp;M_filename1&nbsp;+&nbsp;'&quot;'&nbsp;+&nbsp;M_cmd1;&nbsp;{&nbsp;注意检查长文件名}<br>&nbsp;&nbsp;FillChar(SUInfo,&nbsp;SizeOf(SUInfo),&nbsp;#0);<br>&nbsp;&nbsp;with&nbsp;SUInfo&nbsp;do&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;cb&nbsp;:=&nbsp;SizeOf(SUInfo);<br>&nbsp;&nbsp;&nbsp;&nbsp;dwFlags&nbsp;:=&nbsp;STARTF_USESHOWWINDOW;<br>&nbsp;&nbsp;&nbsp;&nbsp;wShowWindow&nbsp;:=&nbsp;sw_shownormal;<br>&nbsp;&nbsp;end;<br><br>&nbsp;&nbsp;Result1&nbsp;:=&nbsp;CreateProcess(nil,&nbsp;PChar(CmdLine2),&nbsp;NIL,&nbsp;NIL,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FALSE,CREATE_NEW_CONSOLE&nbsp;or&nbsp;NORMAL_PRIORITY_CLASS,&nbsp;NIL,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PChar(ExtractFilePath(M_filename1)),&nbsp;SUInfo,&nbsp;ProcInfo);<br>&nbsp;&nbsp;if&nbsp;Result1&nbsp;then&nbsp;&nbsp;{等待结束&nbsp;}<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WaitForSingleObject(ProcInfo.hProcess,&nbsp;INFINITE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(ProcInfo.hProcess);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{清理句柄&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(ProcInfo.hThread);<br>&nbsp;&nbsp;end;<br><br>end;
 
哥们,该不会我也上了贼船了吧。<br>这大富翁的分不能当饭吃,倒分就不必了吧。<br>看会不会又是&nbsp;32881&nbsp;得分,然后又倒回给您。<br>您的网名&nbsp;抵住诱惑&nbsp;看来人不如其名啊,连这虚的分都抵不住诱惑。
 
建议楼主看下《delphi深入windows编程》,估计这个问题很快就OK&nbsp;的了
 
楼上有意思```[:D]
 
为啥不用shellexecute呢?简单,方便,快捷<br>&nbsp;CreateProcess&nbsp;是创建进程,并不能打开网页,除非你先创建Ie进程,然后用消息让他间接的打开一个网页
 
不是你想的那样.看看我最后收回分的那些贴子吧...
 
我也是没办法才这样,有些问题悬在那,我自己都解决了..<br>还是没人给出合适的答案,呜呼,我都没分问问题了..<br>所以,,抽了一天时间,把答案都跟上了,虽然是我自己回自己的贴的,但是也都还算&nbsp;详细吧..呵呵..穷人,,菜鸟,,没分请教人,所以出此下策..见笑见笑&nbsp;!!!
 
后退
顶部