私は請求を行っている医院で働いています。この仕事のために作られたプログラムは非常に基本的なものであり、バグに悩まされています。私は2つのプログラムを使用しました。一つは課金側、もう一つはチャート用でした。今、私のホットキーは誕生日と診療記録番号を請求側から取得し、チャート側に行き、その2つの事柄に基づいて患者を検索します(通常、MRNで十分でしょうが、エピックそれだけでは不十分です)患者を選択し、「Chart Review」をクリックして、サービスの日付を選択するのを待ちます。左クリックすると、課金側に戻り、情報をコピーすることができます。問題は時々患者が現れなかったことであり、私はこれを記録しなければならない。表示されていない場合は、クリックするグラフがなく、表示されていないことを再確認するために別の場所をクリックする必要があります。私はキーウェイトの分岐型が必要です。クリックすると、請求側にタブするか、Aキーか何かをクリックすると、予定と過去のタブをクリックして、請求書に戻って「型付きメモ」をクリックします。私は分岐部分の他にすべてを管理することができます。 Getkeystateステートメントが機能しないようで、キーウェイトと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
コメントした部分は私の最後の試みでしたが、私はしばらくの間試してみると本当のアイディアを見つけました。どんな助けもありがとう!
編集:「ここをクリックするとここをクリックするか、ここをクリックするとこのようになります」という文章が機能します。私は、Chart Reviewウィンドウのサイズと予定のツールバーボタンのサイズを取得できます。私は別のタスクのためにこれを試してきましたが、ここでうまくいくかもしれません。それにも助けていただければ幸いです!
編集: @Bob、実際には、遅く返事をして申し訳ありません、私は非常に短い長さのいくつかのkeywaitで小さな文をループすることが私のためにうまくいくことがわかりました。私は下に自分のコードを貼り付けます。 これは単なるスニペットなので、完全なコードではありません。場合
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
}
}
}
私の質問を投票するのは少し厳しいと思います。 – DarknessCalling