• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:起動したアプリケーションを最大化したいのですが。(VB.NET))

起動したアプリケーションを最大化する方法

このQ&Aのポイント
  • VB.NETを使用して起動したアプリケーションを最大化する方法を教えてください。
  • MainWindowHandleを取得してウィンドウを最大化する方法を試しましたが、スプラッシュウィンドウの影響でうまくいきません。
  • 別の方法として起動したアプリケーションのIDやタイトルバーからウィンドウを特定し、最大化したいです。VBのコードを使用してIDやMainWindowTitleを取得し、ShowWindow(hWnd, SW_MAXIMIZE)を実行したいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

開発用に個人ツールとして、最大化/最小化ボタンのないウィンドウを操作するために、あなたが求めているような機能を作成したことがあります。 記憶が薄いですが、、、私も最初は[API:ShowWindow()]を利用していたと思います。 しかし、何故か操作出来る窓/出来ない窓がありました。原因は未だ不明です。。。 (理由がわかれば、教えて欲しいぐらいです。) そこで、、、 以前 [2080663:サイズ変更したフォームのサイズと位置を設定・取得したいです。] http://okwave.jp/kotaeru.php3?q=2080663 にて、アドバイスをした [API:GetWindowPlacement()] [API:SetWindowPlacement()] にて解消いたしました。 以前のサンプルは、自プロセスのフォームに対して行っておりますが、 Form1_Loadイベントの「Dim l_ptr As IntPtr = Me.Handle」をパラメータ化し、 「p.MainWindowHandle」を利用することにより、設定が可能かと思います。 ----------------------------- Imports System.Runtime.InteropServices -----------------------------   Dim p As Process   For Each p In localByName     'Call 最大化実行(p.MainWindowHandle)   Next Private Sub 最大化実行(ByVal p_Ptr As IntPtr)   Dim l_WINDOWPLACEMENT As WINDOWPLACEMENT   Dim l_blnRet As Boolean   '構造体のサイズ情報を格納   l_WINDOWPLACEMENT.Length = Marshal.SizeOf(GetType(WINDOWPLACEMENT))   '取得実行   l_blnRet = GetWindowPlacement(p_Ptr, l_WINDOWPLACEMENT)   If Not l_blnRet Then     MsgBox("取得失敗")     Return   End If   '各情報の指定   With l_WINDOWPLACEMENT     '最大表示を指定     .showCmd = showCmd_SW.SW_SHOWMAXIMIZED   End With   '設定実行   l_blnRet = SetWindowPlacement(p_Ptr, l_WINDOWPLACEMENT)   If Not l_blnRet Then     MsgBox("設定失敗")     Return   End If End Sub

popopompom
質問者

お礼

できました。(^o^) 中々難しそうなコードだったのですが、コピペだけで使えるように上げて頂いてとてもたすかりました。(^^;) こちらのコードも今後愛用させていただきたいと思います。ありがとうございました。!

すると、全ての回答が全文表示されます。

関連するQ&A