私のアプリケーションでは、ユーザーは特定の時点で実行するコマンドを保存できます。今、誰かが「C:\Program Files\Internet Explorer\iexplore.exe http://www.google.com」を追加しました。これは、WinExec 関数を使用して呼び出されます。ここで、このコマンドを「start http://www.google.com」に変更すると、関数は ERROR_FILE_NOT_FOUND を返しますが、これはオンラインで見つけた例からは機能するはずです。
3591 次
2 に答える
4
コマンドは次のようになります。
cmd.exe /c start http://www.google.com
注意WinExecを読んでください:
注 この関数は、16 ビット Windows との互換性のためにのみ提供されています。アプリケーションは
CreateProcess関数を使用する必要があります。
WinExecURL を開くために使用する場合は、 instedShellExecuteに渡しopenて使用します。lpOperation
ShellExecute(NULL,
TEXT("open"),
TEXT("http://www.google.com"),
NULL,
NULL,
SW_SHOWNORMAL);
URL は、ユーザーの既定のブラウザーで開かれます。
于 2013-08-28T11:02:34.280 に答える
4
WinExecプロセスを開始するためのものです。しかし、あなたがやろうとしていることは、どのプログラムが関連付けられているかをシェルに調べさせhttp://、その URL を表示させるのが最善の方法です。あなたがする必要があるのは、ShellExecuteまたはを呼び出すことShellExecuteExです。
例えば:
ShellExecute(0, NULL, "http://www.google.com", NULL, NULL, SW_SHOWDEFAULT);
startで動作しない理由は、実行可能ファイルWinExecではないためです。startこれは、インタープリターによって処理される組み込みコマンドcmd.exeです。したがってWinExec、渡した場合cmd.exe(またはCOMSPEC環境変数の値) を使用してcmd.exe、 を呼び出すことができますstart。しかし、それは間違ったやり方です。
于 2013-08-28T10:33:54.310 に答える