• ベストアンサー

VB.NETでCreateProcess

VB.NET(2003)で、別exeを起動し、終了まで待機するということをするために、 system.Diagnostics.Processクラスを使用していました。 しかし、実際に動かす環境がMetaFrameなのですが、 その環境では、このクラスは使用できないようで画面の起動すらできなくなります。 ですので、別の方法ということで、APIのCreateProcess、WaitForSingleObjectを使用するように変更したいのですが、 VB.NETでのサンプルが余り無いため、パラメータにどのように設定するかなどがよくわかりません。 API自体使ったことが無いので、根本的にわから無すぎるのです・・・ VB.NETでAPI利用サンプルが多く掲載されているサイト、 できれば、CreateProcess、WaitForSingleObjectを使用しているサンプルなどありましたら、ご教授願います。 よろしくお願いいたします。

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

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

> system.Diagnostics.Processクラスを使用していました。 > しかし、実際に動かす環境がMetaFrameなのですが、 > その環境では、このクラスは使用できないようで画面の起動すらできなくなります。 system.Diagnostics.Processクラスでは、 Desktopの指定ができないので、画面表示できないとかなんでしょうか? > VB.NETでのサンプルが余り無いため、パラメータにどのように設定するかなどがよくわかりません。 > API自体使ったことが無いので、根本的にわから無すぎるのです・・・ 宣言等は、 (http://www.winapi-database.com/Program/Process/CreateProcess.html) あたりを見れば何とかなるのでは・・・ 只、VB.NET用のサンプルコードは・・・見つかりませんね・・・ VB6用とかのサンプルを読み替えていくしかないのでは・・・ (http://support.microsoft.com/default.aspx?scid=kb;ja;129797

sunasaka3
質問者

お礼

返答ありがとうございます。 system.Diagnostics.Processクラスが使えないのは、 MetaFrameだから、とうわけでは無く、権限の問題のようでした。 管理者権限を持たないユーザーは使えないクラスのようです。 http://www.microsoft.com/japan/msdn/netframework/programming/bcl/faq/SystemDiagnosticsProcessFAQ.aspx#Question7 宣言は、ご紹介いただいたサイトを見て真似してみたのですが、 例外が発生してしまい、調査中です。 使えない、ということは無さそうなので、よかったです。 ありがとうございました!

その他の回答 (1)

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.2

リンク先の http://www.winapi-database.com/Program/Process/CreateProcess.html 普通に間違ってますね。

sunasaka3
質問者

お礼

お礼が遅くなりすいません。 間違っているのですね・・・。 残念です。ありがとうございました。