タイトル : Re^2: 拡大鏡の画面四隅へのドッキング状態を解除するには 投稿日 : 2014/03/06(Thu) 14:16 投稿者 : サリー
YKさん こんにちは。 コメント有難うございます。 当方では FindWindow("MagUIClass", "拡大鏡") にてウィンドウハンドルは取得できるのですが、SetWindowPos しても移動させることが できません。(まだ原因はわかっていません。) サンプルのNo.449(表示されている全てのウィンドウのタイトル・ハンドル・クラス名を列挙する) の表示結果では"Screen Magnifier Window"と"MagUIClass"の2つが挙がってきたため、 "Screen Magnifier Window" のウィンドウハンドルを指定したところ、拡大鏡の映像表示 フレームを移動させることができました。 "MagUIIconClass" はNo.449の列挙には含まれていないためYKさんから教わるまで 気づいておりませんでしたが、"MagUIIconClass" のウィンドウハンドルを指定すると 拡大鏡のナビゲーションウィンドウを移動させることができました。 また課題である壁面ドッキング状態の解除に関してレジストリの差分をとってみたところ、 以下のレジストリ値にて状態が保持されていることがわかりました。 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\ScreenMagnifier] "ClassicDocked"=dword:00000000 ドッキング無し "ClassicDocked"=dword:00000001 ドッキング有り このため、RegSetValueEx を使ってそのREG_DWORD値を 1 から 0 に変えたうえで 拡大鏡を起動したところ画面のへりにドッキングした状態の矩形ではなく、独立した ウィンドウとして拡大鏡を表示させ、その後に移動させることができました。 Private Declare Function RegSetValueEx _ Lib "advapi32" Alias "RegSetValueExA" _ (ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal Reserved As Long, _ ByVal dwType As Long, _ szData As Any, _ ByVal cbData As Long _ ) As Long |