Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (3): [1] 2 3 »   

> Описание: system - Функция выполняет заданную через параметр, системную команду.
Kibor
Отправлено: 05 Июня, 2019 - 11:42:40
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Примеры обмена данными с cmd в фоновом режиме Запуск процесса и налаживание Pipe канала с ним
Рабочий пример как записывать файлы Excel в формате .xlsx
Еще один пример как записывать файлы Excel в формате .xlsx


system - Функция выполняет заданную через параметр, системную команду.
Функция выполняет заданную, через параметр системную команду. На самом деле, функция не сама выполняет команду, она вызывает командный процессор для выполнения команд. После выполнения команды, командный процессор возвращает управление программе, возвращая целочисленное значение, интерпретация которого зависит от системы.

CODE:
system("start %SystemRoot%\System32\calc.exe"); // открыть калькулятор


 Цитата:
Для того чтобы выполнить несколько команд из одной командной строки, нужно объединить их с помощью символа условной обработки:

команда1 & команда2 — Используется для разделения нескольких команд в одной командной строке. В cmd.exe выполняется первая команда, затем вторая команда.

команда1 && команда2 — Запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно. В cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая была выполнена успешно.

команда1 || команда2 — Запускает команду, стоящую за символом ||, только если команда, стоящая перед символом || не была выполнена. В cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая не была выполнена (полученный код ошибки превышает ноль).


CODE:
system("start %SystemRoot%\System32\calc.exe | start %SystemRoot%\System32\notepad.exe"); // две команды



CODE:
string сценарий="start %SystemRoot%\System32\calc.exe";//первая
сценарий=сценарий+" | start %SystemRoot%\System32\notepad.exe";//вторая

system(сценарий);
 
 Top
ivantu
Отправлено: 05 Июня, 2019 - 11:48:33
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Как мне нарвится этот форум, этот автор, эти люди!!!
Спасибо Владимир! Спасибо Zireael !
Вы большие молодцы!
(Добавление)
Что то не совсем понял как использовать, команды отправляются но по одной, тобиш отправилось закрылось, пару примеров можно как использовать, пожалуйста, я нашел тут пару команд, но они не помогли особо разобраться.
 
 Top
Kibor
Отправлено: 05 Июня, 2019 - 13:25:27
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




CODE:
system("start %SystemRoot%\System32\calc.exe | start %SystemRoot%\System32\notepad.exe"); // две команды

(Добавление)
CODE:
string сценарий="start %SystemRoot%\System32\calc.exe";//первая
сценарий=сценарий+" | start %SystemRoot%\System32\notepad.exe";//вторая

system(сценарий);
 
 Top
ivantu
Отправлено: 05 Июня, 2019 - 13:31:18
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Понял, спасибо
(Добавление)
Вроде баг... если запустить

CODE:
system ("pause");


И остановить выполнение скрипта горячими клавишами не закрывая коммандную строку, Кибор виснит.
 
 Top
Kibor
Отправлено: 05 Июня, 2019 - 13:51:28
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 ivantu пишет:
Вроде баг... если запустить

Это не баг.
system блокирует дальнейшее выполнение программы которая ее вызвала.
пока консоль не отработает программа будет ждать ее завершения.
команда в консоли пауза.
Требует нажать клавишу для продолжения. Нажмите.

Почитайте про system в интернете описание.
 
 Top
ivantu
Отправлено: 05 Июня, 2019 - 13:53:07
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Понял, спасибо большое
(Добавление)
А теперь как то можно скрыть появление окна командной строки а то появляется...
 
 Top
Kibor
Отправлено: 05 Июня, 2019 - 14:08:56
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




system наверно так нельзя.
Используйте ручной (из скрипта) вызов cmd как в вашей теме с вопросом и скрывайте окно.
 
 Top
ivantu
Отправлено: 05 Июня, 2019 - 14:10:15
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013  
Репутация: 14




Нашел вот такую функцию, не знаю только как запустить.

CODE:

int windows_system(const char *cmd) { PROCESS_INFORMATION p_info; STARTUPINFO s_info; LPSTR cmdline, programpath; memset(&s_info, 0, sizeof(s_info)); memset(&p_info, 0, sizeof(p_info)); s_info.cb = sizeof(s_info); cmdline = _tcsdup(TEXT(cmd)); programpath = _tcsdup(TEXT(cmd)); if (CreateProcess(programpath, cmdline, NULL, NULL, 0, 0, NULL, NULL, &s_info, &p_info)) { WaitForSingleObject(p_info.hProcess, INFINITE); CloseHandle(p_info.hProcess); CloseHandle(p_info.hThread); } }


Работает на всех платформах Windows. Вызывается так же, как и вы system() .
 
 Top
r00bot
Отправлено: 04 Июля, 2019 - 16:09:11
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2019  
Репутация: 0




Подскажите как можно получить вывод коммандной строки (stdout, stderr) ?
 
 Top
Cocacaca
Отправлено: 02 Августа, 2019 - 20:43:34
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 20
Дата рег-ции: Нояб. 2017  
Репутация: 0




Подскажите печать текстового файла без диалогового окна может возможно?
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by