■VB.NET用
Dim wMsg As Short
Dim hWnd As Integer
Dim Ret, SrqOn As Integer
wMsg = WM_USER + &H30S ' 0x400~0x7FFFの任意の番号
' WM_USER = 0x400
hWnd = Handle.ToInt32 ' Handleは現在実行中のプロシージャのハンドル
SrqOn = 1 ' イベント発生
Ret = GpSrqEvent(hWnd, wMsg, SrqOn)
' イベントを受け取るルーチン
Select Case message ' messageは実行中のプロシージャが受け取る第2引数
Case WM_USER + &H30: ' WM_USER + 0x30はGpSrqEventで設定した値
... ' 必要な処理を記述
...
End Select
■C言語用
WORD wMsg;
HANDLE hWnd;
DWORD Ret, SrqOn;
wMsg = WM_USER + 0x30; /* 0x400~0x7FFFの任意の番号 */
/* WM_USER = 0x400 */
hWnd = hDlg; /* hDlgは現在実行中のプロシージャのハンドル */
SrqOn = 1; /* イベント発生 */
Ret = GpSrqEvent(hWnd, wMsg, SrqOn);
hWnd = ctypes.windll.user32.FindWindowW(0, "Name") # "Name"は現在実行中のプロシージャのキャプション
/* イベントを受け取るルーチン */
switch(message){ /* messageは実行中のプロシージャが受け取る第2引数 */
case WM_USER + 0x30: /* WM_USER + 0x30はGpSrqEventで設定した値 */
... /* 必要な処理を記述 */
...
break;
}
■C#用
short wMsg;
int hWnd;
uint Ret, SrqOn;
wMsg = WM_USER + 0x30; /* 0x400~0x7FFFの任意の番号 */
/* WM_USER = 0x400 */
hWnd = this.Handle.ToInt32(); /* this.Handleは現在実行中のプロシージャのハンドル */
SrqOn = 1; /* イベント発生 */
Ret = gpib.SrqEvent(hWnd, wMsg, SrqOn);
/* イベントを受け取るルーチン */
switch(message){ /* messageは実行中のプロシージャが受け取る第2引数 */
case WM_USER + 0x30: /* WM_USER + 0x30はgpib.SrqEventで設定した値 */
... /* 必要な処理を記述 */
...
break;
}
■Python用
wMsg = ctypes.c_ushort()
Ret, SrqOn = ctypes.c_ulong(), ctypes.c_ulong()
wMsg.value = WM_USER + 0x30 # 0x400~0x7FFFの任意の番号
# WM_USER = 0x400
SrqOn.value = 1 # イベント発生
Ret.value = GpibPy.GpSrqEvent(hWnd, wMsg, SrqOn)
# イベントを受け取るルーチン
# messageは実行中のプロシージャが受け取る第2引数
if message == WM_USER + 0x30: # WM_USER + 0x30はGpSrqEventで設定した値 ...