問題タブ [createprocess]
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.
sql-server - NTサービスからのCreateProcessがハングする
NTサービスプロセスからSQLServer2008SP1エクスプレスインストーラーを起動しようとしています。プロセスは正常に開始され、タスクマネージャーで確認できますが、何も実行されず、彼を殺すまで非アクティブのままになります。
次のコマンドでプロセスを開始しています。
コマンドラインから手動で開始すると、インストールは正常に行われます。
プロセス用にさまざまな作成フラグを試してみましたが、うまくいきませんでした。私はアイデアが不足しているので、すべての助けに感謝します。
同じコードがSQLServer2000のインストールでも問題なく機能したことに注意してください。そして、これはインストールを処理するための奇妙な方法であることを私は知っていますが、それを変更するのは遅れています。
OSはWindowsServer2003SP2です。
delphi - Delphi Prismで関数CreateProcessを呼び出す方法は?
私が書いた
しかし、VStudioは、「セミコロン」が期待されると述べました-外部の後に「終了」が期待されます」「kernel32.dll」の後に。関数を読み込んで呼び出すのを手伝ってもらえますか?
winapi - 16ビットアプリケーションを起動できなくなりました
C ++で記述されたWin32マクロアプリケーションでいくつかの問題をデバッグして解決しようとしていますが、最も奇妙な問題が発生しています。
16ビットプログラムを起動してから、データの入力をシミュレートする必要があり、ShellExecuteを2年以上使用しています。この実際のコードにはまったく触れていませんが、現在は機能しません。
私はやっていShellExecute(NULL, "open", exe_path.c_str(), NULL, "", SW_SHOWDEFAULT);
ます。これは何年もの間完璧に機能していましたが、突然、機能しなくなりました。ACCESS_DENIEDエラーコードが表示されます。私はグーグルで検索しましたが、これは16ビットアプリの起動に関するかなり一般的な問題のようです。
ワークステーションXPSP2環境はまったく変更されておらず、少し前に再構築するまで実際に機能していました(何度も再構築しました)。
コードはウィンドウプロシージャ関数内にあり、WinMain関数でプログラムを取り出して起動すると機能しますが、コードはウィンドウプロシージャ内にある必要があります...
私は多くの選択肢を試しましたが、それらはすべて同じ問題を引き起こします。
これに関する最大の問題は、それが機能していたことです。その後、コードと環境の両方に変更を加えることなく、機能しないことが突然決定されました。実際、変更のテストの約半分で、機能しなくなると考えていました。
プログラムを起動しないと何もできませんので、助けてください。これは、私がデバッグしているコードの最初のステップです。
winapi - NPAPI プラグイン内からの外部アプリケーションの起動
私が作成した NPAPI プラグイン (Javascipt 呼び出しによってトリガーされる操作の実行に関しては正常に機能する) が、CreateProcess() または ShellExecute() を使用して、Javascript 呼び出しによって指定されたパスからアプリケーションを起動できない理由を解明しようとしています。
これらのメソッドのいずれかを使用できるようで、成功を返します。つまり、エラー コードはありません。しかし、アプリケーションは起動しません。それらを呼び出すときに使用されるパラメーターを変更して、新しいプロセスグループなどを作成しようとしましたが、一見効果がありません。
これはちょっとしたセキュリティ リスクのように思えるかもしれませんが、非常に特定の目的のために使用したい場合は問題になりません。
Windows XP Pro SP3、Firefox 3.5、および次のコードを使用:
x86 - WoW64 プロセスは純粋な x64 プロセスを作成/フォーク/etc できますか?
たとえば、x86 プロセス/exe から x64 exe を呼び出したいとします。
- x86 コマンドを開く: %windir%\SysWoW64\cmd.exe
- start notepad: notepad.exe <- x86 メモ帳になります (taskmanager = * によると)
x86 cmd から x64 メモ帳を実行することは可能ですか?
私の問題は、実行しているプロセスを x64 として実行する必要があることです。動作が異なるため、x86 (WoW) として動作させたくありません... これがプログラムされた方法であり、変更できません :-(私のexeはx86です...
私の質問を簡単にするために: WoW プロセスは純粋な x64 プロセスを作成/フォーク/etc できますか?
どうもありがとう
YB
windows - 作成プロセスの子ではないプロセスを作成するにはどうすればよいですか?
AとBの2つのプロセスがあります。ある時点でAはBを作成します。Bが作成された後、Aのプロセスツリーが強制終了された場合でも、Bをそのままにしておく必要があります。
CreateProcess()を使用してBを作成していますが、子でないとプロセスを作成する方法が見つからないようです。ShellExecuteEx()でも同じことが言えますが、おそらくいくつかのフラグがありません。
誰かが私がこれを行うために何を使うことができるか知っていますか?
編集:両方のプロセスが他方へのハンドルまたはプロセスIDを必要とすることを言及するのを忘れました
c++ - パラメーターを使用してプロセス (CreateProcess または ShellExecuteEx) を作成する際の小さな問題
関連する質問: CreateProcess はコマンド ライン引数を渡しません。
CreateProcess (および/または ShellExecuteEx) を使用する場合、EXE に引数を渡す場合とパラメーターを渡す場合に違いはありますか?
私は次のようなものを呼び出そうとしています:
myExe.exe /myparam
次のようなコードで:
他のスレッドとMSDNから私が理解していることから、それは適切に機能し、パラメーターを使用してEXEを呼び出す必要があるということです。「/myparam」を追加せずに上記のコードを実行すると、正常に機能します。
コマンド ラインとエクスプローラーから (ショートカットを作成し、ターゲット名に /myparam を追加して) EXE を試しましたが、問題なく動作しています。
createprocess - 既存のプロセスに接続したり、呼び出しを行ったりすることは可能ですか?
Windowsでは、現在2つのプログラムが次のように機能しています。プログラムAは、いくつかのパラメーターを使用してプログラムBを呼び出します。これにより、プログラムBはテキストを返し、終了します。プログラムAは、他のパラメーターを使用してプログラムBを再度呼び出します。これにより、プログラムBはより多くのことを実行します。
プログラムBが起動すると、時間のかかるロードを実行する必要があります。上記の方法は、プログラムBがロードを2回実行する必要があることを意味します。プログラムBを1回だけロードすることはできますか?
たとえば、プログラムAはいくつかのパラメータを使用してプログラムBを呼び出します。これにより、プログラムBはテキストを返しますが、プログラムは実行を継続します。プログラムAは同じプロセスを再度呼び出します。これにより、プログラムBはより多くのことを実行します。
おそらく何らかのWindowsメッセージングを使用して、上記は可能ですか?プログラムAはDelphiアプリであり、WindowsのCreateProcessメソッドを使用します。プログラムBは、渡されたパラメーターに応じてさまざまなことを行う.NETアプリです。プログラムBをWindowsサービスとしてインストールすることでこれを実行できることはわかっていますが、可能であればそれを避けたいと思います。
winapi - GetCommandLine() にプロセス名がありません
GetCommandLine()
APIに問題があります。
通常、実行可能ファイル名の後にスペースと引数が続きます。ドキュメントにあるように、最初のトークンには画像への完全なパスが含まれていない可能性があります。
NULL ではない lpApplicationName で CreateProcess を使用するまで、問題はありませんでした。
私が使用する場合:
GetCommandLine
期待どおり「c:\myexe.exe param1 param2」を返します。
しかし、私が使用する場合:
GetCommandLine
「param1 param2」のみを返します。
別のアプリケーションが自分のアプリケーションを起動した場合に、コマンド ラインで実行可能ファイル名が指定されているかどうかを確認するにはどうすればよいですか?
また、MFC スタートアップ コードは、コマンド ラインの最初のトークンが実行可能ファイル名であると想定し、それをスキップします。ただし、2 番目の CreateProcess API の例で MFC アプリケーションを起動すると、MFC のコードは最初の引数をスキップします。
c# - CreateProcess()でSTARTF_USESTDHANDLESフラグを使用しているときに、ソケットを子プロセスに渡すときにエラーが発生しました
.NetからFastCGIアプリケーションを呼び出そうとしています。これは、子プロセスのソケットへのハンドルを渡す必要があることを意味します。
しかし、私が見ているのは、STARTF_USESTDHANDLES
フラグを一緒に使用するとCreateProcess()
、子アプリケーションがソケットから読み取ろうとしたときに失敗するということです。
を指定しないことでこれを回避できることがわかりましたが、なぜこれが発生しているのかSTARTF_USESTDHANDLES
を理解したいと思います。特に、MSDNのドキュメントを理解しているので、標準の入力をリダイレクトするときにこのフラグを使用する必要があります。
これは私のC#アプリケーションです(簡潔にするためにエラーチェックなどを削除しました)
私の子プロセスは、 Windows Azure VS2010 C#コードサンプルに含まれているサンプルFastCGIアプリケーションですが、失敗する行は次のとおりです。
私はソケットプログラミングとハンドルプログラミングの両方に比較的慣れていないので、なぜこれが起こるのかについての洞察をいただければ幸いです。