-1

関数 send() を使用していますが、実行するアクションを期待する以外に、それが機能することを確認する方法があるかどうか疑問に思っていました。

以下は、関数 send を利用して配列に保持されている命令を送信する方法を示すコードです。

      Switch $ch
       Case "A"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[1])
           ;$myvar = $userconfigasarray[1]
           Send("{"& $userconfigasarray[1] &"}")
           MsgBox (0, "SEND STATUS", "SEND HAS BEEN CALLED")
           ;Exit
       Case "B"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[2])
           $myvar = $userconfigasarray[2]
           ;send("{LEFT}")
           send("{"& $myvar &"}")
        Case "C"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[3])
           $myvar = $userconfigasarray[3]
           send("{"& $myvar &"}")        
       Case "D"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[4])
           $myvar = $userconfigasarray[4]
           send("{"& $myvar &"}")
       Case "E"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[5])
           $myvar = $userconfigasarray[5]
           send("{"& $myvar &"}")
       Case "F"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[6])
           $myvar = $userconfigasarray[6]
           send("{"& $myvar &"}")
           ;loggit("SEND STATUS - SEND HAS BEEN CALLED")
       Case "G"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[7])
           $myvar = $userconfigasarray[7]
           send("{"& $myvar &"}")        
       Case "H"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[8])
           $myvar = $userconfigasarray[8]
           send("{"& $myvar &"}")        
       Case "1"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[9])
           $myvar = $userconfigasarray[9]
           send("{"& $myvar &"}")        
       Case "2"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[10])
           $myvar = $userconfigasarray[10]
           send("{"& $myvar &"}")        
       Case "3"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[11])
           $myvar = $userconfigasarray[11]
           send("{"& $myvar &"}")        
       Case "4"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[12])
           $myvar = $userconfigasarray[12]
           send("{"& $myvar &"}")        
       Case "5"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[13])
           $myvar = $userconfigasarray[13]
           Send("{"& $myvar &"}")        
       Case "6"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[14])
           $myvar = $userconfigasarray[14]
           send("{"& $myvar &"}")        
       Case "7"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[15])
           $myvar = $userconfigasarray[15]
           send("{"& $myvar &"}")        
       Case "8"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[16])
           $myvar = $userconfigasarray[16]
           send("{"& $myvar &"}")        
       Case "9"
           MsgBox (0, "SWITCH STATEMENT", $userconfigasarray[17])
           $myvar = $userconfigasarray[17]
           send("{"& $myvar &"}")        
       Case Else
           MsgBox (0, "SWITCH STATEMENT", "Can't handle '" & $ch & "' <0x" & Hex(Asc($ch), 2) & ">")
           ;loggit("Can't handle '" & $ch & "' <0x" & Hex(Asc($ch), 2) & ">")

     EndSwitch

関数 send() を介して送信する準備ができている配列に命令の正しい構文が保持されていることを確認できます。

  • $userconfigasarray[1] は ESCAPE を保持します
  • $userconfigasarray[2] は APPSKEY などを保持します

ありがとう。

4

1 に答える 1

1

私の知る限り、送信機能が失敗するケースはありません。キーをメモ帳ウィンドウに送信するセットアップで機能する場合は、他のすべてで機能します。

失敗はありえないと言っているわけではありません。それを説明する必要がないのは、ごくまれなケースです。本当にSend関数自体が失敗していると思われる場合は、winapi の最後のエラー メッセージが設定され_WinAPI_GetLastErrorMessageているかどうかを確認してみてください (関数を参照してください_WinAPI_SetLastError。事前にゼロに設定してください)。

ウィンドウがキーストロークを受信しないか、無視する可能性が高くなります。後でウィンドウを読み取ることができることをテストするには。

Send関数は最後の手段である必要があります。このControlSend機能は、機能するためにウィンドウがアクティブである (または表示されている) 必要がないため、はるかに優れています。

于 2013-07-02T15:24:43.463 に答える