Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 5.57 Командная строка cmd

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

1. Kibor - 05 Июня, 2019 - 03:42:40 - перейти к сообщению
Примеры обмена данными с 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(сценарий);
2. ivantu - 05 Июня, 2019 - 03:48:33 - перейти к сообщению
Как мне нарвится этот форум, этот автор, эти люди!!!
Спасибо Владимир! Спасибо Zireael !
Вы большие молодцы!
(Добавление)
Что то не совсем понял как использовать, команды отправляются но по одной, тобиш отправилось закрылось, пару примеров можно как использовать, пожалуйста, я нашел тут пару команд, но они не помогли особо разобраться.
3. Kibor - 05 Июня, 2019 - 05:25:27 - перейти к сообщению
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(сценарий);
4. ivantu - 05 Июня, 2019 - 05:31:18 - перейти к сообщению
Понял, спасибо
(Добавление)
Вроде баг... если запустить

CODE:
system ("pause");


И остановить выполнение скрипта горячими клавишами не закрывая коммандную строку, Кибор виснит.
5. Kibor - 05 Июня, 2019 - 05:51:28 - перейти к сообщению
 ivantu пишет:
Вроде баг... если запустить

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

Почитайте про system в интернете описание.
6. ivantu - 05 Июня, 2019 - 05:53:07 - перейти к сообщению
Понял, спасибо большое
(Добавление)
А теперь как то можно скрыть появление окна командной строки а то появляется...
7. Kibor - 05 Июня, 2019 - 06:08:56 - перейти к сообщению
system наверно так нельзя.
Используйте ручной (из скрипта) вызов cmd как в вашей теме с вопросом и скрывайте окно.
8. ivantu - 05 Июня, 2019 - 06:10:15 - перейти к сообщению
Нашел вот такую функцию, не знаю только как запустить.

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() .
9. r00bot - 04 Июля, 2019 - 08:09:11 - перейти к сообщению
Подскажите как можно получить вывод коммандной строки (stdout, stderr) ?
10. Cocacaca - 02 Августа, 2019 - 12:43:34 - перейти к сообщению
Подскажите печать текстового файла без диалогового окна может возможно?

Powered by ExBB FM 1.0 Final