|
分類:[VB.NET/VB2005 以降]
使用言語:VB2013(WindowsFormアプリ)
OS:Windows10(64bit)
こんにちは。
今、別のアプリに対してモーダルとなるウィンドウを作成できるか試しています。
例えば、以下のように、IWin32Windowインタフェースを実装したクラスを用意し、
これに別アプリのウィンドウハンドルを適用したものをFormのShowDialogの引数に渡すことにより、
別アプリに対してモーダルとなるウィンドウになることを確認しましたが、
このやり方は(別アプリが操作できないことは別として)問題はないでしょうか?
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim hWnd As IntPtr = (別アプリのウィンドウハンドル)
Using f As New Form2
f.ShowDialog(New OwnerWindow(hWnd))
End Using
End Sub
Private Class OwnerWindow
Implements IWin32Window
Private m_hWnd As IntPtr
Public Sub New(ByVal hWnd As IntPtr)
m_hWnd = hWnd
End Sub
Public ReadOnly Property Handle() As System.IntPtr Implements System.Windows.Forms.IWin32Window.Handle
Get
Return m_hWnd
End Get
End Property
End Class
End Class
また、自身のアプリはx86ビルドの場合で、別アプリがx64で実行されている場合でも
この方法は使えますか?問題がありますか?
よろしくお願いいたします。
|