Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
1

Службы windows

04.06.2009, 20:52. Показов 2924. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Подскажите пожалуйста скрипт запуска и остановки любой запущенной службы windows , нужно вывести на сайт две кнопки Включить и Выключить службу.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2009, 20:52
Ответы с готовыми решениями:

Службы Windows
Здравствуйте. Я написал программу которая выводит список служб Windows в листбокс, показывается...

Службы в Windows 10
Доброго времени суток, не проясните вопрос с чем могут быть связаны "префиксы" к службам по типу...

Windows 8. Службы
Недавно я использовал программу AVG PCtuneup и он мне наверное отключил какую-то службу. Но какую...

Службы Windows 10
Народ дайте краткое описания каждой службы на Windows 10. Я Искал информачию об этих службах нечего...

17
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
04.06.2009, 21:09 2
Если подключить файл php_win32service.dll (он находится в PECL) к php, то можно будет использовать
win32_start_service
win32_stop_service

Вполне возможно, что получится использовать exec('net start '.$servicename);
1
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
05.06.2009, 23:36  [ТС] 3
Humanoid, help , ответь в личке
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
06.06.2009, 11:21 4
Лучший ответ Сообщение было отмечено как решение

Решение

Скачай pecl-5.2.6-Win32.zip (честно говоря, не знаю, где его сейчас искать... раньше был на http://www.php.net/downloads.php , но теперь там только фраза, что он не изменился с версии 5.2.6... а где эту версию скачать уже не говорят).
Там возьми файл php_win32service.dll и скопируй его в папку <где установлен PHP>\ext (у меня это \Program Files\PHP\ext\ ). В файле php.ini добавь строку
Код
extension=php_win32service.dll
Перезапусти Апач.
И теперь сам скрипт:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
if (isset($_GET['do'])) $do=$_GET['do'];
switch($do)
{
case 'on':
  $r = win32_start_service('MySQL');
  if ($r==0)
    echo 'Сервер MySQL запущен';
  else
    echo 'Не удалось запустить';
  break;
case 'off':
  $r = win32_stop_service('MySQL');
  if ($r==0)
    echo 'Сервер MySQL остановлен';
  else
    echo 'Не удалось остановить';
  break;
}
 
echo '<input type="button" value="Выключить" onclick="location.href=\'/file.php?do=off\';" />';
echo '<input type="button" value="Включить" onclick="location.href=\'/file.php?do=on\';" />';
 
?>
1
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
06.06.2009, 18:35  [ТС] 5
А само название службы, которую нужно отключить, где прописать?
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
06.06.2009, 20:14 6
В кавычках - win32_stop_service('MySQL');
... там где я указал 'MySQL', а ты указываешь свою службу. Что бы узнать список служб, зайди в Пуск - Выполнить... там введи cmd А в нём введи net start
Он тебе покажет список служб.
1
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
06.06.2009, 21:35  [ТС] 7
понял, попробую, спс

Добавлено через 47 минут 9 секунд
Все сделал, но при нажатии на кнопку выдает это:

Fatal error: Call to undefined function win32_stop_service() in C:\AppServ\www\myscr.php on line 14


Может не win32_stop_service нужно прописать, а что-то другое или еще подключить модули?
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
06.06.2009, 21:39 8
Файл php_win32service.dll скопировал? В php.ini его прописал? Кстати, если php.ini есть ещё и в C:\WINDOWS, то его тоже надо изменить.
0
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
06.06.2009, 21:56  [ТС] 9
Все скопировал и прописал в php.ini , стоит appserv 2.6 , в C:\WINDOWS php.ini нет. Вот логи:

PHP Warning: Directive 'register_globals' is no longer supported in PHP 6 and greater in Unknown on line 0
PHP Warning: Directive 'register_long_arrays' is no longer supported in PHP 6 and greater in Unknown on line 0
PHP Warning: Directive 'magic_quotes_gpc' is no longer supported in PHP 6 and greater in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/AppServ\\php6\\ext\\php_win32service.dll' - \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.\r\n in Unknown on line 0
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
06.06.2009, 22:09 10
У тебя PHP6 ? Тогда не знаю... наверное, надо искать php_win32service.dll специально для него.
1
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
06.06.2009, 23:11  [ТС] 11
Нашел для php6, заменил, но все равно пишет ту же ошибку: Fatal error: Call to undefined function win32_stop_service() in C:\AppServ\www\myscr.php on . В логах все чисто, ошибок нет
Этот скрипт провереный?
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
06.06.2009, 23:19 12
Да, у себя пробовал на PHP 5.1.9-2
Апач перезапустил?
1
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
07.06.2009, 00:39  [ТС] 13
Даже комп перезапускал, мб не хватает связующего модуля...я создал файл myscr.php скопировал твой скрипт, изменил здесь имя на myscr.php onclick="location.href=\'/myscr.php?do=off\';" />';
onclick="location.href=\'/myscr.php?do=on\';" />';
Все равно пишет ошибку,
Ты не мог бы залить куда-нибудь свою сборку

Добавлено через 37 минут 19 секунд
Проблема решена, поставил php5 и все заработало! Огромное спасибо, Humanoid, что помог.

Добавлено через 15 минут 47 секунд
Еще хотел спросить, может знаешь скрипт, когда определенная служба не задействует CPU, например минут 10, то отключается?
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
07.06.2009, 09:49 14
Нет... такого не знаю. И если она не задействует CPU это ещё не значит, что она не работает. Службы обычно очень тихо работают в фоновом режиме.
0
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
09.06.2009, 00:15  [ТС] 15
Ну так, что насчет авторизации? Humanoid
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
09.06.2009, 14:06 16
Цитата Сообщение от for3 Посмотреть сообщение
Ну так, что насчет авторизации? Humanoid
Например, так. script.php - это сам файл... а mysql.php и vars.php - это просто вспомогательные, которые подключаются в главном скрипте.
В файле mysql.php находится класс, с помощью которого удобнее работать с MySQL... не надо помнить ресурсы и т.п.
В vars.php находятся 4 однотипных функции, что бы не заморачиваться с экранированием кавычек и других символов, когда получаешь данные через $_GET, $_POST, $_COOKIE и $_REQUEST
varGET(<имя внутри массива $_GET>,<значение по умолчанию>,[как назвать переменную],[тип переменной]);
Имя внутри массива - это понятно.
Значение по умолчанию - это значение, которое будет присвоено переменной, если в $_GET нет такого имени.
Как назвать переменную - просто имя переменной... если == '' или не указано, то будет такое же как и имя в массиве
Тип переменной - если == 1, то ещё укажет settype($,'integer')

Тебе потребуется сервер MySQL. В нём нужно создать таблицу
SQL
1
CREATE TABLE userslist (id INT UNSIGNED NOT NULL AUTO_INCREMENT,username VARCHAR(64) NOT NULL,passhash CHAR(32) NOT NULL,servicename VARCHAR(64) NOT NULL,PRIMARY KEY(id),UNIQUE(username)) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Добавь в неё пользователей
SQL
1
INSERT INTO userslist SET username="Ник",passhash=MD5(MD5("Пароль")),servicename="Имя службы, которой этот пользователь будет управлять";
Файл script.php можешь переименовывать как угодно. Только сначала подредактируй его вначале... там настройки MySQL (адрес, логин, пароль, имя базы и название таблицы).
У пользователей должны быть разрешены куки хотя бы на текущий сеанс.
Только проблема в том, что он почему-то не со всеми службами может работать. Но если ты пробовал тот вариант, который выше написан, то и этот должен работать.
Вложения
Тип файла: rar script.rar (4.3 Кб, 18 просмотров)
1
0 / 0 / 0
Регистрация: 22.05.2009
Сообщений: 10
09.06.2009, 19:04  [ТС] 17
Попробую, спс

Добавлено через 2 часа 23 минуты 8 секунд
Все работает!!! Спасибо! в личке напиши номера

Добавлено через 1 час 28 минут 18 секунд
Еще вопрос назрел, как потом удалять отдельных пользователей из userslista ?
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
09.06.2009, 19:19 18
Если SQL командами, то либо
SQL
1
DELETE FROM userslist WHERE id=номер пользователя;
или
SQL
1
DELETE FROM userslist WHERE username="ник";
1
09.06.2009, 19:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2009, 19:19
Помогаю со студенческими работами здесь

Службы Windows 7
У меня немного глупый вопрос. А что может случиться, если поставить всем службам типа - вручную?...

Службы Windows 8
Здесь полный список служб Windows 8 по умолчанию. Службы Win8

Службы Windows XP
Не могу програмно установить службу, подскажите как это зделать?

Windows службы
Здравствуйте. Вопрос касается работы программы в фоновом режиме. Вернее будет сервер, который по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru