2016-10-19 55 views
0

我在医生办公室工作,开帐单。为这项工作制定的程序是非常基本的,并且完全充满了bug,所以我重复了部分代码以确保它们正常工作。我使用了两个程序,一个用于计费方面,另一个用于图表。现在,我的热键从计费方抓取患者的出生日期和医疗记录编号,进入图表侧,根据这两件事情搜索患者(通常MRN是足够的,但史诗般的打击,所以这还不够)选择患者,点击“图表回顾”,然后等待我选择服务日期。一旦左键点击,它会回到账单一侧,以便我可以复制信息。问题是,有时病人没有出现,我必须记录下来。如果他们没有显示,没有图表点击,我必须点击其他地方,以确认他们没有显示。我需要一个分支类型的keywait,如果我点击它,它会进入结算方,或者如果我点击A或某物,它会点击约会和过去,然后回到结算并点击“类型笔记”。除了分支部分之外,我可以管理所有的东西。 Getkeystate语句似乎不起作用,我不能在keywaits中使用if语句(显然)。AHK分支钥匙在热键中间

!D:: 
BlockInput, MouseMoveOff 
sleep 100 
Winactivate, Hyperspace 
sleep 100 
sendinput ^w 
sleep 300 
winactivate, Form billing 
sleep 300 
BlockInput, MouseMove 
mouseclick,, 400, 70 
BlockInput, MouseMove 
click 
sleep 200 
sendinput ^c 
sleep 400 
dob:=Clipboard 
sleep 400 
BlockInput, MouseMove 
mouseclick,, 385, 85 
BlockInput, MouseMove 
click 
sleep 200 
sendinput ^c 
WinActivate, Hyperspace 
sleep 400 
sendinput ^3 
sleep 400 
sendinput ^v 
sleep 400 
BlockInput, MouseMove 
mouseclick,, 200, 145 
sleep 400 
Clipboard:=dob 
sleep 400 
StringTrimLeft, dobyear, dob, 6 
sleep 50 
dobmathd:=A_YYYY-dobyear 
sleep 50 
StringTrimRight, dobmo, dob, 8 
sleep 50 
StringTrimRight, dobd, dob, 5 
sleep 50 
StringTrimLeft, dobday, dobd, 3 
sleep 50 
if (dobmo >= A_MM) and (dobday >= A_DD) 
{ 
dobmathd-- 
} 
sleep 50 
sendinput ^v 
sleep 200 
sendinput {Enter} 
sleep 200 
sendinput {Enter} 
sleep 1700 
BlockInput, MouseMove 
mouseclick,, 85, 235 
sleep 300 
BlockInput, MouseMoveOff 
;if (character = a) 
;{ 
;BlockInput, MouseMove 
;mouseclick,, 325, 40 
;sleep 200 
;mouseclick,, 60, 285 
;click 
;sleep 400 
;mouseclick,, 240, 435 
;sleep 2000 
;winactivate, Form billing 
;BlockInput, MouseMoveOff 
;return 
;} 
;if (
tooltip,%dobmathd% Years old, 415, 70 
keywait, LButton, D, T200 
sleep 200 
winactivate, Form billing 
return 

评论部分是我的最后一次尝试,但我一直在用谷歌搜索找到一个真正的想法尝试一段时间。任何帮助表示赞赏!

编辑:也许一个“如果我点击这里做这个,或者如果我点击这里做这个”类型的声明将工作。我可以获取图表查看窗口的维度和约会的工具栏按钮。我一直在尝试用这个来完成另一项任务,但它可能在这里工作。帮助与此将不胜感激!实际上,对于最近的回复,我感到抱歉,我发现用一些很短的长度的keywaits循环一个小的声明对我来说很合适。我会在下面粘贴我的代码。 这只是一个片段,所以它不是完整的代码。

SendInput, {Enter} 
Sleep, 1800 
BlockInput, MouseMove 
MouseClick,, 85, 235 
Sleep, 300 
BlockInput, MouseMoveOff 
Sleep, 20 
Loop 
{ 
    KeyWait, LButton, D, T0.02 ;I've picked a chart, meaning they showed up for their appointment 
    If !ErrorLevel 
    { 
     Sleep, 400 
     BlockInput, MouseMoveOff 
     WinActivate, Form CMP 
     Return 
    } 
    KeyWait, Escape, D, T0.02 
    If !ErrorLevel 
     Return 
    KeyWait, ., D, T0.02 ;They do not appear to have shown up for their appointment, so check the appointment tab 
    If !ErrorLevel 
    { 
     BlockInput, MouseMove 
     MouseClick,, 315, 40 
     Sleep, 400 
     MouseClick,, 100, 285 
     Sleep, 1000 
     MouseClick,, 270, 440 
     Sleep, 300 
     BlockInput, MouseMoveOff 
     Loop 
     { 
      KeyWait, Y, D, T0.02 ;They did not show up for their appointment. Bill appropriately. 
      If !ErrorLevel 
      { 
       BlockInput, MouseMove 
       WinActivate, Form CMP 
       Sleep, 200 
       MouseClick,, 210, 260 
       Sleep, 200 
       MouseClick,, 100, 400 
       Sleep, 200 
       SendInput, No Show 
       Sleep, 200 
       WinActivate, Hyperspace 
       Sleep, 500 
       MouseClick,, 85, 235 
       Sleep 400 
       WinActivate, Form CMP 
       Sleep, 300 
       BlockInput, MouseMoveOff 
       Return 
      } 
      KeyWait, N, D, T0.02 ;Don't see a no show, re-check chart review. 
      If !ErrorLevel 
      { 
       BlockInput, MouseMove 
       MouseClick,, 85, 235 
       Sleep, 500 
       BlockInput, MouseMoveOff 
       KeyWait, LButton, D 
       Sleep, 400 
       WinActivate, Form CMP 
       BlockInput, MouseMoveOff      
       Return 
      } 
      KeyWait, Escape, D, T0.02 
      If !ErrorLevel 
       Return 
     } 
    } 
} 
+0

而且我认为投票我的问题是有点苛刻。 – DarknessCalling

回答

0

,如果我不能使用与keywaits

有一种方法声明“滥用”与L1VInput命令(可能是好主意I扔,以及)选项充当(稍微有限)KeyWait替代。这应该适用于您的使用情况。

(...) 
Input,var,L1IV ; will act as KeyWait 
if (var="a") { 
    foo:=Round(Sqrt(1764)) 
    TrayTip,,The number is %foo% 
} 
else if (var="s") 
    MsgBox Sssnaaakess 
(...)