問題タブ [processstartinfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
21 に答える
136666 参照

c# - 「WaitForExit」で ProcessStartInfo がハングしていますか? なんで?

次のコードがあります。

開始しているプロセスからの出力の長さは約 7MB です。Windows コンソールで実行すると問題なく動作します。残念ながら、プログラム的には、これは で無期限にハングしWaitForExitます。また、このコードは小さい出力 (3KB など) ではハングしないことに注意してください。

内部StandardOutputProcessStartInfo7MBをバッファリングできない可能性はありますか? もしそうなら、私は代わりに何をすべきですか?そうでない場合、私は何を間違っていますか?

0 投票する
3 に答える
556 参照

c# - 引数の開始位置がわからないプログラムをどのように実行しますか?

1行で質問するのは簡単ではないので、主題は多くを語らない. レジストリから読み取ったいくつかのプログラムを実行する必要があります。誰かがパスと引数全体を保存するフィールドから読み取る必要があります。
プログラムの名前とその引数を設定するSystem.Diagnostics.ProcessStartInfoを使用してきましたが、プロセス実行可能ファイルを1つのフィールドに保存し、その引数を別のフィールドに保存するために解析する必要があるさまざまな引数を見つけました。

文字列全体をそのまま実行する方法はありますか?

0 投票する
1 に答える
2347 参照

c# - Process.Start を使用して Firefox を起動する: Usename と Password を設定しても Firefox が起動しない

Process.Start と ProcessStartInfo (.NET) を使用して Firefox を起動しようとすると、すべて正常に動作するようです。しかし、別のアカウント (ユーザーのメンバー) のユーザー名とパスワードを指定しても、何も起こらないようです。同じコードが Calc.exe または IE で正常に動作します。これは奇妙です。何か案は?

コードは次のとおりです。

みんな、ありがとう。

0 投票する
6 に答える
20841 参照

c# - .NET Process.Start で実行するとプロセスがハングする -- 何が問題なのですか?

いくつかのコンテンツを取得して何かを実行するために、svn.exe の周りに簡単で汚いラッパーを書きましたが、特定の入力に対して、時折、再現可能にハングし、終了しません。たとえば、1 つの呼び出しは svn list に対するものです。

このコマンド ラインは、コマンド シェルから実行すると正常に動作しますが、アプリでハングします。これを実行する私の c# コードは次のとおりです。

これには 5000 ミリ秒かかり、決して終了しません。時間を延ばしてもダメ。別のコマンド プロンプトでは、すぐに実行されるので、待ち時間の不足とは無関係であると確信しています。ただし、他の入力については、これでうまくいくようです。

また、ここで別の cmd.exe を実行しようとしました (exe は svn.exe で、args は元の引数文字列です) が、それでもハングが発生しました。

ここで何を台無しにすることができますか?また、この外部プロセスのものをどのようにデバッグできますか?

編集:

私は今、これに対処しようとしています。ムーチョは、Jon Skeet の提案に感謝します。ただし、私はマルチスレッドの初心者なので、これを処理する方法について別の質問があります。明らかな欠陥やその他のばかげたことを改善するための提案が欲しい. 最終的に、stdout ストリーム、出力を保持する StringBuilder、および終了を通知するフラグを含む小さなクラスを作成しました。次に、ThreadPool.QueueUserWorkItem を使用して、クラスのインスタンスを渡しました。

... と ...

これは機能しているように見えますが、これが最善の方法であるかどうかは疑わしいです。これは合理的ですか?そして、それを改善するにはどうすればよいですか?

0 投票する
2 に答える
11038 参照

c# - C#新しいMailToプロセスとHTMLURLエンコードを開始する

Processクラスの新しいMailTo拡張メソッドを作成しました。このメソッドは、必要なmailto引数を含む新しいProcessStartinfoでProcessを埋めるだけです。制御文字をUrlエンコードされた同等物に変換するFormatMailToArgument(最後に右)というメソッドを作成し、これをテストしましたが、これを行うためのより良い方法はありますか?

0 投票する
6 に答える
39600 参照

c# - Win32Exception: ディレクトリ名が無効です

Vista を実行し、UAC が有効になっている 2 台の異なるコンピューターで管理者権限を持つ別のユーザーとしてプロセスを実行しようとしていますが、そのうちの 1 つで「ディレクトリ名が無効です」という Win32Exception が発生します。

私のコードの何が問題なのか誰か教えてもらえますか?

アップデート

上記のコードを実行するアプリケーションには、requireAdministrator 実行レベルがあります。作業フォルダーを「Path.GetDirectoryName(myFile)」「New System.IO.FileInfo(myFile).DirectoryName」に設定しました

0 投票する
2 に答える
833 参照

c# - perl.exe を ProcessStartInfo で呼び出すことはできません

C# プログラムから perl スクリプトを呼び出せるように、次のコードを動作させようとしています。XP Service Pack3 で Visual stdio 2008 を使用して開発しています。

test_perl.pl が存在することを確認し、perl.exe を notepad.exe に変更すると、上記のコードが機能します。しかし、perl.exe を使用すると、メッセージ ボックスが空になります。

なぜこれが間違っているのか理解できません。理由がわかる方教えてください。

ありがとう

0 投票する
4 に答える
17564 参照

c# - コンソールアプリケーションからの入力の送信/出力の取得(C#/ WinForms)

3つのコントロールを持つフォームがあります。

  1. ユーザーがコンソールアプリケーションに送信するコマンドを入力するためのテキストボックス、
  2. 送信するコマンドを確認するためのボタンと
  3. アプリケーションからの出力を表示するための読み取り専用テキストボックス。

私が欲しいのは、ユーザーが最初のテキストボックスにコマンドを入力し、ボタンを押して入力し、2番目のテキストボックスを介してフィードバックを受け取ることです。

使い方は知っていますProcessStartInfo.RedirectStandardOutputが、使用するとアプリがハングしますStandardOutput.ReadToEnd()

非同期を確認しましたProcess.BeginOutputReadLine()が、アプリがハングしなくても、どういうわけかテキストボックスに応答がなく、まったく何も起こりません。

これが私のコードです:

これをスムーズに実行する方法はありますか?ありがとう。

0 投票する
3 に答える
2325 参照

.net - System.Diagnostics.Process.Start()で開始されたコンソールアプリケーションのウィンドウタイトルを指定するにはどうすればよいですか?

Process.Start()メソッドを使用して、.NETコードからコンソールアプリケーションの新しいインスタンスを起動しています。生成されたプロセスをホストするコンソールウィンドウのタイトルを指定できるかどうか疑問に思いました。で適切なものが見つかりませんでしたProcessStartInfo

最後の手段として、P / Invokeを使用してWin32APIと直接通信することはできますが、そうはしません。

何か案は?

ありがとう。

0 投票する
3 に答える
817 参照

asp.net - .ASPXからのtaskkillMysql-権限の問題?

mysqlインスタンスは、バックアップ中にときどきロックアップします。現在、企業ネットワークにVPN接続し(作業IPを取得するため)、サーバーにリモートデスクトップを接続し、タスクマネージャーを開いて、mysqld-nt.exeプロセスを手動で強制終了する必要があります。

これらすべてを実行する代わりに、ログインしてサービスを強制終了して再起動できる単純なWebページを作成しようとしています。

次のコードブロックは、新しい.aspxページ内に配線されており、ローカルデスクトップ(VSデバッグモードで実行)で意図したとおりに機能しますが、サーバーにプッシュされても何も実行されません(エラーなどはありません)。

サーバーのコマンドプロンプトから「taskkill/IM mysqld-nt.exe / F」を実行すると、サービスが強制終了されます。ですから、それは許可の問題かもしれないと思いますが、私は前向きではありません。

誰かが上記のコードブロックに何か問題を見つけたり、.Netがこのプロセスを停止/開始できるように権限を調整する方法を教えてもらえますか?

助けてくれてありがとう、サム