こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHPで外部プログラムのバックグラウンド処理(Windows)

よろしくお願いします。

PHPのバージョン4でWindowsです。

現在***.exeをsystem()で実行しています。
この***.exeの処理が長い時で、10分位かかってしまうので、バックグラウウンドで処理をしたいと考えています。

コマンドプロンプトで
>start ***.exe ~
を実行したところ、うまいことバックグラウンドで処理できました。

しかし、system()で上記のコードを実行したら一瞬黒い画面が出るだけで***.exeが実行されませんでした。

なにがだめなのか全然見当もつきません…

実現できればどんな方法でもかまわないので、
次の方法も試しました。

1.
a.phpでsystem(">b.php") b.phpを呼び出し
b.phpでsystem(">***.exe")を実行
結果:***.exeは実行されるのですがバックグラウンドで処理されない。


2.
コマンドプロンプトでIEを開いてa.phpにアクセス
a.phpでjavascript window.openでb.phpをオープン
b.phpでsystem(">***.exe")を実行
b.phpをwindow.closeで閉じる
処理は出来たのですが、a.phpが残ってしまう…(消せない、消し方がわからない)
a.phpが消せればこの方法でもいいのですが…



とにかく実現できればいいのですが…

わかる方がいたら教えてくださいお願いします。

投稿日時 - 2009-07-12 01:36:44

QNo.5118336

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

Windows版ではexec系の関数で非同期処理はできなかったと思います。
参考URLのようにpopenではいかがでしょうか。
これでもダメなら、目的のプログラムを起動してすぐ終了するようなプログラムを別に作成する必要があります。
未検証で申し訳ないのですが参考になれば幸いです。

参考URL:http://www.miuxmiu.com/archives/tag/background

投稿日時 - 2009-07-13 11:00:30

お礼

popenですね!これは知りませんでした!

さっそく試してみます!

ありがとうございました!

投稿日時 - 2009-07-13 17:23:22

あなたにオススメの質問