tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。