我用了ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, vbNormalFocus)但是调用出来的不是最小化的我想使用ShellExecute和使用Shell "C:\1.exe", 0一样,在调用时最小化。
请问应该如何做到呢?

解决方案 »

  1.   

    ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, vbMinimizedNoFocus)
      

  2.   

    或者
    Public Const SW_SHOWMINNOACTIVE = 7ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, SW_SHOWMINNOACTIVE)
      

  3.   

    Call ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, vbMinimizedNoFocus)

    Call ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, 7)
    都不行,不可以隐藏被调用的窗体。好象是格式的问题,msc等很多格式都不可以,TXT格式的就可以。
    不知道还有没有其他好点的方法可以实现呢?
      

  4.   

    你到底要隐藏还是最小化?
    如果是隐藏
    Call ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, vbHide)Call ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, 0)
      

  5.   

    VirtualDesktop(吴滂)大哥:
    我是要隐藏
    Call ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, vbHide)
    这个代码真的不行   不相信你自己试下看Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Sub Command1_Click()
        Call ShellExecute(0, vbNullString, "C:\WINDOWS\system32\gpedit.msc", vbNullString, vbNullString, vbHide)
    End Sub
    调用之后窗体还是在最前面
      

  6.   

    ShellExecute的功能确实很强大,可以调用可执行程序,如果是不可执行的,那么它会调用关联程序进行打开,如果没有关联程序就调用打开文件对话框,很好。但是大家想过没有,如果调用关联程序,那么是不是经过操作系统“二次处理”呢,嘎嘎,所以代码不好用喽。想弄的话,还是得历遍所有窗体返回HWND并取得PID来对照SHELL得到的PID,如果相符返回已经得到的HWND,然后进行隐藏了,用SENDMESSAGE就可以了吧。。当然还有其他API也提供这个功能,也许我会想到MOVEWINDOW把他移动到屏幕外去,呵呵,随便怎么做都行了。
    提到的用HWND来取得PID对照已经在API区里讨论过了
    http://community.csdn.net/Expert/topic/4746/4746854.xml?temp=.2479517