出纳打款工具,ahk制作

出纳经常要打款,打款信息经常别人微信发给你一坨,要复制名字账户,分行真的很麻烦,又恶心人,作为一个不用鼠标的人士,偶尔大一下款能恶心死,所以做了个能提取杂乱打款信息中的名字账户以及分行的小工具

比如你收到这样的地址

手动复制恶心死

用一个gif演示如何使用小工具

 

 

自己根据自己使用的银行适配一下粘贴到网银就可以实现一定的自动化了,下次在单位的时候做一个续集,适配中国银行和工商银行的页面自动粘贴

 

源码

;预处理指令和权限
#SingleInstance, Force
SendMode Input
SetWorkingDir, %A_ScriptDir%
SetBatchLines, -1
SetKeyDelay, -1
SetMouseDelay, -1
DetectHiddenWindows, Off
if !(A_IsAdmin || InStr(DllCall("GetCommandLine", "str"), ".exe"" /r"))
    Run % "*RunAs " (s:=A_IsCompiled ? "" : A_AhkPath " /r ") """" A_ScriptFullPath """" (s ? "" : " /r")
;重启用的按键

button:=["复制杂乱的打款信息后逐步粘贴","复制杂乱的打款信息后分行显示"]
gui,+AlwaysOnTop 
gui, font, s20, Verdana 
For k,v in button
    Gui Add, Button, y+5 h20 g%v% ,%v%
gui Show, NoActivate,打款增强
Return

复制杂乱的打款信息后分行显示:
Gosub,信息提取
text=
(
%公司名称%
%银行账号%
%分行%
)
SetResizeEditGui("提取信息",text,,,8,False)
Return


复制杂乱的打款信息后逐步粘贴:
Gosub,信息提取
Clipboard:="" , Clipboard:=公司名称
MsgBox, 4096, 已复制公司名称, 已复制公司名称`,粘贴后再确定
Clipboard:="" , Clipboard:=银行账号
MsgBox, 4096, 已复制银行账号, 已复制银行账号`,粘贴后再确定
Clipboard:="" , Clipboard:=分行
MsgBox, 4096, 已复制分行, 已复制分行`,粘贴后结束
Return

信息提取:
RegExMatch(Clipboard,"(账户名称:?).+?公司",公司名称)
公司名称:=RegExReplace(公司名称, "账户名称:?")

RegExMatch(clipboard, "(分行)?账号:?\d{16,20}", 银行账号)
银行账号:=RegExReplace(银行账号, "(分行)?账号:?")

RegExMatch(clipboard, "(开户行:?).+?分行", 分行)
分行:=RegExReplace(分行, "(开户行:?)")
Return





F12::
    KeyWait, F1, T0.5
    if (ErrorLevel = 1) {
        MsgBox,,关闭,关闭,0.5
        ExitApp
    } else {
        if (winc_presses > 0) {
            winc_presses ++
            Return
        } winc_presses = 1
        SetTimer KeyWinC1, -400
        Return
        KeyWinC1:
            if (winc_presses = 1) {
                MsgBox,,重启,重启,0.5
                Reload
            } else if (winc_presses = 2) {
                MsgBox,,暂停热键,暂停热键,0.5
                Pause
            } winc_presses = 0
        Return
    } Return



    SetResizeEditGui(Title:="",Tip:="",Option:="",Width:=350,Row:=1,IsNumber:=False,ParentHwnd:=0){
	Static EditBox
	SysGet, CXVSCROLL, 2
	SysGet, SM_CYSIZE, 31
	SysGet,SM_CYSIZEFRAME ,33
	Gui, EGui:Destroy
	IsNumber:=IsNumber?"Number":"",SubmitOk:=False
	Option:=Option<>""?Option:"+Resize -MaximizeBox +LastFound -MinimizeBox AlwaysOnTop"
	Gui, EGui: %Option% hWndhEGui
	Gui, EGui:Font,s10 norm
	Gui, EGui: add, Edit,x5 y5 w%Width% R%Row% %IsNumber% vEditBox hwndEBox WantTab +Wrap Lowercase,
	if (Row>1&&Tip<>"")
		GuiControl,EGui:,EditBox,% Tip
	Else if (Row=1&&Tip<>"")
		DllCall("user32\SendMessage", "ptr", EBox, "uint", EM_SETCUEBANNER:=0x1501, "int", true, "str", Tip, "int")
	GuiControlGet,ebpos,EGui:Pos,EditBox
	EditBoxWidth:=Row>1?ebposW+CXVSCROLL/A_ScreenDPI/96+10:ebposW+10,EditBoxHeight:=ebposH+10
	Gui, EGui: Show,w%EditBoxWidth% h%EditBoxHeight%, % Title
	Gui, EGui:+MinSize%EditBoxWidth%x%EditBoxHeight%
	while !(SubmitOk){
		if (!WinExist("ahk_id " ParentHwnd)&&ParentHwnd){
			Gui, EGui:Destroy
			Return
		}Else{
			continue
		}
	}
	Gui, EGui: Submit, NoHide
	Gui, EGui:Destroy
	Return EditBox
	EGuiGuiSize:
		if A_Cursor In SizeNESW,SizeNS,SizeNWSE,SizeWE
		{
			ControlGetPos , X_Edit, Y_Edit, Width, Height, Edit1
			GuiControl, EGui:move, Edit1,% "w" A_GuiWidth-10 " h" A_GuiHeight-10
		}
	Return
	EGuiGuiClose:
		SubmitOk:=True
	Return
}

给TA捐赠
共{{data.count}}人
人已捐赠
AHKV1

监控坚果云同步文件夹报警程序

2022-7-28 16:44:02

其他社区推荐

定时测试连接wifi

2022-7-31 21:58:09

2 条回复 A文章作者 M管理员
  1. 1河许人

    感谢分享,非常贴近工作实际

  2. 1河许人
    1河许人给您打赏了¥5
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索