星期三, 五月 13, 2009

读代码学ahk 系列之10

1、MsgBox命令有几种格式?
MsgBox, 文本 或 MsgBox [, 类型,标题, 文本, 显示时间 ]
2、MsgBox命令按钮有几种类型?
OK—0
OK/Cancel—1
Abort/Retry/Ignore—2
Yes/No/Cancel—3
Yes/No—4
Retry/Cancel—5
Icon Hand (stop/error)—16
Icon Question—32
Icon Exclamation—48
Icon Asterisk (info)—64
Make 2nd button the default—256
Make 3rd button the default—512
System Modal (always on top) —4096
Task Modal—8192 这些参数允许相加而得到复合效果。
3、显示含有yes/no按钮并总在顶端的对话框?
msgbox,4100,标题,内容
4、MsgBox如何换行?
MsgBox,你好,欢迎关注静海安澜阁 `n 请继续关注

5、如何对MsgBox命令的选择结果进行处理?
IfMsgBox, ButtonName
ButtonName可选项: Yes No OK Cancel Abort Ignore Retry Timeout
6、对话框显示时间,并以秒为单位?
msgbox , , 标题 , 内容 , 5
7、运行外部可执行程序或者直接打开文件?
Run, 目标文件[ , 工作目录 , Max|Min|Hide|UseErrorLevel , 输出PID 变量]
8、如何运行记事本并以最大化状态显示?
Run, Notepad.exe , , Max
9、如何直接打开文件?
Run, MyFile.txt
10、命令行解释器cmd.exe 用那个宏来表示?
%ComSpec% /k在执行完命令后保留命令提示窗口,而/c则在执行完命令之后关闭提示窗口
11、命令“dir c:\Windows\system32”如何实现?
Run, %ComSpec% /k dir c:\Windows\system32
12、如何打开网页?
Run, http://hi.baidu.com/xuejinglan
13、如何打开系统属性窗口?
Run control sysdm.cpl 需要的话可以搜索所有的*.cpl文件
14、打开控制面板?
run,control
15、如何打开搜索窗口且指定搜索位置?
Run, find C:\
16、如何显示指定文件的属性窗口?
Run, properties MyFile.txt 注意:AHK 在退出前将自动关闭打开的属性窗口!
17、如何打印指定文件?
Run, print MyFile.txt
18、等待窗口出现、被激活、被关闭用那些命令?
WinWait/WinWaitActive/WinWaitClose
19、如何使目标窗口出现之前不执行后面语句?
WinWait [, 窗口标题, 窗口文本, 超时时间, 排除标题, 排除文本]
20、如何使目标窗口成为活动窗口?
WinActivate [,窗口标题, 窗口文本, 排除标题, 排除文本]
21、关闭窗口有几种方式?
正常关闭窗口(WinClose ),强行关闭窗口(WinKill):
WinClose/WinKill [ , 窗口标题, 窗口文本, 超时时间, 排除标题, 排除文本]
22、同名窗口使我们无法用窗口标题准确标识窗口,如何使用窗口ID来准确定位窗口?
使用获得窗口句柄的命令WinGet
WinGet[, 输出变量, CMD, 窗口标题, 窗口文本, 排除标题, 排除文本]
23、如何用窗口ID来替代窗口标题?
ahk_pid %ThisPID%
24、那个命令把鼠标点击事件发送到目标窗口的目标控件上?
ControlClick [, 目标控件或坐标位置, 窗口标题, 窗口文本, 鼠标按钮, 点击次数, 选项, 排除标题,排除文本]
25、ControlClick命令中,目标控件参数主要是什么?
目标控件参数是指要点击的控件的类别名(ClassNN)或控件文本,还可以使用控件句柄(若用的是控件句柄则第一个参数需留空,
并在第二个参数中使用ahk_id %控件句柄%)。
26、如何获得目标控件信息?
先打开你要进行操作的目标窗口,然后运行AutoIt3 Window Spy,把鼠标移到目标控件上
27、鼠标单击系统属性确定按钮代码是?
ControlClick, 确定, 系统属性
ControlClick, Button2, 系统属性
28、目标窗口或控件是隐藏状态,ControlClick还可以点击目标控件吗?
可以点击目标控件,但不能保证成功率。
29、如何设置控件文本?
ControlSetText [, 目标控件, 新文本, 窗口标题, 窗口文本, 排除标题, 排除文本]
例如:ControlSetText, Edit1, D:\foobar2000, Setup foobar
30、如何选中和取消单选框和复选框项目中的选择项目?
Control [, 命令, 值, 目标控件, 窗口标题, 窗口文本, 排除标题, 排除文本]
其中,“命令”就是让我们指定要进行何种设置的参数。对这些单选框/复选框按钮来说,适用的命令是“Check”和“UnCheck ”。
例如:Control, Check, , Button5, foobar
Control, UnCheck, , Button7, foobar
31、如何选择下拉列表的项目?
仍是使用Control命令,适用的命令是“Choose, N”和“ChooseString, String”,分别表示选中第N个项目和选中与字符串String
匹配的项目;例如:
Control, Choose, 5, ComboBox1, Installer
Control, ChooseString, 简体中文, ComboBox1, Installer
32、键盘如何重定义?
a::b
33、字符串如何进行自动替换?
::is::island of resistance或者
::china::
Clipboard=中华人民共和国
send,^V
Return
34、屏蔽或开启键盘、鼠标?
BlockInput 命令后,紧跟on,则屏蔽键盘鼠标操作,紧跟off,则重新启用用户输入。
如何仅仅屏蔽鼠标?如何恢复? BlockInput,MouseMove 恢复为:BlockInput, MouseMoveOff
35、如何建立一个弹出式窗口例示文本?如何关闭?
SplashTextOn [, 宽度, 高度, 标题, 文本]
`n 可以在MsgBox和SplashTextOn等命令中对显示的文本进行换行。
SplashTextOff 为关闭SplashTextOn命令建立的弹出式窗口。
36、如何将一系列指令重复执行指定次数? Loop [, Count]
{
循环体……
}
37、Loop中的count允许是表达式或者变量吗?
Count不允许是表达式,但允许是一个变量。
如何知道loop现在循环到第几次? loop 指令隐含有一个变量 A_Index ,用来记录当前状态是第几次循环
38、如何中断循环?
if a_index > 25
break ; 中断循环
39、如何跳过本次循环?
if a_index < 20
continue ; 跳过本次循环,开始一次新的循环
40、如何使使脚本等待指定时间?
Sleep,时间 单位为毫秒
41、如进行数学运算,使用什么符来把表达式运算的结果赋予某变量?
使用冒号等号符。如:NetPrice := Price * (1 - Discount/100)

42、i := i+1 的简化写法是什么?
i + =1
43、如何获取指定区间的随机数?
Random, 输出变量 [, 最小值, 最大值]
44、如何从指定文本中读取指定行?
FileReadLine, 输出变量, 文件名, 行数
45、如何判断文本超出边界?
ErrorLevel 是命令内置的一个变量,当读取文件超出边界时将被赋值为1.
46、ErrorLevel 为0和1时一般代表什么?
一般情况下,为0代表操作成功,为1,代表操作失败。
47、一般情况下,编写弹出式菜单代码的顺序是什么?
1、先定义子菜单项;2、编写菜单项;3、编写令菜单显示的代码;4、编写删除代码;5、编写响应代码。
48、如何添加子菜单?
Menu,add,子菜单项,:子菜单变量如:menu,mymenu,add,常用程序,:amenu
49、用来在弹出式菜单中显示一条分割线的代码是?
Menu, MenuName, add
50、正常菜单项的代码是?
Menu, MenuName, add,菜单项,响应标志
51、响应代码的格式是?
响应标志:
响应代码……
return
52、形如:Menu,amenu,add,txt 的代码是什么意思?
它其实是Menu,amenu,add,txt,txt 的一种简写,代表菜单项和响应标志
53、在指定坐标处显示菜单项的代码是?
Menu,MenuName,show,X坐标,Y坐标 如省略坐标,则在鼠标当前位置显示菜单项。
54、如何指定显示菜单的背景色?
Menu,MenuName,color,颜色代码
55、删除所有菜单的代码是什么?有什么作用?
Menu,mymenu,deleteall
如果没有这句代码,代码中分割线会在菜单重显时翻倍。如无分割线,可免
56、重启、关闭、注销系统的指令是什么?
Shutdown 后跟0为注销1为关机,2为重启,4为强制关闭 8为关闭关闭电源
57、隐藏脚本图标有几种方法?
Menu , tray , noicon 或者#NoTrayIcon
58、显示脚本图标的代码?
Menu , tray , icon
59、脚本图标的气泡提示如何显示?
Menu , tray , tip , 我自己的脚本
60、如何设置脚本的图标?
Menu , tray , icon , %systemroot%\system32\shell32.dll ,22或者Menu , tray , icon , e:\ico\1.ico
61、如何利用快捷键退出脚本?
#x::ExitApp
62、如何移除托盘图标的所有标准菜单项?
Menu , tray , NoStandard

63、如何插入托盘图标菜单?
Menu , tray , add , myitem
64、如何显示托盘图标的标准菜单项?
Menu , tray , standard
65、在托盘图标显示一个二级菜单代码如何表示?
menu,mymenu,add,boke
menu,mymenu,add,luntan
menu,tray,add,相关网站,:mymenu
Return 注意:响应标志后是 :不是::
66、如何使非热键类的脚本持久运行?
#Persistent
67、显示一个标准的文件选择对话框的代码为?
FileSelectFile, OutputVar [, Options, RootDir, Prompt, Filter]
Option 参数如被省略,则为单选。M 多选,M后允许随意跟随一个数字。S: 显示保存对话框。数字为一般为3,即文件及路径必须存在。Filter 参数格式如:Example: Audio (*.wav; *.mp2; *.mp3)
68、FileSelectFile命令如用户选择了多个文件,输出变量如何分割?
输出变量用(`n)字符分割。第一个参数为路径,随后紧跟选定的各个文件名。
if files =
{
MsgBox, 用户放弃选择。
}
Loop, parse, files, `n
{
if a_index = 1
mypath = %A_LoopField%
else
{
runwait, %mypath%\%A_LoopField%
}
}
return
69、运行并等待程序完成的指令是?
runwait
70、从某字符串中逐次分解出一个个的子串。
Loop, Parse , 某字符串 , 用于分割的特征变量
71、用对话框显示音量递增10%?
MsgBox, 音量递增10`%
72、使静音或者取消静音状态?
SoundSet, +1, , mute 或者Send,{Volume_Mute}
73、使主音量提升(降低)10%?
SoundSet ,+(-)10, MASTER
74、使音量中波形音量提升(降低)10%?
SoundSet , +(-)10, WAVE
75、#NoEnv 作用是什么?
主要是为了与以后兼容,也可以改善性能
76、如何对某些多媒体功能键重定义?
建个脚本内容为#InstallKeybdHook并执行,双击图标,窗口中选择菜单 view 第四项 key 开头的然后按多媒体键,f5刷新,看第二列内容比如a,显示的值是01e 。使用时就是sc01e::msgbox
77、显示器的宽度和高度用那两个常数表示?
A_ScreenWidth 和 A_ScreenHeight
78、如何移动鼠标光标?
MouseMove, X, Y [, Speed, R] Speed 参数的范围在 0 (最快) to 100 (最慢)之间取值.
R 参数 如果有此参数,则鼠标移动将以当前位置为基准,进行 x 和 y 像素的位移.
79、如何获取当前鼠标坐标?
MouseGetPos, X, Y
80、MouseGetPos还有什么作用?
MouseGetPos 指令用来返回鼠标的当前位置,以及鼠标当前悬停的窗口和控件。格式为:
MouseGetPos, [OutputVarX, OutputVarY, OutputVarWin, OutputVarControl
OutputVarWin 这个变量存储了当前鼠标悬停的窗口的ID ,即使窗口未处于激活状态。OutputVarControl 这个变量存储了当前鼠标悬停的控件的名称(ClassNN)。
81、MouseGetPos 命令在最后有1、2、3参数是什么意思?
1:在多文档界面程序(例如 SysEdit 或 TextPadThis )中可以准确的获取激活或置顶的子窗口信息。对其它情况就不那么准确了。2 :在 OutputVarControl 中存储 control's HWND/窗口句柄。3 :同时包含 1 和 2 的功能。
82、如何在屏幕上建立一个紧随鼠标的弹出式窗口?
ToolTip [, Text, X, Y]
83、如何获得当前位置像素的颜色RGB的值?
PixelGetColor, OutputVar, X, Y [, RGB]
84、如何在系统托盘建立一个弹出式窗口?
TrayTip [, Title, Text, Seconds, Options] 注意senconds的取值一般在10到30之间
85、如何用指定时间间隔自动或重复激发某子程序?
SetTimer , Label , 时间间隔
86、关闭某进程的代码是?
Process,close,autohotkey.exe
87、如何检索鼠标所在位置的信息?
MouseGetPos , , , id , control ; 得到鼠标所在位置窗口的id及控件名称
WinGetTitle, title, ahk_id %id% ;检索到相应id对应窗口的标题
WinGetClass, class, ahk_id %id% ;检索到相应id对应窗口的类名
88、如何得到当天的日期?
dd = %A_YYYY%年%A_MM%月%A_DD%日
89、如何给剪贴板赋值?
clipboard = %var%
90、当前桌面那个常数表示?
%A_Desktop%
91、如何设置鼠标速度?
SetDefaultMouseSpeed 30; 默认的是2 ,可以从0调到100,越小越快
92、如何设置鼠标动作结束之后的延迟?
SetMouseDelay 30; 默认是10毫秒
93、如何实现ctrl+鼠标双击?
send ^{click 100,200 2}
94、使滚轮向上滚2次?
click wheelup 2 ; wheelup 可以写成WU
95、滚轮向下滚一次?
click wheeldown ;wheeldown 可以简化为WD
96、使鼠标滚轮向下滚5次有几种方法?
Click , WD,5或
loop 5
click WD
97、当前位置鼠标单击左键
click ;
right 右键,left左键(默认可省略),middle 中键
98、当前位置鼠标双击左键?
click 2
99、移动鼠标到30,40?
click 30 , 40 , 0
100、点击鼠标右键的代码如何编写?
Click , 100 , 200 , right
101、如果鼠标点击的坐标是动态的如何表达?
Click %x% %y%
102、拖动某图标?
click 30,40 down
click 50,60 up
103、如何设置一个进度条?
Progress , %i% , 进度条下文本 , 进度条上文本 , 标题
104、如何创建快捷方式?
FileCreateShortcut, 目标文件, 快捷方式名 [, 工作目录, 用空格分开的参数, 描述, 图标, 快捷键, 图标标号, 运行状态]
注意:只需指定单个按键,所有的快捷键被指定为 CTRL+ALT + 快捷键,如果给该参数指定 B,将会产生一个 CTRL-ALT-B 的快捷键。运行状态1 - 正常(默认)3 - 最大化7 - 最小化
105、空格键
{space}
106、向左的箭头
{Left}
107、ctrl键?
^
108、alt键?
!
109、回车?
{enter}
110、小键盘的1?
Numpad1
111、Windows键?
#
112、Shift键?
+
113、逻辑与,把多个按键或鼠标组合成一个自定义键?
&
114、一对按键中的左边的按键?
< 如115、一对按键中的右边的按键?
>
116、通配符,表示热键被按下时,即使同时还有其他的按键按下,依然有效?
*
117、热键被触发后,动作不会被阻塞?
~
118、禁用某键?
在::后紧跟return即可。如:RWin::return
119、按键重映射?
a::b 如:RAlt::Rbutton 右alt映射为鼠标右键Lbutton::return 鼠标左键被屏蔽
120、仅在notepad中交换a、b键?
#IfWinActive ahk_class Notepad
a::b ;
#IfWinActive ;
121、鼠标定义?
LButton RButton MButton WheelDown WheelUp
122、键盘定义?
Space Tab Enter (or Return) Escape (or Esc) Backspace (or BS) Delete (or Del) Insert (or Ins) Home End PgUp PgDn Up Down Left Right ScrollLock CapsLock NumLock Numlock ON Numlock OFF Numpad0 NumpadPgUp NumpadDot (.) NumpadDel NumpadDiv (/) NumpadDiv (/) NumpadMult (*) NumpadMult (*) NumpadAdd (+) NumpadAdd (+) NumpadSub (-) NumpadSub (-) NumpadEnter NumpadEnter 1 a A LWin Control (or Ctrl) Alt Shift F1 PrintScreen CtrlBreak Pause Break
123、注释
;跟在需注释的语句之后,注意语句和分号之间至少要有一个空格。如果要注释多个语句可以使用/* */
124、函数?
Add(x, y)
{
return x + y ; "Return" expects an expression.
}
函数调用时,变量的后面使用 := 例如:Var := Add(2, 3) ;
由于一个函数调用就是一个表达式,所以函数的参数列表里面的变量前面不能加百分号“%”,相反的,字符串要使用引号。当一个命令的参数调用函数的时候,如果命令的参数不支持表达式,就必须使用百分号“%”,如:
MsgBox % "The answer is: " Add(3, 2)
125、如果要想在热字符串替换后加上空格?
在语句的后边加上 `,:*:btw::By the way `
126、弹出光驱
Drive, Eject,, 0
127、收回光驱
Drive, Eject,, 1
128、使窗口透明,值在1-255之间?
WinSet, Transparent, 100,我的电脑
129、创建或更新启动界面?
SplashImage,d:\1.jpg,b fs18
Sleep,5000
b fs 18 可以去除界面边框。原因不明
130、修改脚本之后,按住左键后按R重新载入脚本
~LButton & r::
reload
return
131、打开/激活记事本
IfWinExist 无标题 - 记事本
{
WinActivate
}
Else
{
Run Notepad
WinWait 无标题 - 记事本
WinActivate
}
132、隐藏任务栏 WinHide ahk_class Shell_TrayWnd
显示任务栏 WinShow ahk_class Shell_TrayWnd
133、如何强制单线程?
#SingleInstance force
134、屏蔽Ctrl+Alt+Del?
Regwrite,REG_SZ,HKEY_LOCAL_MACHINE,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe, Debugger, Hotkey Disabled
解除屏蔽 RegDelete,HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe

135、双击启动A程序.再双击,自动关闭A程序.
ifexist, 程序窗口标题
winkill, 程序窗口标题
else
run, 程序文件路径
return
136、当前窗口始终置于顶层?
WinSet AlwaysOnTop, on, A
137、关闭当前窗口置于顶层状态?
WinSet AlwaysOnTop, off, A
138、窗口还可以用表示?
ahk_class class、ahk_pid %PID%、ahk_id %ID%
139、音乐播放或暂停?
Send , {Media_Play_Pause}
140、音乐播放停止?
Send , {Media_Stop}
141、播放上一首?
Send , {Media_Prev}
142、播放下一首?
Send , {Media_Next}
143、按下浏览器回退键?
Send , {BROWSER_BACK}
144、按下浏览器 向前键?
Send , {BROWSER_FORWARD}
145、按下浏览器刷新键?
Send , {BROWSER_REFRESH}
146、按下浏览器停止键?
Send , {BROWSER_STOP}
147、按下浏览器搜索键?
Send , {BROWSER_SEARCH}
148、按下浏览器收藏键?
Send , {BROWSER_FAVORITES}
149、按下浏览器主页键?
Send , {BROWSER_HOME}
150、使静音?
Send , {VOLUME_MUTE}

没有评论: