DLL 使用定義-スクリプト構文:UWSC,

<DLL 使用定義>
 // DLL(API等)の関数を使用する事ができるようになります (64bitのDLLは呼び出せません)

 DEF_DLL 関数名(型, 型, …): 戻り型: DLL名
 型: int、long、bool、uint、hwnd、string、Wstring、float、double、word、dword、byte、char、pchar、Wchar、pWchar、boolean、longlong、Extended、SafeArray

 参照引数(値変更あり)の場合は Var 宣言を付ける   関数名( var double, var int )      
 構造体:型を { } にて展開して書く    関数名( double, {int, int, int} ) 
 配列の場合は型に [] を付ける      関数名( double[], int[] )

 ※int=long= bool(4byte)、dword=uint=hwnd、 char=boolean(1byte)
   ヌルポインタを渡す時は NULL定数を使用してください

 

【例:サンプル】
// 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

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

コメントを残す