Почему нельзя просто запускать Internet Explorer напрямую, например так:
exec("C:\Program Files\Internet Explorer\iexplore.exe").
Количество Internet Explorer`ов растёт с каждым запуском,
что не есть хорошо. Т.к. браузер "дёргается" часто, то окошек будет полно, - комп. станет тормозить.
Поэтому использую способ запуска через rundll32.
Да, функция wrlog - пишет события в log файл, я её не цитирую, думаю, в ней нет ничего сложного ;-).
Собственно конфиг:
<?
//пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ log`пїЅ
$cfg["epd_ie"]["log_dir"] = "Path\to\log\dir";
//пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ-пїЅпїЅпїЅпїЅпїЅпїЅпїЅ!
$cfg["epd_ie"]["ie_path"] = "rundll32.exe shdocvw.dll,OpenURL ";
//prefix пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
$cfg["epd_ie"]["ie_exe_prefix"] = "cmd /C ";
//пїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ IE
$cfg["epd_ie"]["transfer_timeout"] = 90;
//url пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅпїЅпїЅ
$cfg["epd_ie"]["url_superput"] = "Path\to\superput.url";
//url пїЅпїЅ пїЅпїЅпїЅпїЅпїЅ
$cfg["epd_ie"]["url_autoget"] = "Path\to\autoget.url";
//пїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
$cfg["epd_ie"]["telix_send_local"] = "C:\Telix\Send\";
//пїЅпїЅпїЅпїЅ IE пїЅпїЅпїЅпїЅпїЅпїЅ пїЅ (пїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅпїЅпїЅпїЅ - пїЅпїЅ * 60 + пїЅпїЅпїЅ)
$cfg["epd_ie"]["receive_start"] = 9 *60 + 15;
//пїЅпїЅпїЅпїЅ IE пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ
$cfg["epd_ie"]["receive_stop"] = 20 *60 + 30;
//пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ IE пїЅпїЅпїЅпїЅ пїЅ
$cfg["epd_ie"]["send_start"] = 9 *60 + 30;
//пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ IE пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ
$cfg["epd_ie"]["send_stop"] = 18 *60 + 30;
//end
?>
Исходник:
<?
include_once("../config.inc.php");
include_once("../functions.inc.php");
set_time_limit(0);
$ld = $GLOBALS["cfg"]["epd_ie"]["log_dir"];
$telix_send = $GLOBALS["cfg"]["epd_ie"]["telix_send_local"];
$ie_path = $GLOBALS["cfg"]["epd_ie"]["ie_path"];
$ie_exe_prefix = $GLOBALS["cfg"]["epd_ie"]["ie_exe_prefix"];
$transfer_timeout = $GLOBALS["cfg"]["epd_ie"]["transfer_timeout"];
$receive_start = $GLOBALS["cfg"]["epd_ie"]["receive_start"];
$receive_stop = $GLOBALS["cfg"]["epd_ie"]["receive_stop"];
$send_start = $GLOBALS["cfg"]["epd_ie"]["send_start"];
$send_stop = $GLOBALS["cfg"]["epd_ie"]["send_stop"];
$WinShell = new COM("WScript.Shell");
$start_timestamp = time() - $transfer_timeout + 2;
wrlog($ld, "пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ...");
while(1)
{
$cur_timestamp = time();
$cur_time = (int)(date("H")) * 60 + (int)(date("i"));
if( ($cur_time >= $receive_start) && ($cur_time <= $receive_stop) )
$receive_status = 1; else
$receive_status = 0;
if( ($cur_time >= $send_start) && ($cur_time <= $send_stop) )
$send_status = 1; else
$send_status = 0;
$delta = $transfer_timeout - ($cur_timestamp - $start_timestamp);
echo "_" . $delta;
if($delta == 0) echo "\n";
//пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
if($send_status == 1)
{
if(($cur_timestamp - $start_timestamp) >= $transfer_timeout)
{
$found_file = search_file($telix_send . "\*");
if($found_file != "") //пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅ
{
wrlog($ld, "пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ: " . $found_file);
echo "\n";
$start_timestamp = $cur_timestamp;
//пїЅпїЅпїЅпїЅпїЅпїЅ IE - пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ пїЅпїЅпїЅпїЅ
$exe = $ie_exe_prefix . $ie_path . $GLOBALS["cfg"]["epd_ie"]["url_superput"];
wrlog($ld, "пїЅпїЅпїЅпїЅпїЅпїЅ IE пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ: " . $exe);
$WinExec = $WinShell->Run($exe, 0, false);
//end
}
}
} else
{
echo " " . date("H:i:s") . " " . convert_cyr_string("пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ\n", "w", "d");
}
//end
//пїЅпїЅпїЅпїЅ
if($receive_status == 1)
{
if(($cur_timestamp - $start_timestamp) >= $transfer_timeout)
{
$start_timestamp = $cur_timestamp;
echo "\n";
//пїЅпїЅпїЅпїЅпїЅпїЅ IE - пїЅпїЅпїЅпїЅ
$exe = $ie_exe_prefix . $ie_path . $GLOBALS["cfg"]["epd_ie"]["url_autoget"];
wrlog($ld, "пїЅпїЅпїЅпїЅпїЅпїЅ IE пїЅпїЅ пїЅпїЅпїЅпїЅ: " . $exe);
$WinExec = $WinShell->Run($exe, 0, false);
//end
}
} else
{
echo " " . date("H:i:s") . " " . convert_cyr_string("пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ\n", "w", "d");
}
//end
//пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅ/пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
if(($cur_timestamp - $start_timestamp) >= $transfer_timeout)
$start_timestamp = time() - $transfer_timeout + 1;
//end
sleep(1);
}
?>
|