fugq0fff 发表于 2010-4-27 19:38:14

已经解决 按钮切换

本帖最后由 fugq0fff 于 2010-4-29 18:33 编辑

While 1
If ProcessExists("notepad.exe")Then
$Button1 = GUICtrlCreateButton("关闭", 0, 0, 97, 33)
GUICtrlSetBkColor(-1, 0xFF0000)
Sleep(1000)
Else
$Button2 = GUICtrlCreateButton("启动", 0, 0, 97, 33)
EndIf
WEnd
我想让程序启动后就不断的检测 指定的程序有没有在工作 例如 notepad.exe 如果没有就跳到 启动 如果已经启动就会跳到 关闭
可是他总是在启动和关闭之间跳来跳去不知道怎么办

fugq0fff 发表于 2010-4-27 22:14:42

请 高手帮帮忙啊先谢谢了

afan 发表于 2010-4-28 00:20:01

If ... Then
    ...
    Exit
Else
    ...
    Exit
EndIf

你这条件无论怎样都exit了

fugq0fff 发表于 2010-4-28 00:27:18

不好意思 我这个exit有去了可是他在启动和关闭之间总是跳来跳去不知道有没有好的方法请 版主 帮忙一下

131738 发表于 2010-4-28 00:31:29

好像是死循环。。。。。

afan 发表于 2010-4-28 00:50:57

本帖最后由 afan 于 2010-4-28 00:53 编辑

没有完整代码和意图,这段仅为猜测
不需要循环
$Button1 = GUICtrlCreateButton("关闭", 0, 0, 97, 33)
If Not ProcessExists("notepad.exe") Then GUICtrlSetState(-1, $GUI_HIDE)
$Button2 = GUICtrlCreateButton("启动", 0, 0, 97, 33)
If ProcessExists("notepad.exe") Then GUICtrlSetState(-1, $GUI_HIDE)

wuweixian 发表于 2010-4-28 05:46:42

:face (31):

3mile 发表于 2010-4-28 09:37:00

不大理解楼主的意思,只能猜一下了        If Not ProcessExists("notepad.exe") Then
                If MsgBox(4,0,"进程不存在"&@CRLF&"想创建记事本吗?")=6 Then
                        ShellExecute("Notepad.exe")
                EndIf
        Else
                If MsgBox(4,0,"进程存在"&@CRLF&"想关闭记事本吗?")=6 Then
                        $PID = ProcessExists("notepad.exe")
                        If $PID Then ProcessClose($PID)                       
                EndIf
        EndIf

auhj887 发表于 2010-4-28 17:44:21

写循环时要特别小心,否则容易出错。。

fugq0fff 发表于 2010-4-29 14:56:28

自己顶上去

lanfengc 发表于 2010-4-29 16:30:16

#include <GUIConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 100, 50, 192, 114)
$Button1 = GUICtrlCreateButton("MyButton", 0, 0, 97, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        If ProcessExists("notepad.exe")Then
                If GUICtrlRead($Button1)<>"关闭" Then
                        GUICtrlSetData($Button1,"关闭")
                        GUICtrlSetBkColor($Button1, 0xFF0000)
                        Sleep(1000)
                EndIf
        Else
                If GUICtrlRead($Button1)<>"启动" Then
                        GUICtrlSetData($Button1,"启动")
                        GUICtrlSetBkColor($Button1, 0x00FF00)
                        Sleep(1000)
                EndIf
        EndIf
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        If GUICtrlRead($Button1)="启动" Then
                                Run("notepad.exe")
                        ElseIf GUICtrlRead($Button1)="关闭" Then
                                ProcessClose("notepad.exe")
                        EndIf
        EndSwitch
WEnd


不知道我猜对了楼主的意思了没。 斗胆给个代码。

netegg 发表于 2010-4-29 17:16:33

强烈建议在学习编程之前把基础语文学好

fugq0fff 发表于 2010-4-29 17:58:17

本帖最后由 fugq0fff 于 2010-4-29 18:32 编辑

不知道我猜对了楼主的意思了没。 斗胆给个代码。
lanfengc 发表于 2010-4-29 16:30 http://www.autoitx.com/images/common/back.gif
谢谢你的代码已经好了
页: [1]
查看完整版本: 已经解决 按钮切换