スクリーンセーバーの設定画面が画面のプロパティの後ろに隠れないようにするには?

解決


ひよこ  2006-10-28 07:14:30  No: 133908

VB2005です。

タイトルのとおりです。
ウィンドウハンドルは取得できたのですが、これをどのように使うのかわかりません。

もし宜しければ、サンプルコードを載せていただくと助かります。
よろしくお願いします。


K.J.K.  2006-10-29 18:35:40  No: 133909

API関数のSetWindowPosを使いたい、ということでしょうか?


ひよこ  2006-10-29 20:07:49  No: 133910

そうです。
SetWindowPos、SetParent、SetWindowLongなどのAPI関数を使うとできるらしいです。

過去ログに同じ質問があります。

スクリーンセーバーの設定ダイアログをモーダル表示にする方法
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200511/05110036.txt

いろいろ試しましたがうまくいきませんでした。


あん  2006-10-29 23:11:27  No: 133911

いろいろためしたソースを公開してみては?


ひよこ  2006-10-29 23:42:13  No: 133912

> いろいろためしたソースを公開してみては?

わかりました。

Dim Args() As String = Environment.GetCommandLineArgs()

Select Case Args.Length()
    Case 0, 1
        ' Application.Run(Form1)
    Case Else
        Select Case Mid(Args(1).ToLower(), 1, 2)
            Case "/s" ' スクリーンセーバー。
            Case "/p" 'プレビュー。
            Case "/c" ' オプション。

                Dim Handle_ As String = Mid(Args(1), 4) ' 画面のプロパティのハンドル。

                SetWindowLong(Form1.Handle.ToInt32(), GWL_HWNDPARENT, Handle_)

                EnableWindow(Handle_, 0)

                Application.Run(Form1)

                EnableWindow(Handle_, 1)

            Case Else
        End Select
End Select


ひよこ  2006-10-30 02:39:13  No: 133913

皆様、ご迷惑をおかけしました。

自己解決しました。

Dim Args() As String = Environment.GetCommandLineArgs()

Select Case Args.Length()
    Case 0, 1
        ' Application.Run(Form1)
    Case Else
        Select Case Mid(Args(1).ToLower(), 1, 2)
            Case "/s" ' スクリーンセーバー。
            Case "/p" ' プレビュー。
            Case "/c" ' オプション。

                Dim Handle_ As Integer = CInt(Mid(Args(1), 4)) ' 画面のプロパティのハンドル。

                Dim Form1_ As New Form1

                Raphael.SetWindowLong(Form1_.Handle.ToInt32(), Raphael.GWL_HWNDPARENT, Handle_)

                Form1_.ShowDialog()

            Case Else
        End Select
End Select

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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