Bypass_keybd_eventだけは実は少々例外でして、この関数はパラメータとしてキーコードを受けて、そのキーを「押して離す」操作をシミュレートします。ソースコードは以下のようになっています。
Bypass_MessageBox Bypass_SetForegroundWindow Bypass_GetForegroundWindow Bypass_PostMessage Bypass_GetWindow Bypass_DeleteFile Bypass_MoveFile Bypass_CopyFile Bypass_GetLastError Bypass_CreateDirectory (パラメータ2は省略) Bypass_RemoveDirectory Bypass_GetFileSize (パラメータ1にファイル名、パラメータ2は省略) Bypass_keybd_event (パラメータは仮想キーコードの1つのみ。後述) Bypass_keybd_event_raw (パラメータは4つ。後述) Bypass_GetFileAttributes Bypass_SetFileAttributes Bypass_GetWindowText (パラメータはウィンドウハンドルのみで、返り値は文字列) Bypass_GetFocus Bypass_SetWindowPos (以下は秀丸メールV5.72β6から追加) Bypass_FindWindow Bypass_FindWindowEx Bypass_GetNextWindow Bypass_GetLastActivePopup Bypass_GetClientSize GetClientRect関数で取得したクライアントサイズを、上位ワードに縦サイズ、下位ワードに横サイズを入れて返す。パラメータはウィンドウハンドルのみ。 Bypass_GetWindowSize GetWindowRect関数で取得したウィンドウサイズを、上位ワードに縦サイズ、下位ワードに横サイズを入れて返す。パラメータはウィンドウハンドルのみ。 Bypass_GetWindowPos GetWindowRect関数で取得したウィンドウ位置を、上位ワードにy座標、下位ワードにx座標を入れて返す。パラメータはウィンドウハンドルのみ。 Bypass_GetOpenFileName Bypass_GetSaveFileName Bypass_IsWindowVisible Bypass_IsWindowEnabled Bypass_GetWindowLongPtr Bypass_ShowWindow Bypass_InSendMessage Bypass_GetCurrentProcessId Bypass_GetCurrentThreadId Bypass_GetWindowProcessId GetWindowThreadProcessIdを呼び出し、プロセスIDを返す。パラメータにウィンドウハンドルのみ Bypass_GetWindowThreadId GetWindowThreadProcessIdを呼び出し、スレッドIDを返す。パラメータにウィンドウハンドルのみ Bypass_SearchPath パラメータにファイル名文字列のみ Bypass_ShellExecute
extern "C" int __declspec(dllexport) Bypass_keybd_event( int vkey ) {
int scan = MapVirtualKey( vkey, 0 );
keybd_event( (BYTE)vkey, (BYTE)scan, 0, 0 );
keybd_event( (BYTE)vkey, (BYTE)scan, KEYEVENTF_KEYUP, 0 );
return 0;
}
loaddll "tkinfo.dll";
#ret = dllfunc("Bypass_keybd_event_raw", 0x5B, 0, 0, 0);
#ret = dllfunc("Bypass_keybd_event_raw", 0xBE, 0, 0, 0);
#ret = dllfunc("Bypass_keybd_event_raw", 0xBE, 0, 2, 0);
#ret = dllfunc("Bypass_keybd_event_raw", 0x5B, 0, 2, 0);
SimulateKeyStroke, SimulateKeyStroke2関数もあるので、普通はそっちを使ってほしいです。