2016-04-19 10 views
-1

私の質問はではありません質問で答えたWhen do we need to set UseShellExecute to True? それはどう思いますか?windowsを設定するには、アプリケーションuseshellexecuteをtrueに設定しますか?

アプリケーションプロセスの開始前に私のwindowsフォームアプリケーションプロジェクトでuseshellexecuteをtrueに設定する必要がありますが、プロジェクト内でどこを変更する必要があるのでしょうか?

これは、Visual StudioでWindowsフォームアプリケーションプロジェクトには、アプリケーションのための2015年

メインエントリポイントは次のようになります:私はProcessStartInfoを使用してUseShellExecute値を指定する必要があり

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new MainForm()); 
} 

EDIT: ビッグは、私は問題を解決環境はcurrentDirectoryを変更する提案マシュー・ワトソンに感謝します!答えとして投稿すると、あなたのアンカーを正しいものとしてマークします!

+0

「_ ...私は設定する必要がありますuseshellexecuteを私のWindowsフォームアプリケーションでtrueにする... _ " - それは私には全く意味がありません。 –

+0

私のアプリケーションをそのフォルダから起動すると、作業ディレクトリのパスは私が起動したフォルダになります。しかし、どこかのショートカットから実行すると、作業ディレクトリのパスがSystem32に変わります。私はグーグルで、usehellexecuteをtrueに変更する必要があるが、どこを変更するのか見つけることができないことがわかった。 – user5825579

+1

アプリケーションのショートカットのプロパティを見ると、「開始」設定があります。私はそれが空であるか、または間違ったフォルダを指していると推測しています。 exeを含むフォルダを指定する必要があります。 –

答えて

0

あなたはあなたのプログラムの開始時にこれを入れてみてください:

あなたのプログラムの現在の作業ディレクトリ(CWD)が常に実行可能ファイルと同じフォルダに設定されていることを確認します
Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory; 

たときに、あなたのプログラムが起動します。

私は、使用しているショートカットに「開始」プロパティのフォルダがないか間違っていると思われます。別のアプローチになり、固定(ショートカットを右クリックし、[プロパティ、その後ショートカット]タブを選択し、セクションでスタートで正しいフォルダを入力してください。)

0

ProcessStartInfoを使用し、UseShellExecuteの値を指定できます。

ProcessStartInfo startInfo = new ProcessStartInfo("exepath"); 
startInfo.Arguments = args; //argument 
startInfo.UseShellExecute = true; 

Process.Start(startInfo); 
関連する問題