找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 9237|回复: 7

[下载]改进的SHELL函数-------SuperShell

  [复制链接]

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2006-9-6 13:24:09 | 显示全部楼层 |阅读模式
在网上找到的.

可以指定目标EXE的运行目录,进程优先级,启动方式(最大化最小化等),以及进程句柄(hProcess)和Pid等

tQG0FDde.bas (3.06 KB, 下载次数: 18051)

也可以使用这个,一样能挂起执行,但还能做别的事:

  1. Option Explicit
  2. '*************************************************************************
  3. '**模 块 名:ModShellEx
  4. '**说    明:增强SHELL函数
  5. '**创 建 人:马大哈
  6. '**描    述:紫水晶工作室 http://www.m5home.com/
  7. '**日    期:2007年4月24日
  8. '**版    本:V1.0
  9. '*************************************************************************
  10. Private Declare Function GetProcessVersion Lib "kernel32" (ByVal ProcessId As Long) As Long
  11. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  12. Public Function ShellEx(ByVal FileName As String, Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus, Optional ByVal DelayTime As Long = -1) As Long
  13.     '与SHELL函数一样的参数,不过是阻塞执行.(同步)
  14.     'FileName - 目标文件名
  15.     'WindowStyle - 程序运行时窗口的样式
  16.     'DelayTime - 等待的时间,单位为ms
  17.     '备注:
  18.     '       DelayTime设置为-1时表示一直等待,直到目标程序运行结束
  19.     Dim I As Long, J As Long
  20.    
  21.     I = Shell(FileName, WindowStyle)
  22.     ShellEx = I
  23.     Do
  24.         If GetProcessVersion(I) = 0 Then Exit Do            '目标进程退出时跳出
  25.         Sleep 10
  26.         J = J + 1
  27.         DoEvents
  28.         If DelayTime <> -1 And J > DelayTime \ 10 Then Exit Do  '非永远等待+等待时间达到时跳出
  29.     Loop
  30.    
  31. End Function
复制代码

[此贴子已经被作者于2006-9-6 13:46:30编辑过]

我就是嗷嗷叫的老马了......

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2008-10-27 00:18:20 | 显示全部楼层
<p>这个参数是工作目录,就是程序里的"当前目录".</p>
<p>&nbsp;</p>
<p>有些游戏启动时会在当前目录里找一些文件,如果没有正确设置这个参数,就会找不到.</p>
我就是嗷嗷叫的老马了......

76

主题

375

回帖

0

精华

铜牌会员

积分
231
发表于 2008-11-4 15:25:36 | 显示全部楼层
<p>楼上的朋友一定没有做过启动游戏的程序....哈哈.</p>
<p>你试下用SHELL启动一个游戏,再设置游戏的优先级看看...用这个模块的确方便多了</p>

1

主题

12

回帖

0

精华

铜牌会员

积分
285
发表于 2008-12-8 18:29:24 | 显示全部楼层
的确很Super!

0

主题

7

回帖

0

精华

铜牌会员

积分
177
QQ
发表于 2008-12-13 07:05:36 | 显示全部楼层

我顶我顶...

楼主...

帮你顶~~


以下签名属个人原创~转载请转知我!呵呵...
************************************************************************
轮盘, 台湾轮盘, 皇家轮盘 俄罗斯轮盘 三代台湾轮盘

从来不发贴,这个一定要顶 www.668888.com  顶!

76

主题

375

回帖

0

精华

铜牌会员

积分
231
发表于 2009-4-12 20:49:46 | 显示全部楼层
<p>不好用,它启动的程序无法访问网络。</p>
<p>老马能改进否?</p>

0

主题

19

回帖

0

精华

铜牌会员

积分
79
发表于 2010-6-9 17:14:25 | 显示全部楼层
恳请老马改一下这个模块。
我用它启动《诛仙》这个网络游戏,结果。。。。。连不上服务器。。。。。

275

主题

3019

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17066

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
 楼主| 发表于 2010-6-9 21:28:40 | 显示全部楼层
注意启动路径.

另外,也可以试一下我新加的那个模块.
我就是嗷嗷叫的老马了......

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表