問題タブ [shellexecute]
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.
.net - Google Chrome は ShellExecute() を壊しましたか?
何年もの間、アプリケーション内からデフォルトの Web ブラウザを起動するために ShellExecute() API を使用してきました。このような:
Google が Chrome ブラウザをリリースした数週間前までは、問題なく動作していました。現在、Chrome がコンピューターにインストールされている場合、ShellExecute API は Web ページを開かなくなりました。
この問題を解決する方法をまだ見つけた人はいますか? (Chrome を検出して、Chrome のせいだとユーザーに伝えるメッセージを表示するまでは?)
編集:セルゲイによって提供されたコードは機能しているように見えるので、「その」答えとして受け入れました。WinExec の呼び出しが気に入らないことを除けば、MSDN によると、WinExec は 16 ビット アプリケーションとの互換性のためにのみ提供されているとのことです。IOW、サービス パックで動作しなくなる可能性があります。私は試していませんが、16 ビット アプリケーションをまったくサポートしていないため、Windows x64 で既に動作しなくなっていても驚かないでしょう。そこで、WinExec の代わりに、Sergey のコードのようにレジストリからパスを取得し、URL を引数として、ShellExecute を使用します。ありがとう!
vb6 - Vista で 1 つの .exe が別の .exe を呼び出せない
Vista で動作する従来の VB6 実行可能ファイルがあります。この実行可能ファイルは、別のレガシ MFC C++ 実行可能ファイルをシェル化します。
初期の Vista のテストでは、この呼び出しは、2 番目の実行可能ファイルを実行する前に、ユーザーの許可を得るために典型的な UAC メッセージを表示します。これは完璧ではありませんでしたが、許容範囲です。ただし、この呼び出しは OS によって完全に無視されているようです。
この通話を機能させるにはどうすればよいですか?
c++ - ShellExecuteによって引き起こされる邪悪な遅延を取り除く
これは私をしばらく悩ませてきたものであり、これに対する解決策がなければなりません。ShellExecuteを呼び出して外部ファイル(ドキュメント、実行可能ファイル、URLなど)を開くたびに、ShellExecuteが新しいプロセスを生成して戻る前に、プログラムで非常に長いロックアップが発生します。誰かがこれを解決または回避する方法を知っていますか?
編集:そしてタグが示すかもしれないように、これはC++を使用するWin32上にあります。
python - Python からプログラムを実行するにはどうすればよいですか? パス内のスペースが原因で os.system が失敗する
外部プログラムを実行する必要がある Python スクリプトがありますが、何らかの理由で失敗します。
次のスクリプトがあるとします。
その後、次のエラーで失敗します。
「C:\Temp\a」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。
引用符でプログラムをエスケープすると:
その後、動作します。ただし、パラメーターを追加すると、再び機能しなくなります。
プログラムを実行して完了するのを待つ正しい方法は何ですか? 出力を読み取る必要はありません。これは、ジョブを実行して終了するビジュアル プログラムであるためです。ただし、完了するまで待つ必要があります。
また、プログラムを間隔のないパスに移動することもオプションではありません。
これも機能しません:
一重引用符と二重引用符が入れ替わっていることに注意してください。
ここでメモ帳へのパラメーターの有無にかかわらず、エラーメッセージで失敗します
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。
windows - shell\command\open 値の構文 - %1 vs %l vs %L
私が仕事で開発しているプログラムの 1 つは、レジストリを読み取って、別のアプリケーションから渡されたファイルを開く方法を把握することです (ID を処理する必要があるため、ShellExecute は使用しませんでした。また、ShellExecuteEx を詳しく調べていませんでした)。それがプロセスハンドルを与えることを確認するのに十分であり、とにかく今では遅すぎます)。既に動作しているので、これは私自身の啓蒙用ですが、一部のエントリで %1 の代わりに %l または %L が使用されている理由を知っている人はいますか? 少なくとも "%l" はタイプミスの可能性がありますが、"%L" はありそうにありません。実際、Media Player はさまざまなオーディオ ファイルのオープン コマンドで「%L」を使用します。%1 と同じことを意味していると確信しています。
私の現在のお気に入りの理論は、l と 1 がいかに混同しやすいかについての冗談だというものです。または、「場所」を表すこともできますが、それは不十分です:)
c# - .NET で同等の ShellExecute
ShellExecute が Win32 で実行するのと同じタイプのこと (任意のファイル タイプのオープン、印刷など) を実行する .NET 優先の方法を探しています。
私は 20 年以上にわたって Windows のプログラミングを行ってきましたが、.NET についてはまったくの初心者なので、間違った場所を探しているだけかもしれません。現在、.NET 2.0 (VS C# 2005) を使用していますが、必要に応じて VS 2008 を使用することもできます。
唯一の答えが P/Invoke を使用することである場合は、とにかく Win32 を使用して小さなユーティリティを作成する方がよいかもしれません。
handle - ShellExecute()のハンドル-親ウィンドウ?
ShellExecuteを使用してExcelでファイルを開こうとしています。MSDNフォーラムで関数について読んでいたところ、最初のパラメーターであるハンドルに関する次の情報が見つかりました。
"hwnd [in]ユーザーインターフェイス(UI)またはエラーメッセージを表示するために使用される所有者ウィンドウへのハンドル。操作がウィンドウに関連付けられていない場合、この値はNULLになる可能性があります。"
これは、親ウィンドウへのハンドルと呼ばれることも聞いたことがあります。親/所有者ウィンドウとは何ですか?以下に示すように、ハンドルにNULLを使用していますが、操作は実際にウィンドウに関連付けられているため、おそらくハンドルが必要ですが、ハンドルに何を使用すればよいかわかりません。
windows - WOW64からのシェルリンク(LNK)の起動
32ビットアプリケーションは、ShellExecuteを介してWindows LNKファイル(シェルリンク)を起動します。64ビットバイナリ([スタート]メニューの[Internet Explorer(64ビット)]ショートカットなど)へのリンクを「起動」しようとすると、常に32ビットバイナリが起動することになります。内部的に、ShellExecuteはリンクターゲットを誤って解決します。LNK内にFOLDERID_ProgramFilesを保持する隠しフィールドがあります。64ビットアプリはこれを64ビットプログラムファイルディレクトリに解決しますが、32ビットアプリは解決しません。
Wow64DisableWow64FsRedirectionは、ShellExecuteのこの動作を変更しません。
64ビットの「トランポリン」プロセス(プラグインアーキテクチャの仕組みによりオプションではありません)を実行する以外に、32ビットアプリが64ビットアプリとまったく同じようにシェルリンクを起動する方法はありますか?
java - webapp からシェル スクリプトを実行し、コンソール出力をページに表示する必要がある
これを Struts2/Spring アプリケーションに統合するのに役立つ Java の例またはライブラリを探しています。Luntbuild や Hudson などの多くのビルド システムにはこの機能があります。それらの 1 つから掘り下げる前に、スタンドアロンの例を知っているかどうか尋ねてみようと思いました。Quartz ジョブ スケジューリング フレームワークも一瞥しましたが、UI フックはまだ見つかりません。JSP インクルードを含むファイルから読み取る必要がありますか?