概要
窓ハンドル命令の優秀なライブラリがたくさんあったのでまとめてみました。これでデフォルトの約2倍の窓ハンドル系の命令が使えるようになります。
見やすいようにDLLと書式を統合しました。
●窓ハンドル有効/無効
●窓ハンドル最前面/最前面解除
●窓ハンドルWH設定
●窓ハンドルバー無効/有効
●窓ハンドル親設定
●窓ハンドル終了ボタン無効/有効
●窓ハンドル最大化ボタン無効/有効
●窓ハンドル最小化ボタン無効/有効
●窓ハンドル最小化
●窓ハンドル最大化
●窓ハンドル終了
●窓ハンドル移動禁止
●窓ハンドルサイズ変更禁止
●窓ハンドルスタイル削除
●窓ハンドル最大化判定
●窓ハンドル透明度設定
●窓ハンドルフルスクリーン
●API窓ハンドルサイズ取得
●API窓アクティブハンドル取得
●API窓アクティブハンドル取得2
作者一覧
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
- ●窓ハンドル終了ボタン有効/無効
- ●窓ハンドル最大化/最小化ボタン無効
- ●窓ハンドル終了
- ●窓ハンドル移動禁止
- ●窓ハンドルサイズ変更禁止
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。
参考:母艦の最大化した時~
参考:ChocoSoft
参考:ChocoSoft
参考:ChocoSoft
サンプル
#母艦ハンドルを窓ハンドル無効
#母艦ハンドルを窓ハンドル最前面
#母艦ハンドルを100,100へ窓ハンドルWH設定
#母艦ハンドルで窓ハンドルバー無効
#母艦ハンドルを窓ハンドル終了ボタン無効
#母艦ハンドルを窓ハンドル最大化ボタン無効
#母艦ハンドルを窓ハンドル最小化ボタン無効
#母艦ハンドルを窓ハンドル最小化
#母艦ハンドルを窓ハンドル終了
#母艦ハンドルを窓ハンドル移動禁止
#母艦ハンドルを窓ハンドルサイズ変更禁止
#母艦ハンドルの窓ハンドルスタイル削除
/*1の間
母艦=母艦ハンドルの窓ハンドル最大化判定*/
#母艦ハンドルを100で窓ハンドル透明度設定
#母艦ハンドルを窓ハンドルフルスクリーン
#母艦のハンドルのAPI窓ハンドルサイズ取得を言う
#API窓アクティブハンドル取得を言う
#API窓アクティブハンドル取得2を言う
/*
「notepad.exe」を起動
メモ帳H=「無題 - メモ帳」を窓ハンドル検索
母艦ハンドルをメモ帳Hの窓ハンドル親設定
*/
なでしこデフォルトの窓ハンドル命令
比較のために
#「なでしこ」を窓アクティブ
#「なでしこ」を0,0へ窓位置移動
#「なでしこ」を窓ハンドル検索を言う
#「なでしこ」を2まで窓ハンドル検索待機を言う
#母艦ハンドルに「こんにちは」を窓ハンドルキー送信
#母艦ハンドルに「こんにちは」を窓ハンドルキー文字送信
#母艦ハンドルに0を窓ハンドル仮想キー送信
#窓アクティブハンドル取得を言う
#窓アクティブタイトル取得を言う
#「なでしこ」を窓最前面
#「なでしこ」を窓最前面解除
#母艦ハンドルの窓ハンドルテキスト取得を言う
#母艦ハンドルに「タイトル」を窓ハンドルテキスト設定
#母艦ハンドルの窓ハンドルサイズ取得を言う
#母艦ハンドルに「0,0,100,100」を窓ハンドルサイズ設定
#窓列挙を言う
#母艦ハンドルの窓ハンドル親取得を言う
#母艦のX,母艦のYの窓ハンドル座標検索を言う
#母艦のX,母艦のYの窓ハンドル内座標検索を言う
#母艦ハンドルの窓ハンドル内列挙を言う
#母艦ハンドルから「子ウィンドウ」を窓ハンドル内検索を言う
#母艦ハンドルを0,0へ窓ハンドル位置移動
#母艦ハンドルの窓ハンドル光
#母艦ハンドルを窓ハンドルアクティブ
#母艦ハンドルを窓ハンドルクリック
#母艦ハンドルを窓ハンドル右クリック
#母艦ハンドルを窓ハンドル非同期クリック
#母艦ハンドルの窓ハンドル内サイズ取得を言う
/*CNAKO用
・窓ハンドル値取得
・窓ハンドル値設定
・窓ハンドルアイテム数取得
・窓ハンドル画面座標計算
*/
本体
●EnableWindow(H,B)=DLL("user32.dll","BOOL EnableWindow(HWND hWnd,BOOL bEnable)")
●SetWindowPos(h,a,x,y,cx,cy,u)=DLL("user32.dll","BOOL SetWindowPos(HWND hWnd,HWND hWndInsertAfter,int X,int Y,int cx,int cy,UINT uFlags)")
●SetWindowLong(hWnd,nIndex,dwNewLong)=DLL("user32.dll","BOOL SetWindowLongA(DWORD,int,int)")
●GetWindowLong(hWnd,nIndex)=DLL("user32.dll","DWORD GetWindowLongA(DWORD,int)")
●SetParent(H1,H2)=DLL("user32.dll","DWORD SetParent(DWORD, DWORD)")
●GetSystemMenu(hWnd,bRevert)=DLL("user32.dll","DWORD GetSystemMenu(HWND,BOOL)")
●EnableMenuItem(hMenu,uItemID,uEnable)=DLL("user32.dll","BOOL EnableMenuItem(DWORD,int,int)")
●DeleteMenu(hMenu,uPosition,fuFlags)=DLL("user32.dll","BOOL DeleteMenu(DWORD,int,int)")
●SetWindowTheme(hwnd,pszSubAppName,pszSubIdList)=DLL("UxTheme.dll","HRESULT SetWindowTheme(HWND hwnd,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList)")
●SetLayeredWindowAttributes(h,c,b,d)=DLL("user32.dll","BOOL SetLayeredWindowAttributes(HWND hwnd, LONG crKey, LONG bAlpha, DWORD dwFlags );")
●ShowWindow(h,n)=DLL("user32.dll","BOOL ShowWindow(HWND hWnd,int nCmdShow)")
●GetForegroundWindow =DLL("user32.dll","HWND GetForegroundWindow(VOID)")
●GetActiveWindow=DLL("user32.dll","HWND GetActiveWindow(VOID)")
●GetWindowRect(H,{参照渡し}RECT)=DLL("user32.dll","Long GetWindowRect(Long hWnd,LPRECT lpRect)")
●IsZoomed(hWnd)=DLL("user32.dll","BOOL IsZoomed(HWND hWnd)")
●窓ハンドル有効({=?}Hの|Hを)
もし、H=空ならば、H=_
EnableWindow(H,1)
●窓ハンドル無効({=?}Hの|Hを)
もし、H=空ならば、H=_
EnableWindow(H,0)
●窓ハンドル最前面({=?}Hの|Hを)
もし、H=空ならば、H=_
SetWindowPos(H,-1,0,0,0,0,1||2)
●窓ハンドル最前面解除({=?}Hの|Hを)
もし、H=空ならば、H=_
SetWindowPos(H,-2,0,0,0,0,1||2)
●窓ハンドルWH設定({=?}HANDLEをW,Hへ)
もし、HANDLE=空ならば、HANDLE=_
Aとは配列=HANDLEの窓ハンドルサイズ取得
A[0,2]=A[0,0]+W;A[0,3]=A[0,1]+H
HANDLEにAを窓ハンドルサイズ設定
●窓ハンドルバー無効({=?}Hの|Hを)
もし、H=空ならば、H=_
MODEとは整数=AND(GetWindowLong(H,$FFFFFFF0),$FF70FFFF)
SetWindowLong(H,$FFFFFFF0,MODE)
●窓ハンドルバー有効({=?}Hの|Hを)
もし、H=空ならば、H=_
MODEとは整数=GetWindowLong(H,$FFFFFFF0)+$008F0000
SetWindowLong(H,$FFFFFFF0,MODE)
●窓ハンドル親設定({=?}親Hを子Hの)
もし、親H=空ならば、親H=_
SetParent(子H,親H)
●窓ハンドル終了ボタン無効({=?}Hの|Hを)
もし、H=空ならば、H=_
EnableMenuItem(GetSystemMenu(H,0),$F060,1)
●窓ハンドル終了ボタン有効({=?}Hの|Hを)
もし、H=空ならば、H=_
EnableMenuItem(GetSystemMenu(H,0),$F060,0)
●窓ハンドル最大化ボタン無効({=?}Hの|Hを)
もし、H=空ならば、H=_
MODEとは整数=AND(GetWindowLong(H,$FFFFFFF0),$FFFEFFFF)
SetWindowLong(H,$FFFFFFF0,MODE)
●窓ハンドル最大化ボタン有効({=?}Hの|Hを)
もし、H=空ならば、H=_
MODEとは整数=OR(GetWindowLong(H,$FFFFFFF0),$00010000)
SetWindowLong(H,$FFFFFFF0,MODE)
●窓ハンドル最小化ボタン無効({=?}Hの|Hを)
もし、H=空ならば、H=_
MODEとは整数=AND(GetWindowLong(H,$FFFFFFF0),$FFFDFFFF)
SetWindowLong(H,$FFFFFFF0,MODE)
●窓ハンドル最小化ボタン有効({=?}Hの|Hを)
もし、H=空ならば、H=_
MODEとは整数=OR(GetWindowLong(H,$FFFFFFF0),$00020000)
SetWindowLong(H,$FFFFFFF0,MODE)
●窓ハンドル最小化({=?}Hの|Hを)
もし、H=空ならば、H=_
PostMessage(H,$112,$f020,0)
●窓ハンドル最大化({=?}Hの|Hを)
もし、H=空ならば、H=_
PostMessage(H,$112,$f030,0)
#窓ハンドルアクティブ
●窓ハンドル終了({=?}Hの|Hを)
もし、H=空ならば、H=_
PostMessage(H,$10,0,0)
●窓ハンドル移動禁止({=?}Hの|Hを)
もし、H=空ならば、H=_
DeleteMenu(GetSystemMenu(H,0),$F010,1)
●窓ハンドルサイズ変更禁止({=?}Hの|Hを)
もし、H=空ならば、H=_
DeleteMenu(GetSystemMenu(H,0),$F000,1)
●窓ハンドルスタイル削除({=?}Hの|Hを)
もし、H=空ならば、H=_
SetWindowTheme(H,"vbNullString","vbNullString")
●窓ハンドル最大化判定({=?}Hの)
もし、H=空ならば、H=_
IsZoomed(H)で戻る
●窓ハンドル透明度設定({=?}HをAで)
もし、H=空ならば、H=_
SetWindowLong(H,-20,GetWindowLong(A,-20)||$80000)
SetLayeredWindowAttributes(H,0,A,2)
●窓ハンドルフルスクリーン({=?}Hの|Hを)
もし、H=空ならば、H=_
SetWindowLong(H,-16,$80)
ShowWindow(H,1)
Hに「0,0,{デスクトップW},{デスクトップH}」を窓ハンドルサイズ設定
■RECT
・Left・Top・Right・Bottom
●API窓ハンドルサイズ取得({=?}Hの)
もし、H=空ならば、H=_
返り値とは配列
Sとは変数;Sに16を確保
GetWindowRect(H,S)
UNPACK(S,RECT,"Long,Long,Long,Long")
返り値[0,0]=RECT.Left;返り値[0,1]=RECT.Top
返り値[0,2]=RECT.Right;返り値[0,3]=RECT.Bottom
返り値で戻る
●API窓アクティブハンドル取得~GetForegroundWindow
●API窓アクティブハンドル取得2~GetActiveWindow
総合: -
今日: - 人
昨日: - 人
最終更新:2012年02月01日 10:56