- - PR -
VB2005 他アプリケーションの終了 (VB2005初心者)
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-02-13 15:56
VB2005にて、他アプリケーションを下記記述にて起動しています。
(起動はどうにかうまくいっています) Dim prc3D As System.Diagnostics.Process = _ System.Diagnostics.Process.Start(ThreeDSIMULATOR_PATH, strParam) m_3D_Process = prc3D 'フォームの先頭で宣言 Private m_3D_Process As Process 追加仕様として、先に起動していたアプリケーションが残っていた場合は、 一度終了させた後、起動をかけるようにしたく、下記記述で試してみましたが うまく動作しませんでした。 m_3D_Process.CloseMainWindow() どうも m_3D_Process = prc3Dの記述でm_3D_Processに 値が正常に入っていない為だと思うのですが・・よくわかりません。 どのように記述すれば、先に起動したアプリケーションを終了させることができるのでしょうか。 ご教授よろしくお願い致します。 | ||||||||||||||||
|
投稿日時: 2009-02-13 16:41
思うと言われても、読む方は判りません。 ステップデバッグ等で確認した結果、そうだったのでしょうか? 他アプリケーションとして、メモ帳を使ったらどうなりますか? | ||||||||||||||||
|
投稿日時: 2009-02-13 17:43
prc3Dは、今起動したプロセスを保持していますので、
既に起動中の物ではないと言うことでしょうか? 起動中のプロセスを操作する方法として、 http://www.atmarkit.co.jp/fdotnet/dotnettips/151winshow/winshow.html は参考になりませんか? | ||||||||||||||||
|
投稿日時: 2009-02-14 03:02
「参照」 を渡しているだけだと理解して、上記のような記述をしていますか?
うまく動作しなかったというのは具体的にどうなったのでしょうか? 例外が発生したのでしょうか? たとえば、
ここでもし参照が受け取れていないのであれば例外が発生します。 それと "値" と書かれていますが、Process クラスのインスタンスを値と表現するのは適切ではありません。 このあたりから、「参照」 の概念がないような気がします。
最初に Process.Start メソッドの戻り値であるインスタンスを prc3D に格納しているので、それはなさそうな気がしましたが... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2009-02-14 10:56
先に起動していたアプリケーションというのをどのように特定していますか? 例えば、自分自身が起動したプロセスであれば、起動した時のProcessクラスのインスタンスを保持していればそれを使えばいいだけですし、そうでない場合もProcess.GetProcesses()とかProcess.GetProcessByName()を使えばそのプロセスを特定出来ます。 あとはうまくいかないという場合にはエラーが出るのか、何も動かないのかというのは記載された方がよいと思います。 |
1