lxh495349465 发表于 2009-5-31 19:43:23

如果用Autoit来隐藏主窗口,只显示子窗口

本帖最后由 lxh495349465 于 2009-5-31 20:06 编辑

我想做一个程序的优化版,但是调出子窗口的时候,主窗口还在屏幕上,我现在已经利用Autoit通过激
活了主窗口,然后通过发送快捷键调出了程序的子窗口,但是调出子窗口的时候,主窗口还在显示,大家有什么方法能够让Autoit在调出子窗口时候将主窗口隐藏吗?

我前面的程序是例如我要优化的程序是同目录下的:程序.exe,主窗口标题是:程序主窗口,
程序子窗口标题是:子窗口(注:打开主窗口后按Shift+End可以调出子窗口)
Run("程序.exe")
WinActive ( "程序主窗口")
Send("+END")
接下来就是怎么隐藏主窗口保留子窗口了
大家怎么设计?帮忙下。。谢谢

17911 发表于 2009-5-31 20:04:20

本帖最后由 17911 于 2009-5-31 20:05 编辑

GUISetState(@SW_HIDE,$Form1)

netegg 发表于 2009-5-31 20:06:26

GUISetstate($SW_HIDE)
GuiSwitch(子窗体)
GUISetState($SW_SHOW)

lynfr8 发表于 2009-5-31 21:40:23

论坛已有相关帖子了#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
While 1
    ;$reset = False
    $Form1 = GUICreate(" 如何在主窗口中弹出一个列表对话框", 400, 200, 200, 200)
    $Button1 = GUICtrlCreateButton("开始", 150, 144, 121, 33, 0)
    $Form2 = GUICreate("列表对话框",200, 200, 200, 200)
    $Button2 = GUICtrlCreateButton("确定", 24, 40, 121, 33, 0)
        GUICtrlCreateCombo("请选择", 24, 10, 121, 33)
    GUISetState(@SW_SHOW, $Form1)

    While 1
      $nMsg = GUIGetMsg(1)
      Switch $nMsg
            Case $GUI_EVENT_CLOSE
                If $nMsg == $Form1 Then
                  Exit
                ElseIf $nMsg == $Form2 Then
                  GUISetState(@SW_SHOW, $Form1)
                  GUISetState(@SW_HIDE, $Form2)
                EndIf
            Case $Button1
                GUISetState(@SW_SHOW, $Form2)
                GUISetState(@SW_HIDE, $Form1)
            Case $Button2
                GUISetState(@SW_SHOW, $Form1)
                GUISetState(@SW_HIDE, $Form2)
                ;$reset = True
      EndSwitch
        ;If $reset =False Then ExitLoop
    WEnd
WEnd

bachelor66 发表于 2009-6-1 09:45:11

之前没看到,这个也是实用的,记下了

lxh495349465 发表于 2009-12-16 22:24:22

非常感谢大家的帮忙。提供的代码都可用。。谢谢

auhj887 发表于 2010-4-12 22:28:19

非常感谢大家,我有学到一招。
页: [1]
查看完整版本: 如果用Autoit来隐藏主窗口,只显示子窗口