请教高手 vb 调用外部exe程序,如何让该程序后台运行

liushui513 2008-06-16 12:20:41
请教高手 vb 调用外部exe程序,如何让该程序后台运行
目前他会打开原先程序的界面,用vbhide 也解决不了

调用的是个 键盘设置器,程序在附件里,哪个高手帮忙给调试一下,如何能只在进程里运行,谢谢了

Private Sub Command1_Click()
Dim a As Integer
a = Shell("jp.exe", 0)
End Sub


这样实现不了, 我测试过 调用 notepad.exe 是可以隐藏到后台运行的(即只能在进程里看到)

有别的办法也行, 多谢了
...全文
630 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2008-06-17
  • 打赏
  • 举报
回复
JoyToKey貌似本身就有"启动时不显示本窗口"功能~~~

至于托盘,遍历一下托盘区再隐藏之即可~~~

还有一个猥琐的方案~~~~就是新建一个桌面,把你要隐藏的程序启动到那个桌面上去
leer168 2008-06-17
  • 打赏
  • 举报
回复
怎么那多星星啊
supergreenbean 2008-06-16
  • 打赏
  • 举报
回复

'标准模块代码
Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long


Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Dim pid As Long
GetWindowThreadProcessId hwnd, pid
If pid = lParam Then
ShowWindow hwnd, vbHide
End If
EnumWindowsProc = 1
End Function

Public Function RunApp(ByVal sApp As String) As Boolean
Dim pid As Long
pid = Shell(sApp, vbHide)
EnumWindows AddressOf EnumWindowsProc, pid
End Function




'窗体调用代码
Private Sub Command1_Click()
RunApp "F:\AVConverter MP3 Converter\MP3Converter.exe"
End Sub
liushui513 2008-06-16
  • 打赏
  • 举报
回复
您能否说明白一点呢,俺比较业余。 谢谢了
supergreenbean 2008-06-16
  • 打赏
  • 举报
回复
打开程序后,遍历其线程窗口,然后一个个ShowWindow(0)。
嗷嗷叫的老马 2008-06-16
  • 打赏
  • 举报
回复
绿豆吃巴豆没,哈哈哈哈~~~
xinghongyang 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 supergreenbean 的回复:]
打开程序后,遍历其线程窗口,然后一个个ShowWindow(0)。
[/Quote]
supergreenbean 2008-06-16
  • 打赏
  • 举报
回复
你加个计时器,在计时器事件中一直调用那个EnumWindows看看
liushui513 2008-06-16
  • 打赏
  • 举报
回复
另外 例如迅雷 千千静听 之类 都不能实现隐藏的哦
liushui513 2008-06-16
  • 打赏
  • 举报
回复
3楼老大,程序调试通过,但是 还是显示原程序的窗口。麻烦您再想想办法啊 我要隐藏的软件叫 JOY to key 是个游戏设置器。几百k。 麻烦老兄给调试个可以隐藏的。就是只在进程里可以看到,但是没有主窗口,包括右下角的状态栏目里也不能哟。 谢谢了。
liushui513 2008-06-16
  • 打赏
  • 举报
回复
刚下班回家 ,俺试试,纯属业余选手啊。 生百度代码 做小东西的。 谢谢各位大虾的关怀了。
嗷嗷叫的老马 2008-06-16
  • 打赏
  • 举报
回复
改吃巴豆吧
嗷嗷叫的老马 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 supergreenbean 的回复:]
引用 12 楼 myjian 的回复:
引用 6 楼 liushui513 的回复:
帅哥 ,程序调试不通过哦,显示

常数、固定长度字符串、数组、用户定义类型以及Declare语句,不允许作为对象模块的public成员

麻烦您再给调试一下看看,谢谢了


你看清楚每个代码块第一行的中文简体汉字...........



老马,不被人理解很痛苦,我想死了....
[/Quote]
[Quote=引用 16 楼 supergreenbean 的回复:]
引用 14 楼 liushui513 的回复:
还是实现不了啊, 那个哥哥能调试好了,给个明确弄用的。 谢谢了


上面的那块代码放到标准模块(.bas文件)

下面的那块代码放到窗体,然后窗体上放个叫Command1的命令按钮


如果你这样还调试不出来的话…… 我晚上不吃绿豆了
[/Quote]

//

哈哈哈哈哈哈哈哈哈哈

豆子可千万别有那想法~~~~~~~

咱VB版可不能少了你呀~~~~~~~~

红叶哥 2008-06-16
  • 打赏
  • 举报
回复
晚上咬胡豆...
才有味道
舉杯邀明月 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 supergreenbean 的回复:]
引用 14 楼 liushui513 的回复:
还是实现不了啊, 那个哥哥能调试好了,给个明确弄用的。 谢谢了


上面的那块代码放到标准模块(.bas文件)

下面的那块代码放到窗体,然后窗体上放个叫Command1的命令按钮


如果你这样还调试不出来的话…… 我晚上不吃绿豆了
[/Quote]

我估计你只有吃黄豆了~~~~
舉杯邀明月 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 liushui513 的回复:]
引用 8 楼 Chen8013 的回复:
有两个方法:

1. jp.exe不要用窗体。
2. 在 Form_Load() 事件中,把窗体设置为不可见。



jp.exe 是外部程序哦,不是自己编写的。
[/Quote]

我以为是你自己编写的程序。
当我没说~~~
波导终结者 2008-06-16
  • 打赏
  • 举报
回复
标准模块?什么是标准模块?
窗体,什么是窗体?
放command1要怎么放?
我是把全部代码拷进去,然后直接按F5的,怎么不行?你们代码调好再发出来啊,不要误人子弟!
supergreenbean 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 liushui513 的回复:]
还是实现不了啊, 那个哥哥能调试好了,给个明确弄用的。 谢谢了
[/Quote]

上面的那块代码放到标准模块(.bas文件)

下面的那块代码放到窗体,然后窗体上放个叫Command1的命令按钮


如果你这样还调试不出来的话…… 我晚上不吃绿豆了
QiaoDaLi 2008-06-16
  • 打赏
  • 举报
回复
三楼正解,代码测试通过~~~~~~~~学习了,谢谢!!
liushui513 2008-06-16
  • 打赏
  • 举报
回复
还是实现不了啊, 那个哥哥能调试好了,给个明确弄用的。 谢谢了
加载更多回复(10)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧