Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Доступ к службам системы из PHP


Автор: niteo 17.2.2011, 22:41
Доброго всем времени. Хотел узнать, возможно ли получить доступ к системным службам Windows, таким как: Монитор производительности, Журнал, прочитать значение из реестра итп. И если да, то как их использовать в своём исходном коде. У меня стоит Denwer, реализую все на нём. Простите, я только начинаю знакомство с ПХП. =)

Автор: Dima 2015 18.2.2011, 04:56
На прямую мне кажется нет в рнр таких функций. Я тут вижу 2 направления, в которых можно копать...

1. Найти консольные программы для винды, выдающие эту информацию и дергать их с помощью exec. В линухе точно такие есть и это было бы просто, но вот в винде и с этим придется попариться, таки винда - гуешная ось.

2. Писать собственный код на чем-нибудь низкоуровнем аки АСМ или Си и точно так же дергать exec-ом, или встраивать в виде библиотеки в рнр. Но последние это уже совсем хардкорный вариант. Вот например по поиску можно найти всякие такие вещи:
http://www.programmersforum.ru/showthread.php?t=5379

Автор: niteo 18.2.2011, 06:49
Вот нашел вот такой код:

Код

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");
                         
// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:" .
                "\r\n %d Milliseconds, or \r\n %d Seconds" .
                "or \r\n %d mins or\r\n %d hours %d mins.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?> 


К сожалению, при попытке его выполнить у меня вылетает ошибка: 
 
Код

   Parse error: syntax error, unexpected '<' in Z:\home\91.215.191.201\www\index.php on line 4
 


В php.ini вроде все "разрешено"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)