Autohotkey

#1::
run vs.exe
return

#2::
run tool.exe
return

#3::
run xtool.exe
return

#4::
run source.exe
return

#5::
run daikairibao
return

#q::
Send ^v
return

_SendRaw(Keys) {
  Len := StrLen(Keys)  ; 得到字串的長度,注意一個中文字元的長度是2
  KeysInUnicode := ""  ; 將要發送的字元序列
  Char1 := ""          ; 暫存字元1
  Code1 := 0           ; 字元1的ASCII碼,值介於 0x0-0xFF (即1~255)
  Char2 := ""          ; 暫存字元2
  Index := 1           ; 用於迴圈
  Loop {
    Code2 := 0                                  ; 字元2的ASCII碼
    Char1 := SubStr(Keys, Index, 1)             ; 第一個字元
    Code1 := Asc(Char1)                         ; 得到其ASCII值
    if(Code1 >= 129 And Code1 <= 254 And Index < Len)  ; 判斷是否中文字元的第一個字元
    {
      Char2 := SubStr(Keys, Index+1, 1)       ; 第二個字元
      Code2 := Asc(Char2)                     ; 得到其ASCII值
      if(Code2 >= 64 And Code2 <= 254)        ; 若條件成立則說明是中文字元
      {
        Code1 <<= 8                         ; 第一個字元應放到高8位上
        Code1 += Code2                      ; 第二個字元放在低8位元上
      }
      Index++
    }
    ;; MsgBox %Code1%
    if(Code1 <= 255)  ; 如果此值仍<=255則說明是非中文字元,否則經過上面的處理必然大於255
    Code1 := "0" . Code1
    ;;; KeysInUnicode = ""  ;;; 若發現送出的中文變成ASCII數值,把此行開頭的分號刪掉
    KeysInUnicode .= "{ASC " . Code1 . "}"
    if(Code2 > 0 And Code2 < 64) {
      Code2 := "0" . Code2
      KeysInUnicode .= "{ASC " . Code2 . "}"
    }
    Index++
    ;;; Send %KeysInUnicode%  ;;; 若發現送出的中文變成ASCII數值,把此行開頭的分號刪掉
    if(Index > Len)
      Break
    }
    Send % KeysInUnicode  ;;; 若發現送出的中文變成ASCII數值,把此行開頭加上分號
    Return ""
  }  ;; _sendRaw

#w::
_SendRaw("版本:")
Send !{Enter}
_SendRaw("模型:")
Send !{Enter}
_SendRaw("画面:")
Send !{Enter}
_SendRaw("部品:")
Send !{Enter}
_SendRaw("手顺:")
Send !{Enter}
_SendRaw("现象:")
Send !{Enter}
_SendRaw("期待:")  
return

posted on 2012-12-07 00:03  紫雨心  阅读(219)  评论(0编辑  收藏  举报

导航