3

どうしてこれなの

ProcessStartInfo myProcess = new ProcessStartInfo(path);
myProcess.UserName = username;
myProcess.Password = MakeSecureString(password);
myProcess.UseShellExecute = false;
Process.Start(myProcess);

動作しますが

ProcessStartInfo myProcess = new ProcessStartInfo();
myProcess.FileName = Path.GetFileName(path);
myProcess.WorkingDirectory = Path.GetDirectoryName(path);
myProcess.UserName = username;
myProcess.Password = MakeSecureString(password);
myProcess.UseShellExecute = false;
Process.Start(myProcess);

ではありません。

この質問のために2番目のものを使用したかった:https ://stackoverflow.com/a/2621943/1306186

ファイルが見つからないという例外が常に発生しています...何かアイデアはありますか?

編集:
パスはたとえば@"C:\Users\User\Desktop\ConsoleApplication2.exe"

4

2 に答える 2

5

このビットは間違っています

myProcess.FileName = Path.GetFileName(path);

これはあるべきです

myProcess.FileName = path;

渡すC:\SomeDir\SomeApp.exeと、コードによってファイル名が に設定されますがSomeApp.exe、これは見つかりません。幸運なことに、状況によっては (アプリと実行したいアプリが同じフォルダーにある場合など)、展開時におかしなことになる可能性があります。

于 2012-09-16T20:16:48.660 に答える
0

文字列パラメーターで使用すると、コンストラクターがフルパスで初期化されるため、Path.GetFullPath()単純に代わりに使用してみます。Path.GetFileName()FileName

于 2012-09-16T20:16:34.257 に答える