ウィンドウへの入力の有効無効を設定 <TOP>
起動した電卓への入力を有効化・無効化の設定をします。
FindWindow 指定された文字列と一致するクラス名とウィンドウ名を持つトップレベルウィンドウのハンドルを返す
EnableWindow ウィンドウへの入力可能不可能を設定
例では、電卓を起動し入力の有効化・無効化を設定しています。
'================================================================ '= ウィンドウへの入力の有効無効を設定
'= (EnableWindow.bas) '================================================================ #include "Windows.bi" ' 指定された文字列と一致するクラス名とウィンドウ名を持つトップレベルウィンドウ( 親を持たないウィンドウ)のハンドルを返す。この関数は、子ウィンドウは探さない。検索では、大文字小文字は区別されない Declare Function Api_FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$) ' ウィンドウへの入力可能不可能を設定 Declare Function Api_EnableWindow& Lib "user32" Alias "EnableWindow" (ByVal hWnd&, ByVal bEnable&) Var Shared Radio1 As Object Var Shared Radio2 As Object Var Shared Button1 As Object Radio1.Attach GetDlgItem("Radio1") : Radio1.SetFontSize 14 Radio2.Attach GetDlgItem("Radio2") : Radio2.SetFontSize 14 Button1.Attach getDlgItem("Button1") : Button1.SetFontSize 14 Var Shared Index As Integer '================================================================ '= '================================================================ Declare Sub WindowState edecl () Sub WindowState() Var ClassName As String Var hWnd As Long Var Ret As Long 'クラス名でウィンドウハンドルを取得 ClassName = "SciCalc" hWnd = Api_FindWindow(ClassName, ByVal 0) 'ウィンドウハンドルを取得できたときは If hWnd <> 0 Then 'ウィンドウへの入力の有効無効を設定 Ret = Api_EnableWindow(hWnd, Index) End If End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() 'コマンドボタンを無効に設定 Button1.EnableWindow 0 '電卓を起動 Shell "Calc.exe",, 5 End Sub '================================================================ '= '================================================================ Declare Sub Radio1_on edecl () Sub Radio1_on() Index = 1 WindowState End Sub '================================================================ '= '================================================================ Declare Sub Radio2_on edecl () Sub Radio2_on() Index = 0 WindowState End Sub '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Radio1_on End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End