6

execを使用してWebブラウザー(chrome-firefox ..)を実行する必要があります

私はバットファイルを使用してそれをやろうとしました(この方法はここに記載されています)

C:\Users\farok\AppData\Local\Google\Chrome\Application\chrome.exe www.google.com

Windowsを使用してファイルを開くとすべてうまくいきますが、execを使用して開いても何も起こりません

そして私はBrowserControlクラスでjarファイルを使ってそれをやろうとしました

BrowserControl.displayURL("www.google.com");

そしてbatファイルと同じことが起こったので、それを行う方法はありますか?

注:wamp 2.2、Apache 2.0、PHP V5.3.8を使用しています

アップデート

このコマンドを実行した後、私はそれを見つけました

exec('"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "www.google.com" 2> errors.txt');

Firefox はタスク マネージャーで開いていますが、ブラウザー インターフェイスが表示されません。何かアイデアはありますか?

4

5 に答える 5

5

私は Windows の専門家ではありませんが、許可する必要があると思いますdesktop interaction。親プロセスが Windows サービスとして実行されている場合、これは簡単ではなく、可能ではありません。php は、おそらくサービスとして実行している apache プロセス内で実行されます。

サービスを停止して httpd.exe を手動で開始してみてください。次に、Apache を介して localhost url を介してスクリプトを要求すると、win7 で次のように動作します。私のPHPは、プレーンな古いCGIを介してApacheとインターフェースします。

exec('"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://stackoverflow.com/"');

私の引用符の使用に注意してください。

于 2012-06-30T17:09:14.757 に答える
5

これは私がここで見つけた別の良い回避策です。アイデアは、必要なプログラムを実行し、コマンドを使用して呼び出すスケジューラを作成することです

この助けを願っています:

shell_exec('SCHTASKS /F /Create /TN _notepad /TR "notepad.exe" /SC DAILY /RU INTERACTIVE');
shell_exec('SCHTASKS /RUN /TN "_notepad"');
shell_exec('SCHTASKS /DELETE /TN "_notepad" /F');
于 2017-07-15T19:02:08.920 に答える
3

WindowsでApacheサービスを無効にし、httpd.exeでApacheを起動することで解決しました。その後、exec()を使用してGUI Windowsプログラムを開くことができます。

exec("Path_to_mi_program.exe" "file_to_open");
于 2016-12-17T05:40:26.970 に答える
1

おそらく最も簡単な方法は、COM を使用することです (Windows コンピューターでローカルにのみ実行されると思います)。

<?php
function _exec($cmd) 
{ 
  $WshShell = new COM("WScript.Shell"); 
  $oExec = $WshShell->Run($cmd, 0,false); 
  echo $cmd;
  return $oExec == 0 ? true : false; 
}

_exec("youexe.exe");
?>

ここから撮影

于 2012-06-30T17:05:42.830 に答える
0

それはちょうどユーザーについてです。プログラムを実行すると、システム ユーザーとして実行されます。試してみrunas /user:myusername blabla.exeましたが、myusername のパスワードが返されて終了しました。

$deneme = shell_exec('runas /user:myusername C:\Windows\Temp\putty.exe');
echo "$deneme";

返されました:

myusername için parolayı girin: (english: password for myusername)
于 2013-05-26T18:38:29.170 に答える