0

dll( user32.dll )で関数ChangeWindowMessageFilterを呼び出そうとしています

dlluser32 = ctypes.cdll.LoadLibrary('user32.dll')
dlluser32.ChangeWindowMessageFilter(0x0233, 1)
dlluser32.ChangeWindowMessageFilter(0x0048, 1)
dlluser32.ChangeWindowMessageFilter(0x0049, 1)

結果:

ValueError: Procedure called with not enough arguments (16 bytes missing) or wrong calling convention

どうすれば正しく電話を受けられますか? この関数を使用して、ウィンドウで実行するときにアプリのドラッグ アンド ドロップを有効にしたいのですが、機能しない場合は別の方法がありますか?

4

1 に答える 1

1

呼び出し変換を設定する必要があります。

from ctypes.wintypes import BOOL, DWORD, UINT

dlluser32 = ctypes.cdll.LoadLibrary('user32.dll')
ChangeWindowMessageFilter = dlluser32.ChangeWindowMessageFilter

# BOOL WINAPI ChangeWindowMessageFilter(_In_  UINT message, _In_  DWORD dwFlag);
ChangeWindowMessageFilter.restype = BOOL
ChangeWindowMessageFilter.argtypes = (UINT, DWORD)

# Now you can call it there...
于 2012-12-14T07:49:29.783 に答える