- 締切済み
VBで外部プログラムを位置のみ指定して実行したい
Form1上のボタンを押すと、ある別のアプリケーションを実行し、そのウィンドウをForm1の横に大きさを保持したまま配置したいです。 現在は下記のコードを使っていますが、この場合 ・幅・高さが変わる ・一瞬別の位置にウィンドウが見える といった問題があります。 ・位置のみを指定する、もしくは外部のウィンドウのサイズを取得する方法 ・表示する前に位置を変える方法 あるいは ・位置のみを指定して実行する方法 について教えていただきたいです。 Dim p As Process = Process.Start(application) p.WaitForInputIdle() MoveWindow(p.MainWindowHandle, Me.Right, Me.Top, 100, 100, 1)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- bluecampus
- ベストアンサー率66% (138/209)
回答No.3
- bluecampus
- ベストアンサー率66% (138/209)
回答No.2
- bluecampus
- ベストアンサー率66% (138/209)
回答No.1
お礼
Dim psi As New ProcessStartInfo psi.FileName = app psi.WindowStyle = ProcessWindowStyle.Hidden Dim p As Process = Process.Start(psi) SetWindowPos(p.MainWindowHandle, 0, Me.Right, Me.Top, 0, 0, SWP_NOSIZE) ShowWindow(p.MainWindowHandle, SW_SHOW) とやってみましたが、消えたままです。 WindowStyleとShowWindowは互換しないのでしょうか。 また、表示されているウィンドウをShowWindowで非表示にし、位置変更後ShowWindowで再表示してみましたが、移動が適応されていません。 Process.Startの前にShowWindowは使えないので、「表示されているウィンドウのWindowStyle」を変更する方法が必要なようです。