アプリ版:「スタンプのみでお礼する」機能のリリースについて

C:\Program Files\a\にa.exeがあって、a.exeにパスが通っていて、
C:\> a.exe
でaが実行できる状態にあるのですが、

System.Diagnostics.Process.Start("a");

でなぜか
An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll

Additional information: 指定されたファイルが見つかりません。

と言われ実行できません。
a.exeをパスを指定しないで実行するにはどうしたらいいのでしょうか。

A 回答 (2件)

>System.Diagnostics.Process.Start("a");



拡張子指定したらどうです?

http://msdn.microsoft.com/ja-jp/library/53ezey2s …
って、拡張子ナシでもOKとはなっていますねぇ…。
>同様に、[ファイル名を指定して実行] ダイアログ ボックスで実行可能ファイル名は拡張子 .exe が付いているかどうかに関係なく受け入れられるのと同じように、fileName パラメーターでも拡張子 .exe は省略できます。
と……。

ということで、「ファイル名を指定して実行」でaだけで起動できます?

>システムでパス変数を引用符で囲んで宣言している場合は、その場所で見つかったプロセスを開始するときに、そのパスの絶対パスを指定する必要があります。 これを実行しないと、システムはパスを見つけることができません。
って書かれているのが微妙…ですかねぇ。
"Program Files"ってことで、""でくくっているでしょうし。
# path設定の方をショートファイルネームにしたらどうなりますかね?

この回答への補足

回答有難うございます!
[ファイル名を指定して実行]では
a
で実行できるのですが...
実を言うとAndroid SDKのadb.exeを実行したいのですが...

補足日時:2014/01/06 22:47
    • good
    • 0
この回答へのお礼

自己解決しました。
こうすればちゃんとできました。
ご協力有難うございました。

p.FileName = "adb";
p.Arguments = "wait-for-device";
p.UseShellExecute = false;
Process ps = Process.Start(p);
ps.WaitForExit();

お礼日時:2014/01/08 16:59

>実を言うとAndroid SDKのadb.exeを実行したいのですが...



こちらでは起動出来ましたが…。
ただし、adb.exeは空白込みのパスにはありませんでしたけど。
# Windows7 Professional 64Bit&VC#2010EE&.NET Framework 4.0 ClientProfile


>"Program Files"ってことで、""でくくっているでしょうし。
># path設定の方をショートファイルネームにしたらどうなりますかね?

System.Diagnostics.Process.Start("TortoiseMerge");
での起動も可能でしたのでPATH環境変数に設定してあるものに半角空白が~というのも、とりあえずは問題ない……みたいですね。
# TortoiseSVNのインストール先はデフォルトでPATHへの追加あり。


もしかして、コマンドライン引数とか指定している…んでしょうか?
その場合だと…
http://msdn.microsoft.com/ja-jp/library/53ezey2s …
ではなく、
http://msdn.microsoft.com/ja-jp/library/h6ak8zt5 …
で起動させる必要がある…かと。

TeraTermのttermpro.exeとttlファイルを指定して試しましたが…
System.Diagnostics.Process.Start("TTPMACRO マクロファイルのフルパス")では失敗しました。
System.Diagnostics.Process.Start("TTPMACRO", "マクロファイルのフルパス")では起動できました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています