欢迎您, 游客
您必须先注册才能在我们的站点发帖。

用户名
  

密码
  





论坛搜索

(高级搜索)

最近的主题
QQ登录框如何输入密码保证无误?
最近发表: tsv37
今天 20 : 34
» 回复: 1
» 人气: 63
关於AutoHotkey.chm的压制
最近发表: bootislands1
今天 18 : 49
» 回复: 1
» 人气: 48
Win7自动扫雷AutoSweeper
最近发表: feiyue
昨天 09 : 09
» 回复: 6
» 人气: 2217
[广告+优惠]Tobii 眼动仪 V1.0 - 大...
最近发表: robertL
2017-05-24 17 : 16
» 回复: 2
» 人气: 157
任意指定的电邮用户名自动逐一加点
最近发表: gdqb521
2017-05-23 16 : 51
» 回复: 3
» 人气: 223
屏幕抓字生成字库工具与找字函数 v5.6
最近发表: feiyue
2017-05-23 11 : 51
» 回复: 81
» 人气: 29826
新人签到
最近发表: jackwuming
2017-05-23 10 : 32
» 回复: 3
» 人气: 306
Excel VBA里find方法的可选参数怎么写?
最近发表: 火冷
2017-05-22 23 : 26
» 回复: 0
» 人气: 53
关于AHK在ps 2014cc的使用
最近发表: robertL
2017-05-19 13 : 40
» 回复: 3
» 人气: 350
win7安装防勒索病毒补丁后,ahk的热键经常无法...
最近发表: robertL
2017-05-18 09 : 01
» 回复: 4
» 人气: 329

 
  任意指定的电邮用户名自动逐一加点
发布: orican - 2017-05-20 07 : 44 - 回复 (3)

请教怎么用AHK做任意指定的电邮用户名自动逐一加点的问题,比如任意指定的 [email protected] [email protected] [email protected] 等等,自动逐一加点:

从第一个字母开始,逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

第一个字母后固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

第二个字母后固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]
[email protected]

[email protected]

第三个字母后固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

以此类推;

第一和第二个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]
[email protected]

[email protected]

第二和第三个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

第三和第四个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]

以此类推;

第一第二和第三个字母后各固定一点,其后逐个字母后自动加点一直到倒数第二个字母:
[email protected]
[email protected]
[email protected]

[email protected]


以此类推,一直到所以能加点的(不重复的)全部加完为止。。。
对其他任意指定的电邮用户名也自动逐一加点一直到无法再加点为止

打印这项 推荐给朋友

  求助:热字串失效的问题 (必现 有重现步骤)
发布: bootislands1 - 2017-05-17 08 : 55 - 无回复

问题很简单,就是有些热字串经常失效。
经过排查定位,如下的操作步骤,能够生成失效的热字串,且在我的Win7x64 + AHKv1.1.25.01上,100%重现

重现步骤:
① D盘根目录下,新建文件夹 Dropbox(如果把脚本放在D盘根目录,测试无效)
② 在 Dropbox 目录下,放入如下两个脚本,test.ahk 和 test1.ahk

代码:
;test.ahk
SetTitleMatchMode Regex

#IfWinActive ahk_exe (notepad.exe|Notepad2.exe)
{
        ` & 1::SendInput, 测试1{Space}{Space}
}
代码:
;test1.ahk
::ahk::AutoHotkey
③ 注销系统,重新登陆 (如果不注销,在我机器上,有时重现有时不重现,只有注销、重新登录、再立即测试,才100%重现)
④ 运行 test.ahk 和 test1.ahk 和 系统记事本
⑤ 在记事本里,按` & 1(`是1左边那个键),不要动鼠标,再输入ahk,跟着空格
→此时,预期结果是,ahk热字串生效,变成输入AutoHotkey。但是,实际结果是,热字串没有生效,只是ahk
⑥ 继续测试,右键托盘区,Reload test.ahk,不动 test1.ahk
⑦ 重复步骤⑤
→此时,输入ahk跟着空格后,热字串生效了,变成AutoHotkey

在大家的系统上,测试结果也是这样吗?如果是,那么第⑤步,热字串为什么临时失效了呢?

打印这项 推荐给朋友

Smile win7安装防勒索病毒补丁后,ahk的热键经常无法激活。
发布: iamwyf - 2017-05-16 09 : 11 - 回复 (4)

win7*64位,安装了windows6.1-kb4012215-x64.msu后,在多数程序页面无法激活热键。如打开excel、onenote、notepad等等,输入热键#s,直接显示输入s,输入热键#x,应该激活ttcm​d,但是结果直接显示了windows移动中心。^J,直接输入了J,!J,直接输入了J……
哪位大侠知道该如何解决?

ps:另外,在win10下,#s等热键从第一天起就不能被ahk使用,这个有办法吗?

打印这项 推荐给朋友

  如何获取窗口工作区client相对于屏幕screen的位置?
发布: nnrxin - 2017-05-08 16 : 43 - 回复 (3)

如题,有没有什么简单点的实习方法?

打印这项 推荐给朋友

Question Guicontrol 快速且连续的更新text文本框内容时会闪烁,怎么解决?
发布: Modifier - 2017-05-07 12 : 57 - 回复 (1)

@feiyue
Guicontrol 快速且连续的更新text文本框内容时会闪烁,怎么解决?
定时器设置的是 50

“Gdip代码用来滚动.txt” 是一段在网上找的非常长的代码段,用来滚动的制造桌面特殊[/align]效果用的。上传到附件了

代码如下:

代码:
gosub, MAIN
CustomColor = cLime
Gui +LastFound +ToolWindow -Caption
WinSet, Transparent, 249
WinSet, ExStyle, ^0x20
Gui, Color, %CustomColor%
Gui, font, s10 cRed q1 w600, verdana
Gui, Add, Text, x0 y0 w1000 r%line_text% vMyText, ...........

Gui, font, s20
Gui, Add, text, x10 y500 r4 vMySystemLogin cGreen, System reboot...`nAnalyzing...
WinSet, transcolor, %CustomColor% 255

SetTimer, UpdateOSD, %time%
SetTimer, UpdataOSD_2, %time_2%
Gui, Show, w1000 h570 NoActivate, Black Window
goto, UpdateOSD
return

GuiClose:
ExitApp
return

MAIN:
FileRead, codes, Gdip代码用来滚动.txt
;我ahk8新手,不知道暂时没有找到传文件的按钮,先贴一段网上搜罗的codes请大佬帮忙测试解决闪烁的问题了。
;time for updating the data
line_text := 30
time := 50
time_2 := 500
ChangingTitle1 := "."
ChangingTitle2 := ".."
ChangingTitle3 := "..."
strLength := strlen(codes)
str_length := 0
m := 1
Return

UpdateOSD:
if(i>=strLength){
    ; reset all and start over
    i:=0
    j:=0
    str_length:=0
}
;i is a var
i+=1
StringLeft, strOutput, codes, %i%



strLines := StrSplit(strOutput, "`n", "`r")
;j is a var
lines := strLines.length()

if(lines>=line_text&&lines!=lines_temp){
    j++
    
    str_length_temp := StrLen(strLines[j])
    str_length := str_length + str_length_temp + 2


}
StringTrimLeft, strOutput, strOutput, %str_length%
lines_temp := lines
GuiControl,, MyText, %strOutput%
return

UpdataOSD_2:
ChangingTitleOUT := "System online `nAnalyzing" ChangingTitle%m%
GuiControl,, MySystemLogin, %ChangingTitleOUT%
if(m<3){
    m++
}
else{
    m=1
}
Return



附件
.txt  Gdip代码用来滚动.txt (大小: 5.28 KB / 下载: 2)
打印这项 推荐给朋友

  Window12 上怎么GUI显示不出来
发布: homcomp - 2017-05-04 19 : 09 - 回复 (2)

双击后没有GUI显示出来,这是怎么回事?
[Image: 16bk7tf.png]

打印这项 推荐给朋友

Shocked User Sleep change
发布: johnsonchiang - 2017-05-02 22 : 42 - 回复 (20)

它是一個GUI 以Check打勾的方式啟動以上程式碼,還可以讓使用者自定毫秒數?!
麻煩各位了 謝謝Huh
生成exe之後可以讓使用者自訂的唷!


Suspend, On

Gui, Font, s12
Gui, Add, Checkbox, vState gEvent, start/stop
Gui, Show, w100 h100
return

Event:
GuiControlGet,Value,,State
Suspend, % Value=1 ? "Off":"On"
return

GuiClose:
exitapp

$MButton:
Loop 99999
{
If Not GetKeyState("MButton", "P")
Break
Send {Ctrl}
Sleep 243 <--如何讓這個Sleep讓使用者自訂
}
Return

打印这项 推荐给朋友

  截图工具
发布: June - 2017-05-01 21 : 33 - 无回复

代码:
;鼠标轮 控制缩放功能,ctrl+鼠标轮 控制透明度,截图备份11
;使用方法
;alt+2截图,并显示截图窗口
;选中本地图片,Ctrl+C 复制图片后 alt+f 即可打开图片(图片状态顶置)
;在截图窗口中Ctrl+C可复制图片到剪贴板
;打开或截图图片点击任何位置都可移动
;esc关闭当前点击的窗口。
;截图窗口中滚动鼠标轮,能控制图片窗口的大小。(即放大缩小)
;截图窗口中Ctrl+滚动鼠标轮,能控制透明度。
;F7隐藏或显示所有截图窗口
;F8    剪贴板(Clipboard)中复制的图片保存到本地。(例如:网页图片右键复制,再执行热键即可保存)
;F9    本地图片读入到Clipboard(剪贴板)中
;在截图窗口中放大缩小和透明度。对所有截图窗口起作用

#SingleInstance force
#Include Gdip.ahk ;截图函数库
#Include WinClip.ahk    ;剪贴板函数库 可读取文档、图片,到剪贴板
#Include WinClipAPI.ahk ;剪贴板函数库 可读取文档、图片,到剪贴板
#KeyHistory 0    ; 禁用按键历史记录。
CoordMode,Mouse, Screen  ;设置鼠标获取屏幕坐标,放在顶部,全脚本获取都为屏幕坐标
SetWinDelay, 0  ;设置窗口移动时反应速度,解决窗口移动小卡问题
透明度 =255 ;控制截图窗口透明度,设置窗口透明度为全局变量,默认窗口透明度为最大255。

;~ F5::
;~ KeyWait, LButton, D  ; 等待鼠标左键被按下
;~ MouseGetPos, xpos, ypos
;~ Msgbox, The cursor is at X%xpos% Y%ypos%
;~ KeyWait, LButton, ; 等待鼠标左键被释放
;~ MouseGetPos, xpos1, ypos1
;Msgbox, The cursor is at X%xpos1% Y%ypos1%
;~ wpos1 := xpos1 - xpos ;得出右下角区域的表达式
;~ hpos1 := ypos1 - ypos ;得出右下角区域的表达式
;MsgBox ,%wpos1% 和 %hpos1%
;~ return


Menu, Tray, NoStandard  ;取消所有右下角图标中的右键菜单
Menu, Tray, Add, 退出, Run退出 ;添加退出菜单
return
Run退出:
ExitApp
return
;-----------------------截图画框功能---------------------------------------
!2::
Loop
{  
    Gui, +LastFound   ;找到上一次的窗口  
    Gui, -Caption   ;隐藏标题栏
    Gui, +Owner    ;设置阻止任务栏按钮的显示
    Gui, +AlwaysOnTop   ;让GUI界面,开置顶
    WinSet, Transparent, 1 ;透明度
    Gui, Show,Maximize
    KeyWait ,LButton,D   ;等待左键点击
GetKeyState,判断按钮,LButton,P  ;判断是否按住鼠标左键
    MouseGetPos,MX1,MY1   ;获取当前鼠标坐标
    xpos := MX1
    ypos := MY1
    Gui, +Owner    ;设置阻止任务栏按钮的显示
    Gui, Destroy ;重置GUI窗口,销毁窗口记录
    Gui, Show  ;显示重置窗口
Loop  ;使用不断循环让窗口出现移动效果,松开为停止
{
Sleep ,1 ;适当加延迟,否则变量来不急赋值,导致画面会闪
    GetKeyState,判断按钮,LButton,P  ;判断是否按住鼠标左键
    MouseGetPos,MX2,MY2  ;获取移动后鼠标的坐标
    xpos:=MX2<MX1 ? MX2:MX1, ypos:=MY2<MY1 ? MY2:MY1   ;表达式计算截取区域四周自由变换。
    wpos1 :=Abs(MX1-MX2), hpos1 :=Abs(MY1-MY2) ;表达式计算截取区,两表达式之间,可用(,)逗号链接。  
    Gui, +LastFound   ;找到上一次的窗口  
    WinSet, Transparent, 150  ;透明度
    Gui, -Caption   ;隐藏标题栏
    Gui, +Owner    ;设置阻止任务栏按钮的显示
    Gui, Show, NA x%xpos% y%ypos% h%hpos1% w%wpos1%  
    WinGetPos, XXX1, YYY1, WWW1,HHH1, A  ; "A" 表示获取活动窗口的位置。截图区域确定后,执行获取位置大小。

}until (判断按钮 = "U")  ;松开鼠标为停止
}until (判断按钮 = "U")  ;松开鼠标为停止
Gui, +LastFound   ;找到上一次的窗口  
gui,Hide
;~ WinClose, A  ;关闭窗口,参数A为,当前活动窗口。
;~ return
;~ ;---------截图显示功能(注释上和下总两行,截图即时完成。不注释可逐步调试)-----------
;~ F6::
时间命名 :=A_Now
;~ MsgBox ,% 时间命名
;~ PicPath := "D:\aaaa.png"
FileCreateDir, D:\picTP\   ;创建图片保存文件夹,如存在不会再次创建
PicPath := "D:\picTP\" 时间命名 ".png"  ;设置保存目录
;~ PicPath := "D:\" 时间命名 ".png"  ;设置保存目录,此函数库保存格式为png,质量比jpg好。
pToken := Gdip_Startup() ; Start gdi+
        ; pBitmapAlpha := Gdip_CreateBitmapFromFile(PicPath)
        ;~ pBitmapAlpha := Gdip_BitmapFromScreen("0|0|800|800")
        pBitmapAlpha := Gdip_BitmapFromScreen(xpos "|" ypos "|" wpos1 "|" hpos1)
        ;首要设置鼠标获取屏幕坐标,CoordMode,Mouse, Screen。
;Gdip_BitmapFromScreen参数分别是,xpos|ypos为左上角区域,wpos1|hpos1为右下角区域(需表达式运算得出)。
        ImgWidth := Gdip_GetImageWidth(pBitmapAlpha)  ; 获取宽度,高度,可省略
        ImgHeight := Gdip_GetImageHeight(pBitmapAlpha)
        ;~ Gdip_SaveBitmapToFile(pBitmapAlpha, PicPath,"255") ;第三个参数控制图片质量
        Gdip_SaveBitmapToFile(pBitmapAlpha, PicPath) ;第三个参数控制图片质量
        Gdip_DisposeImage(pBitmapAlpha)
        
Gdip_Shutdown(pToken) ; close gdi+
Traytip, 截图完毕:, 宽: %ImgWidth% 高: %ImgHeight%`n保存为: %PicPath%
Gui, New  ; 创建新的未命名 GUI。如注释这行会,在同一个GUI窗口显示图像
Gui, -Caption  ;让标题大蓝条不显示
Gui +AlwaysOnTop   ;让GUI界面,开置顶
Gui, Margin , 1, 1  ;设置GUI界面边框间距
Gui, Color, FFFFFF  ;设置边框颜色
Gui, +LastFound   ;找到上一次的窗口  
Gui, +Owner    ;设置阻止任务栏按钮的显示
Gui, Add, Picture,vPic, D:\picTP\%时间命名%.png
;~ Gui, Show, AutoSize Center,命名
Gui, Show, x%xpos% y%ypos% h%hpos1% w%wpos1% AutoSize ,命名

;显示区域,用AutoSize调整居中,完整显示边距。
;~ WinSet,AlwaysOnTop,on, A  ;开置顶
return

;--------复制当前窗口的截图到剪贴板---------------
#IfWinActive ,命名  ;判断热键只对窗口名称为命名的窗口生效,会影响下面的热键条件
^c::
WinGetText,PPic,A
PPic :=RegExReplace(PPic , "`r`n")  ;筛选出回车符(`r)和换行符(`n)
WinClip.SetBitmap(PPic)  ;读取路径图片到剪贴板
return
;--------单个关闭截图显示窗口功能---------------
esc::
WinWait ,命名 ;等待关闭指定的窗口
WinGet ,AAA,,A   ;获取当前GUI窗口的ID
WinClose, A  ;关闭窗口,参数A为,当前活动窗口。
Gui,%AAA%:Destroy  ;Gui, Destroy销毁一个GUI窗口的所有内容,Gui,%AAA%:Destroy 销毁当前ID的GUI窗口。
return
;--------控制截图窗口的透明度(注意开头设置初始透明度为全局变量,透明度 =255 放顶部)--------
#IfWinActive ,命名  ;判断热键只对窗口名称为命名的窗口生效,会影响下面的热键条件
;~ ;三元运算符,?: 例如,var := x>y ? 2 : 3,当 x 大于 y 时保存 2 到 Var;否则保存 3
^WheelDown::
透明度<=50 ? :透明度 -= 20   ;控制透明度最低50,低于50,不执行透明度计算
WinSet, Transparent, %透明度%, 命名 ; 设置窗口透明
;~ MsgBox ,%透明度%
return
^Wheelup::
透明度>=256 ? :透明度 += 20  ;控制透明度最高256,超过256,不执行透明度计算
;~ 透明度 += 20
WinSet, Transparent, %透明度%, 命名 ; 设置窗口透明
;~ MsgBox ,%透明度%
return
#IfWinActive
;--------移动窗口功能---------------
#IfWinActive ;关闭热键关联,否则影响下面的热键触发条件。

;~ #IfWinActive ,命名 ;判断只移动截图的窗口 ,取消注释后,每次点击截图窗口,首次点击移动无效,第二次生效。
~LButton::          ;~波浪符,为左键只对活动窗口生效
Sleep ,1 ;适当加延迟,否则变量来不急赋值,导致画面会闪
WinGetActiveTitle,CGM ;获取当前窗口标题
if(CGM = "命名") ;如果当前标题等于截图窗口就执行移动命令
{
MouseGetPos,ZBX1,ZBY1,A   ;获取当前窗口鼠标坐标
WinGetPos,ZBX2,ZBY2,,,A ;获取当前窗口位置
Loop  ;使用不断循环让窗口出现移动效果,松开为停止
{
    GetKeyState,判断按钮,LButton,P  ;判断是否按住鼠标左键
    MouseGetPos,ZBX3,ZBY3  ;获取移动后鼠标的坐标
    ZBX3 -= ZBX1
    ZBY3 -= ZBY1
    ZX := ZBX2 + ZBX3
    ZY := ZBY2 + ZBY3
    
    ;得出计算表达式:移动窗口位置 = ((移动后鼠标坐标-当前鼠标坐标)+当前窗口位置),省略代码可用表达式
    ;~ ZX :=((ZBX3-ZBX1)+ZBX2)
    ;~ ZY :=((ZBY3-ZBY1)+ZBY2)
    WinMove,A,,%ZX%,%ZY%
    ;~ WinMove,命名,,%ZX%,%ZY%
}until (判断按钮 = "U")  ;松开鼠标为停止
return
}
else  ;不符合窗口条件,不执行任何命令
{
}
return

;------查看文件夹中图片功能(图片状态顶置)
;Ctrl+C 复制图片后 alt+f 即可打开图片(图片状态顶置)
!f::
;~ if Clipboard contains jpg,png ; 搜索字符串是否包含于列表某项。如有就执行
;去除执行条件
;~ {
    ;~ CCC = D:\picTP\20140930174502.png,D:\picTP\20140930174540.png
    
    ;~ Clipboard1 := Clipboardall ;备份剪贴板 所有内容。
    
    CCC = %Clipboard%
    ;~ MsgBox ,%Clipboard%
    CCC :=RegExReplace(CCC , "`r")  ;筛选出回车符
    Loop, parse, CCC,`,`n
    ;~ Loop, parse, Clipboard,`n
    {
        
    
    ;使用WinClip.SetBitmap函数判断文件是否为图片,再进行操作。
    mg := WinClip.SetBitmap(A_LoopField)  ;读取路径图片到剪贴板,图片文件读入剪贴板
    ;遇到非图片文件,mg值为0
    ;~ MsgBox,%mg%
    if(mg == 0) ;非图片文件,mg值为0,当文件不是图片时,不对其进行图片显示。
    {

    }
    else
    {
    Gui,new
    Gui, -Caption  ;让标题大蓝条不显示
    Gui +AlwaysOnTop   ;让GUI界面,开置顶
    Gui, Margin , 1, 1  ;设置GUI界面边框间距
    Gui, Color, FFFFFF  ;设置边框颜色
    Gui, +Owner    ;设置阻止任务栏按钮的显示
    Gui +LastFound   ; 让 GUI 窗口成为 上次找到的窗口 以用于下一行的命令.
    Gui, Add, Picture,vPic, %A_LoopField% ;vpic变量为保存图片的地址,使用时不用加v,即pic即可使用。
    ControlGetPos , , , Width, Height ;图片未显示前,获取图片控件的图片尺寸,需要添加Gui +LastFound
    Gui,Show,AutoSize W%Width% H%Height%,命名 ;使用获取图片控件的尺寸为显示大小,否则图片会不完整显示
    ;~ Gui, Show,AutoSize,命名   ;如不添加W和H为显示大小,GUI显示会将图片裁切成屏幕分辨率的大小,图片将不完整显示。
    }
    
    }
    
    ;~ Clipboard := Clipboard1 ;还原备份剪贴板 ,
    ;把之前备份的还原。(即显示图片后,图片文件依然可以复制粘贴)
    
    Clipboard = 空 ;显示图片,完成后,清空剪贴板,避免占用内存。
;~ return
;~ }
;~ else
;~ {
;~ }
return
;---------缩小放大图片功能------------------
#IfWinActive ,命名  ;判断热键只对窗口名称为命名的窗口生效,会影响下面的热键条件
Wheelup::
WinGet ,AAA,,A   ;获取当前GUI窗口的ID
WinGetText,PPic,A  ;获取当前GUI窗口的图片地址
WinGetPos,SXX,SXY,,,A ;获取当前窗口位置
ControlGetPos, x空, y空, Width, Height,, ahk_id %AAA%  
;获取当前图片大小再进行放大,否则切换不同图片放大时会叠加放大倍数

Width += 200 ; 设置放大尺寸200累加
;~ Height += -1

PPic :=RegExReplace(PPic , "`r`n")  ;筛选出回车符(`r)和换行符(`n)
GuiControl,%AAA%:,Pic, *w%width% *h-1 %PPic%  ; 载入图像. h-1表示以w%width%为准等比例缩放
; GuiControl,%AAA%: 以当前ID窗口为修改的对象
Gui,%AAA%:Show, AutoSize  ;Gui,%AAA%:以当前ID窗口为修改的对象
;~ Gui,%AAA%:Show, xCenter yCenter AutoSize
return

WheelDown::
WinGet ,AAA,,A   ;获取当前GUI窗口的ID
WinGetText,PPic,A  ;获取当前GUI窗口的图片地址
WinGetPos,SXX,SXY,,,A ;获取当前窗口位置
ControlGetPos, x空, y空, Width, Height,, ahk_id %AAA%  
;获取当前图片大小再进行放大,否则切换不同图片放大时会叠加放大倍数

if(Width <= 0) ;设置缩放限制最小的尺寸
{
}
else
{
Width -= 200 ; 设置缩小尺寸200累加
}
;~ Height += -1

PPic :=RegExReplace(PPic , "`r`n")  ;筛选出回车符(`r)和换行符(`n)
GuiControl,%AAA%:,Pic, *w%width% *h-1 %PPic%  ; 载入图像. h-1表示以w%width%为准等比例缩放
; GuiControl,%AAA%: 以当前ID窗口为修改的对象
Gui,%AAA%:Show, AutoSize   ;Gui,%AAA%:以当前ID窗口为修改的对象
;~ Gui,%AAA%:Show, xCenter yCenter AutoSize
return
#IfWinActive ;关闭热键关联,否则影响下面的热键触发条件。
;--------隐藏或显示所有截图窗口------------------------------------------------
f7::
if (D != 1)
{
GroupAdd, Groupwin,命名
WinHide, ahk_group Groupwin
D := 1
}
else
{
GroupAdd, Groupwin,命名
WinShow, ahk_group Groupwin
D := 0
}
return

;-------剪贴板(Clipboard)中复制的图片保存到本地。(例如:网页图片右键复制,再执行热键即可保存)------
F8::
pBitmap := Gdip_CreateBitmapFromClipboard()
;Gdip_CreateBitmapFromClipboard把剪贴板图片转为位图,如剪贴板中没有图片,会导致剪贴板无法正常使用。
;使用DllCall命令,OpenClipboard,CloseClipboard,重新打开关闭剪贴板。即可使剪贴板恢复正常。
if(pBitmap == -2)  ;当Clipboard(剪贴板)中没有图片,pBitmap变量值为-2,执行剪贴板重置(即打开关闭)。
    ;否则执行剪贴板图片保存到本地的命令
{
;由于Gdip_CreateBitmapFromClipboard函数使用时会占用剪贴板,使其无法进行赋值操作。
;所以需要执行剪贴板重置(即打开关闭)。
DllCall("OpenClipboard", "uint", 0) ;打开剪贴板
DllCall("CloseClipboard")           ;关闭剪贴板
}
else
{
时间命名 :=A_Now
;~ PicPath := "D:\aaaa.png"
;~ FileCreateDir, D:\  ;创建图片保存文件夹,如存在不会再次创建
;~ PicPath := "D:\" 时间命名 ".png"  ;设置保存目录,此函数库保存格式为png,质量比jpg好。
FileCreateDir, D:\picTP\   ;创建图片保存文件夹,如存在不会再次创建
PicPath := "D:\picTP\" 时间命名 ".png"  ;设置保存目录
selectedFiles := PicPath
;~ Clipboard1 := Clipboard
pToken := Gdip_Startup()
Gdip_SaveBitmapToFile(pBitmap := Gdip_CreateBitmapFromClipboard(), selectedFiles)
Gdip_DisposeImage(pBitmap)
Gdip_Shutdown(pToken)

;{-----清晰提示,保存图片后的提示。(每保存一张图片,提示(Traytip)样式都会变,清晰看到图片保存了。)---
if (QUAN != 1)
{

QUAN := 1
清晰提示 := "●●●"
}
else
{
QUAN := 0
清晰提示 := "○○○"
}
;}

;~ Traytip, 截图完毕:  %pBitmap% ,保存为: %PicPath%  ;pBitmap变量值为-2,即Clipboard(剪贴板)中没有图片
Traytip, 截图完毕:%清晰提示% ,保存为: %PicPath%  


    ;{-------截图完毕后检测是否成功生成图片(当没有生成时及时发现)------------
    IfExist, %PicPath%
    {
    ;~ MsgBox, 成功生成
    }
    else
    {
    MsgBox,没有生成图片
    }
}
Return

;---------本地图片读入到Clipboard(剪贴板)中----------------
F9::
;~ PPic = "D:\FFF.png"
;~ mg := WinClip.SetBitmap("D:\FFF.png")  ;读取路径图片到剪贴板
Clipboard2 := ClipboardAll  ;备份剪贴板
;~ MsgBox,%Clipboard%
mg := WinClip.SetBitmap(Clipboard)  ;读取路径图片到剪贴板

;~ MsgBox,%mg%
if(mg == 0) ;遇到非图片文件,mg值为0 。即不读入剪贴板中,并恢复之前的备份。
{

Clipboard := Clipboard2 ;;备份剪贴板
;~ MsgBox,%Clipboard%
}
return

打印这项 推荐给朋友

  用一个热键调用/激活别的热键
发布: 碇シンジ - 2017-04-27 21 : 38 - 回复 (2)

先感谢一番feiyue跟大萝卜提供的帮助.feiyue开发出的多热键同时使用的脚本真的很好用.虽然依旧看不懂脚本内容.....
话说还以为对autohotkey的需求已经足够了.结果还要跑来....果然是不懂满足的么....

标题对不住.我也不知道该怎么形容才好.

代码:
$1::
send 1
return

$2::
send 2
Return
目的是来个$3.然后按$3可以激活1跟2的热键内容....

是的最后的要求是用一个热键去调用别的热键的内容.
因为有$号,没办法send 1 跟send 2这样子来.
用GOTO只能跳到一个.而且有去无回.因为真正的1跟2的内容是个循环LOOP.

求解.该怎么调用.....

翻了1小时的帮助文档.然后很懵.调用标签的内容.没有.GOTO跟GOSUB倒是有,可是不行.因为热键内容是LOOP的.所以哪一个都是有去无回. 然后翻到一个HOTKEY,LABELNAME的内容.然而好像还是没用.....求个解决的思路方向吧....

尝试了一下settimer.然而变成无法停止了.....
好吧.是自己愚笨了.2333.
翻了一下settimer的参数. -100就够了.负数代表只运行一次.OK.完美解决.撒花Tongue

代码:
$1::
send 1
return

$2::
send 2
Return

$3::
settimer, $1,-100
settimer, $1,-100
Return

打印这项 推荐给朋友

  为什么名称非法?
发布: 编程爱好者 - 2017-04-24 21 : 02 - 回复 (1)

求教:controlgettext获得一个变量,值是22.11,变量名是price,然后计算:
Qty := %AMT% / %price%就报错,说什么名字非法。请问这是什么原因?怎么才能解决呢?谢谢!

打印这项 推荐给朋友


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合