| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2048 人关注过本帖, 2 人收藏
标题:关于VB的Shell同步执行问题
只看楼主 加入收藏
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
结帖率:37.5%
收藏(2)
 问题点数:0 回复次数:3 
关于VB的Shell同步执行问题
又看到有朋友遇到这个问题,公布一个解决方法
   '标准模块中
  Public   Const   SYNCHRONIZE   =   &H100000   
  Public   Const   INFINITE   =   &HFFFFFFFF   
  Public   Const   WAIT_TIMEOUT   =   &H102&   
   
  Declare   Function   OpenProcess   Lib   "kernel32"   (ByVal   dwDesiredAccess   As   Long,   ByVal   bInheritHandle   As   Long,   ByVal   dwProcessId   As   Long)   As   Long   
  Declare   Function   CloseHandle   Lib   "kernel32"   (ByVal   hObject   As   Long)   As   Long   
  Declare   Function   WaitForSingleObject   Lib   "kernel32"   (ByVal   hHandle   As   Long,   ByVal   dwMilliseconds   As   Long)   As   Long   
  
sub RunExe(FileName as string)
          Dim   pId   As   Long,   pHnd   As   Long,   ret   
              pId   =   Shell(FileName,   vbNormalFocus)   
          pHnd   =   OpenProcess(SYNCHRONIZE,   0,   pId)   
          If   pHnd   <>   0   Then   
                                    Do   
                          ret   =   WaitForSingleObject(pHnd,   0)   
                          DoEvents   
                  Loop   While   ret   =   WAIT_TIMEOUT   
                  CloseHandle   pHnd   
                          End   If   
  End   Sub


'遇到要用Shell调用程序时换用Runexe函数执行
搜索更多相关主题的帖子: Shell 
2007-11-24 10:03
XieLi
Rank: 1
等 级:新手上路
威 望:1
帖 子:762
专家分:0
注 册:2007-7-24
收藏
得分:0 
跟直接用Shell这个有什么不同啊.

拥有蓝天的白云,拥有你的我.
2007-11-24 10:45
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
因为shell是异步的..
即在shell是运行时..可能它还没有执行完..就会执行下面的语句..
使用了楼主的代码之后..就可以等shell执行完..才继续执行下面的语句.

我的msn: myfend@
2007-11-24 10:49
XieLi
Rank: 1
等 级:新手上路
威 望:1
帖 子:762
专家分:0
注 册:2007-7-24
收藏
得分:0 
懂了!

拥有蓝天的白云,拥有你的我.
2007-11-24 11:41
快速回复:关于VB的Shell同步执行问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065856 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved