GETCTLHND関数(ボタン等、オブジェクトのハンドルをゲットする):UWSC,

// ボタン等、オブジェクトのハンドルをゲットする
戻値 = GETCTLHND( ID, アイテム名, [番号] )
引数
 ID: Windowを識別するID
 アイテム名: ボタン類のキャプション文字、もしくはオブジェクトのクラス名
 番号: 同じアイテム名がある場合に番号指定 
戻値
 ハンドル値

 ※ GETCTLHND(ID,GET_MENU_HND) とするとメニュハンドルを返す
   GETCTLHND(ID,GET_SYSMENU_HND) とするとシステムメニュハンドルを返す

【例:サンプル】
// DLLの使用
DEF_DLL SetWindowTextA(HWND,string):user32.DLL
DEF_DLL EnableWindow(HWND,Bool):Bool:user32.DLL
DEF_DLL EnableMenuItem(HWND,UINT,UINT):DWORD:user32.DLL
DEF_DLL GetSubMenu(HWND,int):HWND:user32.DLL
DEF_DLL ModifyMenuA(HWND,Long,Long,Long,Long):Long:user32.DLL
DEF_DLL GetCursorPos({long,long}):bool:user32      // 構造体使用
DEF_DLL ClipCursor({long,long,long,long}):bool:user32  // 構造体使用

MF_BYPOSITION =$400
MF_GRAYED =$1
SC_CLOSE =$F060

// メモ帳を弄る  終了はALT +F4 で
id =exec(“notepad”)
hwnd = GetSubMenu(GetCtlHnd(id,GET_MENU_HND),0)   // メニュ->ファイル
EnableMenuItem(hwnd,8,MF_BYPOSITION+MF_GRAYED)    // 終了をグレー
hwnd =GetCtlHnd(id,GET_SYSMENU_HND)         // システムメニュ
ModifyMenuA(hwnd,SC_CLOSE,MF_GRAYED,0,0)       // クローズボタンをグレー
ClkItem(id,”バージョン情報”)
hwnd =GetCtlHnd(GETID(“バージョン情報”),”OK”)
SetWindowTextA(hwnd,”押せまい”)           // OKボタン書換え
EnableWindow(hwnd,False)

// 構造体を使用したものは展開して設定
dim x,y
GetCursorPos(x,y)
print “マウス位置=”+x +”,”+y
ClipCursor(x-100,y-100,x+100,y+100)  // +-100以内にマウス移動を限定
Sleep(10)

// Post/Message は以下のように
DEF_DLL PostMessageA(HWND,LONG,LONG,DWORD):Bool:user32.DLL
DEF_DLL SendMessageA(HWND,LONG,LONG,DWORD):LONG:user32.DLL

//var宣言を付けると参照引数(ポインター渡し)
//DEF_DLL teststr(var string,var int,var double):string:TEST.DLL

——————————————————————————–

このエントリーをはてなブックマークに追加

コメントを残す