SendKeysCtypes をpy2.7 および win7 64bit で動作させようとしています。 ここにsrcがあります
問題:
SendKeysCtypes.pyを実行しても何も起こりません。テストでは、メモ帳を開いてテキストを書き込む必要があります。
問題のコードは次のとおりです。
def GetInput(self):
    "Build the INPUT structure for the action"
    actions = 1
    # if both up and down
    if self.up and self.down:
        actions = 2
    inputs = (INPUT * actions)()
    vk, scan, flags = self._get_key_info()
    for inp in inputs:
        inp.type = INPUT_KEYBOARD
        inp._.ki.wVk = vk
        inp._.ki.wScan = scan
        inp._.ki.dwFlags |= flags
    # if we are releasing - then let it up
    if self.up:
        inputs[-1]._.ki.dwFlags |= KEYEVENTF_KEYUP
    return inputs
def Run(self):
    "Execute the action"
    inputs = self.GetInput()
    return SendInput(
        len(inputs),
        ctypes.byref(inputs),
        ctypes.sizeof(INPUT))
上記のコードの SendInput() は何もしません。
その他のテスト
- この回答のコードを試してみましたが、うまくいきました。しかし、このコードには他にも問題がありました。 
- 著者によると、それはpy3.1で動作するはずです 
- SendInput() は '0'を返します。これは、「別のスレッドによってブロックされた」ことを意味します 
- ctypes.GetLastError() を呼び出すと、「ERROR_INVALID_PARAMETER」を意味するエラー コード 87が返されます。 
私のWindowsプログラミングは非常に限られているため、ここで立ち往生しています。誰かがこれに光を当てることができますか?
編集1:
- 「64bit is problem」のトレースに従って、このSO の質問に進み、変換できるかどうかを確認します。