找回密码
 加入
搜索
查看: 4505|回复: 10

[效率算法] Send("!a"),Send("!i")什么意思呢?谢了。

  [复制链接]
发表于 2011-12-15 00:22:08 | 显示全部楼层 |阅读模式
Send("!a"),Send("!i"),     Send("!n") 这个是alt+N快捷键,那其他的呢。怎么把IE修改成自己指定的,不允许别的人或是软件修改,每次都被修改谢谢。
发表于 2011-12-15 03:04:33 | 显示全部楼层
请问楼主 ,你看帮助了吗?
如果没有我帮你复制
备 注

关于使用 Send 函数的更多说明/技巧请查看 附录-按键列表.
AutoIt 可发送所有的 ASCII 与扩展的 ASCII 字符 (0-255), 要发送 UNICODE 字符, 必须使用 "ASC" 选项与发送的字符代码(见下面的 {ASC} ).

"Send" 命令的语法类似 ScriptIt(微软提供的命令行程序) 与 Visual Basic 的 "SendKeys" 命令. 字符按原样发送, 但下列字符除外:

'!'
发送 ALT 键击动作, 因此, Send("This is text!a") 将发送 "This is text" 然后点击 "ALT+a".

有些程序区分字母的大小写和 ALT 键, 即: "!A" 不同于 "!a". "!A" 表示 ALT+SHIFT+A, 而 "!a" 则表示 ALT+a. 如果有疑问最好使用小写!

'+'
发送 SHIFT 键击动作, 因此 Send("Hell+o") 表示发送文本 "HellO". 而 Send("!+a") 表示发送 "ALT+SHIFT+a".

'^'
发送 CONTROL 键击动作, 因此 Send("^!a") 表示发送 "CTRL+ALT+a".

有些程序区分字母的大小写和 CTRL 键,即 "^A" 不同于 "^a". "^A" 表示 CTRL+SHIFT+A, 而 "^a" 表示 CTRL+a. 如果有疑问最好使用小写!

'#'
发送 Windows 徽标键; 因此, Send("#r") 表示发送 Win+r 启动"运行"对话框.

可以设置 SendCapslockMode(选项) 为发送前关闭大小写切换键(Caps Lock), 发送完成后恢复.
但如果在 Send 函数开始执行时, 用户已按住 Shift 键, 文本可能发送为大写字体.
替代方法是执行 Send("{SHIFTDOWN}{SHIFTUP}") 之前执行其它 Send() 操作.

某些键盘(如捷克键盘), 当使用 Shift 键或 CAPS LOCK 键被启用时可以发送不同的字符.
由于 AutoIt 的发送实施大写锁定时, 字符将被切换, 所以它不会工作.

某些特殊键也可以发送,但应在括号内:

Windows 不允许模拟 "CTRL-ALT-DEL" 组合键!
Send 命令 ("标志"值=0) 键击结果 
{!} ! 
{#} # 
{+} + 
{^} ^ 
{{} { 
{}} } 
{SPACE} 空格 
{ENTER} 主键盘回车键 
{ALT} ALT 
{BACKSPACE} 或 {BS} 退格键(Backspace) 
{DELETE} 或 {DEL} 删除键(Delete) 
{UP} 上箭头键 
{DOWN} 下箭头键 
{LEFT} 左箭头键 
{RIGHT} 右箭头键 
{HOME} HOME 键 
{END} END 键 
{ESCAPE} 或 {ESC} Esc 键 
{INSERT} 或 {INS} Insert 键 
{PGUP} PageUp 键 
{PGDN} PageDown 键 
{F1} - {F12} 功能键 
{TAB} TAB 键 
{PRINTSCREEN} 屏幕复制键(PrintScrn) 
{LWIN} Windows 左徽标键 
{RWIN} Windows 右徽标键 
{NUMLOCK on} 数字锁定键(NumLock) 
{CAPSLOCK off} 大小写切换键(CapsLock) 
{SCROLLLOCK toggle} 屏幕上滚锁定键(ScrollLock) 
{BREAK} Ctrl+Break 操作 
{PAUSE} 暂停(PAUSE) 
{NUMPAD0} - {NUMPAD9} 小键盘数字0-9 
{NUMPADMULT} 小键盘乘号键 
{NUMPADADD} 小键盘加号键 
{NUMPADSUB} 小键盘减号键 
{NUMPADDIV} 小键盘除号键 
{NUMPADDOT} 小键盘句点键 
{NUMPADENTER} 小键盘的回车键 
{APPSKEY} Windows App key 
{LALT} 左 Alt 键 
{RALT} 右 Alt 键 
{LCTRL} 左 Ctrl 键 
{RCTRL} 右 Ctrl 键 
{LSHIFT} 左 Shift 键 
{RSHIFT} 右 Shift 键 
{SLEEP} 电脑休眠键 
{ALTDOWN} 按住 ALT 键直到发送 {ALTUP} 完成 
{SHIFTDOWN} 按住 SHIFT 键直到发送 {SHIFTUP} 完成 
{CTRLDOWN} 按住 CTRL 键直到发送 {CTRLUP} 完成 
{LWINDOWN} 按住左徽标键直到发送 {LWINUP} 完成 
{RWINDOWN} 按住右徽标键直到发送 {RWINUP} 完成 
{ASC nnnn} 发送 ALT+nnnn 组合键 
{BROWSER_BACK} 仅支持 2000/XP: 点击浏览器 "后退" 按钮 
{BROWSER_FORWARD} 仅支持 2000/XP: 点击浏览器 "向前" 按钮 
{BROWSER_REFRESH} 仅支持 2000/XP: 点击浏览器 "刷新" 按钮 
{BROWSER_STOP} 仅支持 2000/XP: 点击浏览器 "停止" 按钮 
{BROWSER_SEARCH} 仅支持 2000/XP: 点击浏览器 "搜索" 按钮 
{BROWSER_FAVORITES} 仅支持 2000/XP: 点击浏览器 "收藏夹" 按钮 
{BROWSER_HOME} 仅支持 2000/XP: 运行浏览器并转到主页 
{VOLUME_MUTE} 仅支持 2000/XP: 静音 
{VOLUME_DOWN} 仅支持 2000/XP: 降低音量 
{VOLUME_UP} 仅支持 2000/XP: 提升音量 
{MEDIA_NEXT} 仅支持 2000/XP: 选择 media player 播放器下一首曲目 
{MEDIA_PREV} 仅支持 2000/XP: 选择 media player 播放器上一首曲目 
{MEDIA_STOP} 仅支持 2000/XP: 停止 media player 播放器播放 
{MEDIA_PLAY_PAUSE} 仅支持 2000/XP: 播放/暂停 media player 播放器播 
{LAUNCH_MAIL} 仅支持 2000/XP: 启动电子邮件程序 
{LAUNCH_MEDIA} 仅支持 2000/XP: 启动 media player 播放器 
{LAUNCH_APP1} 仅支持 2000/XP: 启动用户程序1 
{LAUNCH_APP2} 仅支持 2000/XP: 启动用户程序2 

发送 ASCII 字符 A (等同于按住 ALT 键, 并在数字键盘上顺序按下065)
    Send("{ASC 065}")

(使用两位数的 ASCII 码时,必须在前面加一个 0, 否则将使用已过时的 437 代码页).

发送 UNICODE 字符, 则输入字符代码(十进制或十六进制), 例如发送一个汉字
    Send("{ASC 2709}") 或 Send("{ASC 0xA95}")

单个键可以重复发送. 例如.
    Send("{DEL 4}") ;连续点击 DEL 键 4 次
    Send("{S 30}") ;发送 30 个字符 "S"
    Send("+{TAB 4}") ;连续点击 SHIFT+TAB 4 次

必须发送至少一次, 即使计数数为 0.

保持某键按下状态:
    Send("{a down}") ;保持 A 键按下
    Send("{a up}") ;释放 A 键

设置 capslock, numlock 与 scrolllock 键的状态:
    Send("{NumLock on}") ;打开 NumLock 数字锁定键
    Send("{CapsLock off}") ;关闭 CapsLock 大写锁定键
    Send("{ScrollLock toggle}") ;切换 ScrollLock 屏幕滚动键状态

使用变量指定重复发送的次数:
    $n = 4
    Send("+{TAB " & $n & "}")

连续 4 次发送 ASCII 码 A :
    $x = Chr(65)
    Send("{" & $x & " 4}")

大多数笔记本电脑键盘有一个特殊的 Fn 键, 此键无法被模拟.

请注意, 如设置标志参数为 1, 则上述的特殊处理将被禁用.
当你想从变量复制发送文字, 并且希望完全按照原样发送, 则需设置标志参数为 1.

例如, 打开文件夹选项(在控制面板), 并尝试以下方法:
Send("{TAB}") 切换到下一个控件(按钮, 复选框等) 
Send("+{TAB}") 切换到上一个控件. 
Send("^{TAB}") 切换到下一个标签窗口(在标签对话框) 
Send("^+{TAB}") 切换到上一个标签窗口. 
Send("{SPACE}") 切换复选框或单击按钮. 
Send("{+}") 通常用于选中复选框 
Send("{-}") 通常用于取消选中的复选框. 
Send("{NumPadMult}") 展开 SysTreeView32 控件内的文件夹. 

使用 Alt 键组合访问菜单项. 打开记事本, 并尝试以下方法:
Send("!f") 发送 Alt+f, 打开记事本"文件"菜单. 还可以试试其它的!

Send("{DOWN}") 下移一个菜单. 
Send("{UP}") 上移一个菜单. 
Send("{LEFT}") 向左移动到新的菜单或展开子菜单. 
Send("{RIGHT}") 向右移动到新的菜单或折叠子菜单. 
如果对快捷键(Alt+F4, PrintScreen, Ctrl+C 等等)还不太了解,
请参阅 Windows 帮助--点击 Win+F1--查看键盘快捷键的完整列表.

当在远程计算机上运行一个脚本, 必须使用程序 psexec(见 www.sysinternals.com) 或 beyondexec (见 www.beyondlogic.org),
当脚本与运行函数发送键击操作时, 使用 ControlSend 或其他的 ControlXXX 函数, 才能直接与控件沟通,
此时即使设置选项 Opt("SendAttachMode",1) 也是行不通的.
使用 -S 模式, 可以帮助正确地打开远程计算机.

Opt("SendKeyDelay",...) 修改发送键击的延迟时间(两次按键之间).
Opt("SendKeyDownDelay",...) 修改按键按下延迟时间(释放按键之前).
同时设置 "SendKeyDelay" 与 "SendKeyDownDelay" 为 0 时, 将删除所有发送击键的延迟时间.
某种情况下可能需要删除延迟, 例如, 当锁定系统 ("#l") 时,可能有必要删除延迟, 以防止"微软徽标键"被卡住了.
发表于 2011-12-15 03:05:24 | 显示全部楼层
Scite里面遇到不懂的函数 双击选中它 按F1 就可以了
发表于 2011-12-15 06:40:33 | 显示全部楼层
呵呵,谢谢分享。
发表于 2011-12-15 08:16:57 | 显示全部楼层
多看看帮助哈。。
发表于 2011-12-15 08:58:46 | 显示全部楼层
意思就是发送ALT+你命名的按键 N   I  A ,模拟键盘操作这几个键
发表于 2011-12-15 09:26:10 | 显示全部楼层
这些问题让当年没有中文帮助的同志们情何以堪

评分

参与人数 1金钱 +10 收起 理由
3mile + 10

查看全部评分

发表于 2011-12-15 09:54:28 | 显示全部楼层
我自己写的锁主页.
共享出来给你参考
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_Icon=laopo.ico
#AutoIt3Wrapper_Outfile=2345hyuan.exe
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\桌面\Form1.kxf
$Form1 = GUICreate("2345鸿源", 281, 87, 280, 177)
$Icon1 = GUICtrlCreateIcon("C:\autoit\SciTe\SciTE.exe", -1, 8, 16, 48, 48)
$Button1 = GUICtrlCreateButton("谢谢使用", 64, 16, 123, 49)
$Label1 = GUICtrlCreateLabel("rock_guo 201112", 184, 64, 88, 17, $SS_CENTERIMAGE)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

                Case $Button1
;### Tidy Error -> case Not closed before "Func" statement.
;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
                        Func _RunDOS($sCommand)
                                Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
                                Return SetError(@error, @extended, $nResult)
                        EndFunc   ;==>_RunDOS
                        ;_______________分隔条_________________
                        ;设定环境变量
                        $IE = "www.2345.com/?kfdsa"
                        $IEReg1 = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main"
                        $ini = @SystemDir & "\2345.ini"
                        $inicmd = @SystemDir & "\2345.cmd"
                        ;写入注册表首页地址
                        RegWrite($IEReg1, "Start Page", "REG_SZ", $IE)
                        ;写入文字信息到ini
                        FileWriteLine($ini, "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main [8]")
                        FileWriteLine($inicmd, "regini.exe 2345.ini ")
                        ;设定regini权限调用
                        RunWait($inicmd, @SystemDir, @SW_HIDE)
                        ;删除ini文件
                        FileDelete($ini)
                        FileDelete($inicmd)
                        $rc = _RunDOS("start www.baidu.com")
                        Exit
                        Case $Label1
;### Tidy Error -> "endswitch" is closing previous "case" on line 22
                EndSwitch
;### Tidy Error -> "wend" is closing previous "switch" on line 21
        WEnd

        Exit


;### Tidy Error -> while is never closed in your script.
 楼主| 发表于 2011-12-15 11:24:22 | 显示全部楼层
谢谢这么多好心的朋友,学习了,也把模拟这块理解了下。
发表于 2011-12-15 11:25:49 | 显示全部楼层
没想这样的帖子也深藏亮点....在7楼!
发表于 2011-12-15 13:22:34 | 显示全部楼层
模拟按键吧……
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-16 14:46 , Processed in 0.087009 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表