問題タブ [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.
c++ - 作成プロセスが機能しない
プロセスを作成し、システムに対して多くのカーネル オブジェクトを要求しています。私のコードは次のとおりです。
このコードのほとんどすべてにコメントしましたが、作成プロセスは問題なく実行されます。複数のカーネル オブジェクトを残すと、プログラムの実行が停止し、Windows Vista に "This program stop to run..." というメッセージが表示されます。他のプロセスには、何かを言っているだけのcoutがあります...
私のコードの何が問題なのか知りたいです。よろしく、 レアンドロ・リマ
winapi - 出力パイプでリダイレクト アクセスが拒否された CreateProcess
MFC アプリケーションから呼び出された DLL で実行されている単純なコードがあります。一般に、msdn の記事に示されている例を実装しています - http://msdn.microsoft.com/en-us/library/ms682499%28VS.85%29.aspx。プロセスを作成したいだけです(シェルスクリプトなど)。すべてのプロセスの作成は、エラーなしで正常に行われます。ただし、出力パイプを使用した ReadFile は常にエラー5:Access is deniedで失敗します。通常の Win32 コンソール アプリケーションで同じ呼び出しを行うと、正常に動作します。
助けてください。-イリヤ。
winapi - XP 互換モードで別のプロセスを起動するにはどうすればよいですか?
私たちのアプリケーションをインストールして実行するには、HASP SRM デバイス ドライバーをインストールする必要があります。
現時点では、5.50 ドライバーのみが、テストされたすべてのプラットフォームで一貫して動作します (5.75 (公式) ドライバーと 5.86 (ベータ) ドライバーの両方が、テストされたコンピューターの約 3 分の 1 でクラッシュします)。
したがって、彼らの 5.50 ドライバーは良好で、現在利用可能な他のものはすべて壊れており、5.50 ドライバーは Vista および Windows 7 でのロードを拒否します。ただし、exe のプロパティを「XP 互換モード」に設定すると、5.50 ドライバーは正常にインストールされ、実行されます。 .
Windows 7 でレジストリを調べたところ、互換モードを要求したときに少なくとも 1 つのエントリが作成されていることがわかりました。
5.50 ドライバー インストーラーを起動する前に、インストーラーからそのキーを追加できるはずです。
質問:
- 互換モードに関するより完全な説明はどこにありますか?
- キー/設定は Vista と Windows 7 で異なりますか?
- キー/設定は 32 ビットと 64 ビットで異なりますか?
- CreateProcess() を呼び出すときにこれを直接要求する方法はありますか?
c++ - CreateProcess、std out / in/errをリダイレクトするときにプロセスが終了しない
CreateProcessを使用して、アプリケーション内からPowerShellスクリプトを起動しようとしています。
Microsoftの例(http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx)を使用して、子プロセスを作成し、標準のout / in/errパイプをリダイレクトしました。
解決しなければならない唯一の問題は、コマンドの実行後に子プロセス(PowerShell)が終了しない理由です。
(コマンドを使用して)PowerShellプロセスを実行すると、cmd.exeが実行されて終了し、プロセスが閉じます。
現在PowerShellプロセスを閉じる唯一の方法は、ハンドルでTerminateProcessを実行することですが、これは最後の手段のように感じます。
winapi - CreateProcess と奇妙な nslookup エラー
dos出力をキャプチャするために定期的に使用するこのAPIルーチンがあります。最近、DNS 呼び出しが許可されていないように見える奇妙なバグが発見されました。たとえば、nslookup は「サーバーからの応答がありません」というエラーをサーバー: 不明で返します。IP アドレスを指定すると Ping は機能しますが、DNS 呼び出しを行う必要がある場合は機能しません。この問題は、このコードに完全に分離されています。
この問題についての洞察をいただければ幸いです。Winapi は私の得意分野ではありません。
編集:すべての定数と型を追加して申し訳ありませんが、問題を解決しやすくするために、モジュールに貼り付けて実行して自分でテストできるようにしました。
java - CreateProcess を使用して Win32 C++ アプリから Java アプリを起動する際のエラー
次のコードを使用して、C++ アプリから Java アプリを起動しようとしています。
プログラムをビルドして実行すると、次のエラーが発生します。
このtestapp.jar
ファイルは、単一のクラスを含む Eclipse プロジェクトからエクスポートされた実行可能な JAR ファイルです。
EXE ファイルと JAR ファイルはまったく同じフォルダーにあり、コマンド ラインから EXE を実行しています。c:\java\jre\bin\java.exe -jar testapp.jar
コマンドプロンプトに入れてJARを直接実行すると、すべてが期待どおりに機能します。
ここで何が起こっているのか誰にも分かりませんか?
編集: ご協力ありがとうございます。
c - CreateProcess関数に問題があります!
私はメインアプリケーションを持っています。メインアプリケーションから別のモジュール(サードパーティ)を呼び出して、メインアプリケーションで小さな操作を実行します。そのモジュールを呼び出すと、処理中に特定の時間、たとえば5秒間処理されます。コマンドウィンドウにいくつかの情報とともにプロセスが表示されます。これで、メインアプリケーションは、呼び出されたモジュールがプロセスを終了するまで待機します。今、私の質問は、プロセスを中断せずにこのコマンドウィンドウを非表示にする方法です。 createprocessですが、機能しないようです...
例:私のメインアプリケーションは親プロセスであり、呼び出されたアプリケーションは子プロセスです。親プロセスは子プロセスから独立している必要があります。以下の私の例を確認してください。
上記を考慮して、最初のプログラムを実行すると...出力は同じコマンドウィンドウに表示されます(そのようにすべきではありません)...メインアプリケーションにプロセスを作成させたいのですが、子プロセスの影響を受けないようにする必要があります。
system - 既存のexeファイルを別のプログラムに埋め込む
コンパイル中に既存の.exeファイルを他のC++ソースファイルにリンクする方法はありますか?私が実際にやろうとしているのは、LZMA(7zip)SDKを使用してコンソールプログラム内のいくつかのファイルを圧縮および解凍することですが、残念ながら初心者には使用するのが非常に困難です。
7za.exeと呼ばれるLZMAのコマンドラインバージョンがありますが、どういうわけかそれをプログラムに埋め込んで関数のように使用できるかどうか疑問に思っています。system()関数(使用するのは非常に危険なことのようです)で簡単に使用できますが、適切なフォルダーに7za.exeがない人にプログラムを送信すると、機能しません。
windows.hヘッダーファイルでCreateProcess()関数に出くわしましたが、system()が行うことをより適切かつ高度な方法で実現しているようです。コンパイル時にオブジェクトファイルのようにexeファイルを実際にリンクできるかどうかわかりません
delphi - コマンドラインにパスを含める方法は?
コマンドラインにパスが含まれている場合、CreateProcess()はfalseを返します。理由がわかりません。
ここで操作を簡略化しました。
結果は偽です。
コマンドラインにパスを含めるにはどうすればよいですか?
c++ - ハンドルを使用して CreateProcess() からの出力を収集する
CreateProcess() を使用して、GUI アプリケーションから Windows で外部コンソール アプリケーションを実行しています。エラーがあったかどうかを知るために、何らかの方法で出力を収集したいと思います。hStdOutputで何かをしなければならないことはわかっていますが、何を理解していません。私は c++ を初めて使用し、経験の浅いプログラマーであり、実際にはハンドルをどうするか、またはパイプに火をつける方法を知りません。
出力をある種の変数 (またはファイル) に取得するにはどうすればよいですか?
これは私が今持っているものです:
このコードは、おそらくまともなプログラマなら誰でも悲鳴を上げるでしょうが、(言うべきではありません:) 動作します ;-)
質問: hStdOutput を使用して出力をファイル (たとえば) に読み取るにはどうすればよいですか?