Информационные технологииStfw.Ru 🔍

Использование консольных команд WinXP в DELPHI

blackman
🕛 05.09.2006, 12:31
Я приведу две из них:
- rasdial для установления (разрыва) модемного соединения;
- shutdown для выключения или перезагрузки компьютера
и примеры их вызова из программы на delphi

1.Для установления (разрыва) модемного соединения и выключения или перезагрузки компьютера

rasdial - Выполняет автоматический набор номера для клиентов microsoft.

Команда rasdial, запущенная без параметров, показывает состояние текущих подключений.

Синтаксис
rasdial имя_подключения [имя_пользователя [{пароль|* } ] ] [/domain:домен] [/phone:номер_телефона] [/callback:номер_для_ответного_вызова] [/phonebook:путь_к_телефонной_книге] [/prefixsuffix]
rasdial [имя_подключения] /disconnect

Параметры
имя_подключения
Требуется при подключении к записи телефонной книги (.pbk).
Задает запись текущего файла .pbk из корневой_папки_системы\system32\ras.
Если имя_подключения содержит пробелы, его следует заключать в кавычки (т. е. "имя_подключения").
Файл rasphone.pbk используется по умолчанию, если не задана Личная_телефонная_книга. Если она задана, используется файл имя_пользователя.pbk. Имя выводится в заголовке окна rasphone при задании личной телефонной книги. В случае конфликта имен происходит добавление цифр.
имя_пользователя [{пароль|*}]
Задает имя пользователя и пароль для подключения. Если используется символ звездочки, пользователю выдается запрос на ввод пароля, но вводимые символы не отображаются.
/domain:домен
Задает домен, в котором находится учетная запись пользователя. Если этот параметр отсутствует, используется последнее значение поля Домен диалогового окна Подключение к.
/phone:номер_телефона
Заменяет номер телефона, заданный для телефонного номера данной записи в файле телефонной книги rasphone.pbk.
/callback:номер_для_ответного вызова
Заменяет номер телефона для ответного вызова, заданный для записи из файла телефонной книги rasphone.pbk.
/phonebook:путь_к_телефонной_книге
Задает путь к файлу телефонной книги. По умолчанию задан системный_корневой_каталог\system32\ras\имя_пользователя.pbk. Можно указать полный путь к файлу.
/prefixsuffix
Применяет к набираемому номеру телефона параметры набора номера tapi для текущего местоположения. Эти параметры настраиваются в телефонной службе с помощью компонента "Параметры телефона и модема", находящегося на панели управления. По умолчанию этот параметр отключен.
/disconnect
Данный параметр требуется при отключении. Отключает заданное подключение. Отключение также выполняется с помощью ввода параметра /d.
Примечания
Команда rasdial не поддерживает следующие функции rasphone.exe:
Записи, требующие ввода данных в терминальном режиме в процессе набора номера.
Набор номера через оператора или вручную.

Примеры вызова в консоли

В примере показано подключение к записи office файла телефонной книги rasphone.pbk.

rasdial office

В примере показано подключение к записи office 2 файла телефонной книги rasphone.pbk с заданием номера обратного вызова.

rasdial "office 2" /callback:555-0100

В примере показано отключение от записи east office.

rasdial "east office" /d

Установить соединение из программы можно следующим образом:

procedure tform1.rasconnect(sender: tobject);
begin
winexec(pchar('rasdial "имя соединения" '+login+' '+password), sw_show); //sw_show - в окне sw_hide - скрыть окно
end;

Разорвать соединение:

procedure tform1.rasdisconnect(sender: tobject);
begin
winexec(pchar('rasdial "имя соединения" /disconnect'), sw_hide); //sw_show
end;

-
2.shutdown - выключение / перезагрузка компьютера

shutdown [-i | -l | -s | -r | -a] [-f] [-m \\<компьютер>] [-t xx] [-c "комментарий"] [-d up:xx:yy]

Без аргументов Вывод справки по использованию (как и -?)
-i Отображение интерфейса, д.быть первым параметром

-l Выход (не совместим с параметром -m)
-s Завершение работы компьютера
-r Перезагрузка компьютера
-a Прекращение завершения работы системы
-m \\<компьютер> Удаленный компьютер, на котором выполняется
действие
-t xx Таймаут завершения работы - xx сек.
-c "comment" Комментарий (не более 127 знаков)
-f Принудительное завершение приложений без
предварительного предупреждения
-d [p]:xx:yy Код причины завершения работы
u - пользовательский код
p - код запланированного завершения
xx - основной код причины (1 - 255)
yy - дополнительный код причины (1 - 65535)

Из программы
procedure tform1.compshutdown(sender: tobject); // Выключение
begin
winexec(pchar('shutdown -s -t 02'), sw_show);
end;

procedure tform1.kompdown(sender: tobject); // Перезагрузка
begin
winexec(pchar('shutdown -r -t 02'), sw_show);
end;

Вы можете заменить winexec на shellexecute (как рекомендует borland) но суть от этого не изменится :)

Полный перечень консольных команд Вы можете получить, вызвав справку winxp.
Надеюсь, что найдете там много интересного...

Pascal и Delphi   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉