处男1 发表于 2013-11-25 22:55:26

暂停代码的初级玩家讲解

本论坛上面关于暂停代码的讲解实在是太多了,但是作为一个初级玩家来讲,就帮助里面的那段代码对于一个没有编程功底的人来说真的很难看明白。
论坛上面很多教你怎么暂停,但是也只是写出了帮助里面的代码,没有真正的讲解怎么回事。
所以对于新玩家来讲,短时间很不容易理解。最后草草了事,把代码存起来当以后调用的函数了。

我来给新人认真的一个一个字扣扣。
我只是知道皮毛,老师们也多多指点。#cs ----------------------------------------------------------------------------

AutoIt Version: 3.3.6.1
Author:         myName

Script Function:
        Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

; Press Esc to terminate script, Pause/Break to "pause"
;上面这些东西都没有用,就是介绍一些信息。
Global $Paused=1
;定义一个变量。
;(其中$paused=1是我自己加的,帮助上面是没有=1的)
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage");Shift-Alt-d
;以上三步的意思是设置按键
;;;; Body of program would go here ;;;;
While 1
    Sleep(100)
WEnd
;这个东西我就不用说了
;;;;;;;;
;主要说的就是,为什么$paused=NOT$paused,要这样写,很多新玩家都在此困惑。
Func TogglePause()
;~   MsgBox(0,$paused,"")
;这句话是我自己插入的,测试用。
   $Paused = NOT $Paused
;~         MsgBox(0,$paused,"")
;这句话是我自己插入的,测试用。
    While $Paused
;~                 MsgBox(0,$paused,"")
;这句话是我自己插入的,测试用。
      sleep(100)
      ToolTip('Script is "Paused"',0,0)
    WEnd
;~         MsgBox(0,$paused,"1")
;这句话是我自己插入的,测试用。
    ToolTip("")
EndFunc

Func Terminate()
    Exit 0
EndFunc

Func ShowMessage()
    MsgBox(4096,"","This is a message.")
EndFunc
好了,下面你先云行一下上面的代码,试着总结按paused键后的反应。
记住反应后,在把我加的代码前面的;~符号都去掉,再看反应。
记住后在把我之前=1那个去掉,完全换做帮组上的例子,在看反应。
记住后把,之前=1的那个去掉,;~也去掉,看反应。


结果你会看到
好了,下面你先云行一下上面的代码,试着总结按paused键后的反应。【运行后当按paused后,没反应,再按一下,左上角出现,Script is "Paused】
记住反应后,在把我加的代码前面的;~符号都去掉,再看反应。【运行后按paused,1,确定一下,false,再确定false1,再按pause,true,然后出现Script is "Paused】
一次按我上面的步骤做。
完成我的4部后,你会发现,其实$paused=NOT$paused这个东西就是变化是不是“真”的语句,就好像,当while 1时,就是真,一个变量假如被=not那他肯定不能执行while了,因为【while 变量】变量是个真实存在的东西所以永远都运行,而被=not了以后,那么他就是一个不存在的东西,一个不存在的东西就不能执行while了。


说的虽然有点乱,但是是我看了好半天研究明白了,有点笨了,但是觉得,对这块不懂的人来说还是有点帮助的。

zhongzijie 发表于 2013-11-25 23:01:29

收藏学习了,谢谢楼主。

fengzhanshan 发表于 2013-11-26 01:02:58

太好了                  a

wszhov 发表于 2013-11-26 07:38:02

呵呵,就是个bool值,(布尔),真和假,0和1,1的时候为真,$paused=NOT$paused这么变化后,为0,就是假,楼主有自己的见解,我也说下自己的了

ak47gglllk 发表于 2013-11-28 11:16:52

谢谢,非常感谢,收藏了

wangms 发表于 2015-3-17 20:50:32

一键开关切换,很有用处的

xlj310 发表于 2015-10-10 11:07:22

本帖最后由 xlj310 于 2015-10-10 11:16 编辑

确实有用,理解不难,写代码也不难,但我以为现在一般是多核处理器,没有想到这个会让主程序挂起,思路不错。以后暂停程序就用这个。


初始化时Global $Paused=0 这样更好。按一次就有反应,不然要按两次后才会有暂停效果。
页: [1]
查看完整版本: 暂停代码的初级玩家讲解