dreamgg 发表于 2009-11-21 14:27:38

Run命令执行程序使用了@SW_HIDE,为什么还是无法隐藏程序呢?

本帖最后由 dreamgg 于 2010-1-4 16:05 编辑

Run命令执行程序显示标志为@SW_HIDE,为什么还是无法隐藏程序界面呢?

Run("c:\windows\temp\fix.exe","",@SW_HIDE)

有什么不对吗?

pusofalse 发表于 2009-11-21 15:08:05

这条语句本身的语法是正确的,问题在于fix.exe,在程序设计之初,可能阻止了隐藏状态。

dreamgg 发表于 2009-11-21 15:23:24

哦,原来如此,有没有其他的方法解决?

qixinwb 发表于 2010-1-3 19:00:23

$Run=Run("notepad.exe")
WinWait("无标题 - 记事本")
MsgBox(0,"","注意任务栏")
_SetParent("无标题 - 记事本", "Program Manager")
Func _SetParent($TitleP, $TitleC)
    If WinExists($TitleP) Then
      If WinExists($TitleC) Then
            $HwndP = WinGetHandle($TitleP)
            $HwndC = WinGetHandle($TitleC)
            $user32 = DllOpen("user32.dll")
            DllCall($user32, "str", "SetParent", "HWnd", $HwndP, "HWnd", $HwndC)
            Return 1
      Else
            Return -1
      EndIf
    Else
      Return -1
    EndIf
EndFunc
把这个例子改一下就ok了

ceoguang 发表于 2010-1-3 19:11:20

可能用vbs试下

dreamgg 发表于 2010-1-4 16:05:13

非常感谢4楼朋友的帮助,按你的方法解决了我的问题。

qixinwb 发表于 2010-1-4 20:21:33

如果改了之后,还是不行,那就是你调用的那个程序不支持隐藏窗口,我目前的办法是用shellexcute()调用那个程序的快捷方式,而不是直接调用他本身。因为可以把快捷方式的属性设置为最小化运行。侥幸的达到了隐藏的目的。希望各位高手能支招,让他在任务栏也不显示。那就太好了。(#NoTrayIcon在这里是没有用的。)

xtanxin 发表于 2010-1-5 12:23:55

FIX是个什么程序?

leibin0121 发表于 2013-6-5 10:32:32

学习了,感谢分享

zym3138 发表于 2013-6-5 11:32:53

这个还是没有完全隐起来

veve 发表于 2014-8-19 12:47:15

是不是这样隐藏了就不能对此窗口操作了

三维码 发表于 2014-10-13 11:34:48

学习了,感谢分享
页: [1]
查看完整版本: Run命令执行程序使用了@SW_HIDE,为什么还是无法隐藏程序呢?