DOBON.NETプログラミング掲示板過去ログ
System.Diagnostics.Process
題名: System.Diagnostics.Process
著者: しおぱぱ
日時: 2004/05/06 22:49:24
ID: 3927
この記事の返信元:
(なし)
この記事への返信:
[3951]
Re[1]: System.Diagnostics.Process
Jubei
2004/05/09 0:28:15
ツリーを表示
分類:[.NET]
度々、参考にさせていただいています。
このたび、System.Diagnostics.Processを使用して、子プロセスを呼ぶ処理を作成
しました。
Aプロセス(メニュー)からBプロセスを呼び、BプロセスからCプロセスを呼ぶ。
(全て呼び出したプロセスが終了するまで、処理はWaite状態)
ここで、Cが終了した時、Bのフォームを最前面に表示(固定する必要はないです)
させたいのですが、Aが最前面に出てしまいます。良い方法はないでしょうか。
Bのプロセスで Me.TopMost = True をセットすると、完全に固定されてしまうので、
それはしたくありません。
良い方法をご存知のかた、よろしくお願いします。
<コーデイング内容>
'プロセス起動
Me.ShowInTaskbar = False
Process1.StartInfo.FileName = "BProcess.Exe"
Process1.StartInfo.Arguments = G_strLoginPassword & " " & "MOTOCHO"
Process1.Start()
Process1.WaitForInputIdle()
'プロセス終了
Process1.WaitForExit()
If Process1.HasExited = False Then
If Process1.Responding Then
Process1.CloseMainWindow()
Else
Process1.Kill()
End If
End If
題名: Re[1]: System.Diagnostics.Process
著者: Jubei
日時: 2004/05/09 0:28:15
ID: 3951
この記事の返信元:
[3927]
System.Diagnostics.Process
しおぱぱ
2004/05/06 22:49:24
この記事への返信:
(なし)
ツリーを表示
■No3927に返信(しおぱぱさんの記事)
> ここで、Cが終了した時、Bのフォームを最前面に表示(固定する必要はないです)
> させたいのですが、Aが最前面に出てしまいます。良い方法はないでしょうか。
どういった現象でハマっているのか読み取れなかったのですが、
BプロセスがCプロセスの終了を待って、Cプロセスが終了した指示点で
Bプロセスは自分のフォームを前面に持ってきたいという事なんですよね?
であれば、P/Invokeを使ってSetForegroundWindowに前面に持ってきたい
フォームを指定すればいいかと思います。
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
度々、参考にさせていただいています。
このたび、System.Diagnostics.Processを使用して、子プロセスを呼ぶ処理を作成
しました。
Aプロセス(メニュー)からBプロセスを呼び、BプロセスからCプロセスを呼ぶ。
(全て呼び出したプロセスが終了するまで、処理はWaite状態)
ここで、Cが終了した時、Bのフォームを最前面に表示(固定する必要はないです)
させたいのですが、Aが最前面に出てしまいます。良い方法はないでしょうか。
Bのプロセスで Me.TopMost = True をセットすると、完全に固定されてしまうので、
それはしたくありません。
良い方法をご存知のかた、よろしくお願いします。
<コーデイング内容>
'プロセス起動
Me.ShowInTaskbar = False
Process1.StartInfo.FileName = "BProcess.Exe"
Process1.StartInfo.Arguments = G_strLoginPassword & " " & "MOTOCHO"
Process1.Start()
Process1.WaitForInputIdle()
'プロセス終了
Process1.WaitForExit()
If Process1.HasExited = False Then
If Process1.Responding Then
Process1.CloseMainWindow()
Else
Process1.Kill()
End If
End If