tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB.NetでCreateProcess( )の実行について。
記事No9135
投稿日: 2009/07/02(Thu) 15:21
投稿者金次郎
いつもお世話になっております。

使用環境
・VS2008
・VB.net

現在、VB5で製造したソフトをVB2008用に移植を行っています。
自作したDOS版の実行モジュールをCreateProcess()で実行している
箇所があり、VB2008側ではSystem.Diagnostics.Process.Start()を使って
全く同じ文字列で実行したのですがファイルが見つからないという
メッセージが出て正常に実行できませんでした。
(VB5で作成したソフトのCreateProcess()では正常に
自作したDOS版の実行モジュールは動作しています)

そこでVB2008でもCreateProcess()で実行したいのですが、VB.NET向けの
定義、使用方法がわからず、テストで作成中のCreateProcess()で
ノートパッドの起動ができずにいる状態です。

VB.NET向けのCreateProcess()のコードについてご存知の方が居られましたら
お教えください。

[ツリー表示へ]
タイトルRe: VB.NetでCreateProcess( )の実行について。
記事No9137
投稿日: 2009/07/02(Thu) 17:39
投稿者オショウ
> 自作したDOS版の実行モジュールをCreateProcess()で実行している
> 箇所があり、VB2008側ではSystem.Diagnostics.Process.Start()を使って
> 全く同じ文字列で実行したのですがファイルが見つからないという
> メッセージが出て正常に実行できませんでした。

  ProcessStartInfo構造体を使って起動ソフトの情報を設定し
  Process.Startしたらどうなりますか?

  基本的にはファイルパス(フルパス)の設定なので動作する
  はずですが。

※ 私は多分に使ってますが、問題に遭遇したことありません・・・

以上。参考まで・・・

[ツリー表示へ]
タイトル解決しました。Re^2: VB.NetでCreateProcess( )の実行について。
記事No9139
投稿日: 2009/07/03(Fri) 10:23
投稿者金次郎
>   ProcessStartInfo構造体を使って起動ソフトの情報を設定し
>   Process.Startしたらどうなりますか?
>
>   基本的にはファイルパス(フルパス)の設定なので動作する
>   はずですが。
>
> ※ 私は多分に使ってますが、問題に遭遇したことありません・・・

お教えいただいた点に注意したところ私の勘違いが原因でした。

実行モジュールと引数を分けて記述しなかった為でした。
CreateProcess()で実行してた以下の文字列のまま
System.Diagnostics.Process.Start()を実行していました。
("aaaa.exe bbbb.txt C:\ddddd\eeee")

System.Diagnostics.Process.Start()に渡す際、引数を
("aaaa.exe", "bbbb.txt C:\ddddd\eeee")
と分けたところ、自作モジュールが動くようになりました。

オショウ様、ありがとうございます。

[ツリー表示へ]