Как открывать консольные программы

Имеется win32-проект. Т.е. точкой входа в прогу является WinMain, рисуется окно, используется Direct3D и т.п. Можно ли как-то ко всему этому хозяйству подключить самую обычную консоль?
Желательно наиболее простым и быстрым способом. Т.е. что бы приложение работало так же как и раньше, но чтоб при его запуске, параллельно грузилась консоль, такая же как в обычном консольном проекте. И чтоб можно было через обычные потоки выводить туда данные. Т.е. чтоб где-то в тексте проги попросту писать std::cout
#1
19:49, 3 апр 2008

Насчет консоли я не знаю, но можно обойтись по другому.
как я понял тебе нужно динамически видеть изменения данных.
есть способ их вставлять в Output (VS6)

void dbgprintf( char * format, . ) < va_list args; int len; char * buffer; va_start( args, format ); len = _vscprintf( format, args ) // _vscprintf doesn’t count + 4; // terminating ‘’ buffer = ( char*)malloc( len * sizeof( char) ); unsigned u =vsprintf( buffer, format, args ); buffer[u]=13; buffer[u+1]=10; buffer[u+2]=0; OutputDebugString( buffer ); free( buffer ); >
#2

КОНСОЛЬНЫЕ КОМАНДЫ ДЛЯ ИГРЫ С ДРУГОМ В CSGO #csgo #csgotrend #shorts #ксго


20:06, 3 апр 2008

Насколько я понял, если ИЗНАЧАЛЬНО сделать проект как консольный, но ничуть не смущаясь начать в нём по принципу оконного создавать оконные классы, вызывать CreateWindow и так далее, в общем как в обычном оконном приложении, то он и будет таким «миксом» — будет и консоль и окна.
Так вроде бы SDL работает.

#3
20:38, 3 апр 2008

В догонку к вопросу автора — может кто нибудь ткнуть носом в статью, где
объясняются такие вещи как: отличие Console App от Win32 App, как в Console App
эту самую консоль не показывать (если это возможно), как в Win32 App показать консоль
(если это возможно) итп. ?

#4
21:08, 3 апр 2008

Можно выводить на стандартный выход (printf) и это будет отображаться в окне Output в Visual Studio. А если запустить из терминала (cmd), будет выводиться в этот терминал.

#5
22:31, 3 апр 2008

В свойствах проекта
Configuration Properties -> Linker -> System выставить у параметра SubSystem «Console (/SUBSYSTEM:CONSOLE)»

В коде проекта заменить
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
на
int main(void)

Итого — консоль + виндузятные окошки.

#6
22:48, 3 апр 2008

const NULL
>как в Console App эту самую консоль не показывать
Как получить хэндл окна консольного приложения?
А там уже ShowWindow, к примеру.

Читайте также:
Одновременно открыть несколько программ

#7
22:49, 3 апр 2008

Всего-то и надо сделать AllocConsole(), чтобы в GUI-приложении открыть консоль. И далее можно писать в неё обычными printf или WriteFile с хендлом, полученным из CreateFile($CONOUT, . ) (второй способ позволяет писать с цветами, двигать текстовый курсор, работать с мышью и т. д.)

>Иногда нужно в реальном времени выводить в прогу некоторые данные для отладки и такой гемор делать это например через GDI или через D3D выводить текст/значения переменных, перед этим форматировать, все это среди кучи другого кода и т.п.

Как открыть консоль в CS:GO / 2021


Если для отладки, то бывает удобней иметь нормальный файл с логом (его можно хоть сохранить, и поиск удобней, и любимый текстовый редактор юзать). И OutputDebugString, да.

#8
23:49, 3 апр 2008

Всем спасибо за ответы, все работает. Вот бы еще сделать чтоб при выходе из программы консоль оставалась, пока явно ее не закроешь.
А то когда программа быстро срабатывает, то и консоль только на миг появляется, ничего не прочитать 🙂

Если для отладки, то бывает удобней иметь нормальный файл с логом (его можно хоть сохранить, и поиск удобней, и любимый текстовый редактор юзать).
Ага. Файл с логом я давно юзаю. Просто в данной ситуации и этого мало 🙂

  • im.visualcortex
  • Участник

#9
0:23, 4 апр 2008

Palich
Самый простой выход — это для отладочной версии создавать консольное приложение. В релизе собирать WINDOWS приложение.

  • out_on_patrol
  • Постоялец

#10
0:52, 4 апр 2008

Palich
праскакивало уже. загружай через cmd (Пуск->Выполнить->cmd)

#11
1:00, 4 апр 2008

>Вот бы еще сделать чтоб при выходе из программы консоль оставалась, пока явно ее не закроешь.
system(«pause»)

#12
8:47, 4 апр 2008

Palich
>Всем спасибо за ответы, все работает. Вот бы еще сделать чтоб при выходе из
>программы консоль оставалась, пока явно ее не закроешь.
>А то когда программа быстро срабатывает, то и консоль только на миг появляется,
>ничего не прочитать 🙂

.
// в конце main()
getch(); // ждет нажатия любой клавиши

Прошло более 2 лет
#13
5:51, 31 окт 2010

еще можно консольку сделать так:

#include windows.h> #include stdio.h> #include io.h> #include fcntl.h> BOOL CreateConsole( void) < FreeConsole( ); //на всякий случай if ( AllocConsole( ) ) < int hCrt = _open_osfhandle( ( long) GetStdHandle( STD_OUTPUT_HANDLE), _O_TEXT); *stdout = *( ::_fdopen( hCrt, «w»)); ::setvbuf( stdout, NULL, _IONBF, 0); *stderr = *( ::_fdopen( hCrt, «w»)); ::setvbuf( stderr, NULL, _IONBF, 0); return TRUE; > return FALSE; > int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) < CreateConsole( ); printf( «WinMain with Console testn»); MSG msg; while ( GetMessage( TranslateMessage( DispatchMessage( > return TRUE; >

С выводом все очень просто, у мя ща загвоздка в другом.
Не могу сделать ввод команд в консольное окно не прерывая главного цикла.
ведь если сделать тупо std::cin или scanf гденьть в update, то она будет висеть пока я не введу ченить. народ хелп ми

Читайте также:
Не обновляет программы в app store

#14
9:54, 31 окт 2010

6Ap+
> Не могу сделать ввод команд в консольное окно не прерывая главного цикла.
> ведь если сделать тупо std::cin или scanf гденьть в update, то она будет висеть
> пока я не введу ченить. народ хелп ми

Запусти консоль в отдельном потоке. Ну и синхронизации чутка добавить тоже надо.

Источник: gamedev.ru

Как открыть новую консоль, и ввести в неё команду

Как можно реализовать через python открытие новой консоли и ввода в неё команды? Например, команда python main.py; Результат консоли не нужен. Допустим, я запускаю start.py, результатом этой программы будет открытие новой консоли и запуска в ней нового скрипта main.py; Консоль с скриптом start.py можно будет закрыть, при этом main.py продолжит свою работу, потому что он запущен в другой консоли, и обособлен от первой(start.py). Я нашёл код, открывающий консоль, но как ввести после этого команду, найти не смог

import subprocess x = subprocess.Popen([‘start’, ‘cmd’], shell = True) x.wait()

Отслеживать

задан 22 янв 2022 в 21:35

35 1 1 серебряный знак 6 6 бронзовых знаков

какую команду вы хотите ввести? есть ли смысл открывать консоль для этого?

22 янв 2022 в 22:06

22 янв 2022 в 22:09

вывод будет направлен в консоль? входные аргументы будут у main?

Источник: ru.stackoverflow.com

Как открыть командную строку

Как открыть командную строку

Откройте командную строку для выполнения команд в Windows 10, 8, 7, Vista и XP

Командная строка — это одна из программ интерфейса командной строки, используемая для выполнения команд в операционных системах Windows .

Некоторые популярные команды командной строки, о которых вы, возможно, слышали, включают ping , netstat , tracert , shutdown и attrib , но их гораздо больше. У нас есть полный список здесь.

Хотя командная строка, вероятно, не является инструментом, который большинство из вас будет использовать на регулярной основе, она действительно может пригодиться время от времени, возможно, для устранения конкретной проблемы Windows или для автоматизации какой-либо задачи.

То, как вы открываете командную строку, отличается в разных версиях Windows, поэтому вы найдете шаги ниже для Windows 10 , Windows 8 или Windows 8.1 и Windows 7 , Windows Vista и Windows XP

Открытие командной строки, вероятно, займет у вас всего несколько секунд, независимо от того, какую версию Windows вы используете, и гораздо меньше, когда вы научитесь это делать.

Как открыть командную строку в Windows 10

  1. Откройте «Пуск».
  2. Введите «CMD».
  3. Нажмите на «Командная строка» из списка.

Другой способ открыть командную строку в Windows 10 — посмотреть в папке «Пуск»:

  1. Откройте «Пуск».
  2. Найдите папку «Служебные — Windows» в списке приложений и нажмите ее.
  3. Нажмите «Командная строка» в системной папке Windows .
Читайте также:
Кто является автором программы по технологии ступеньки к мастерству

Еще один способ открыть командную строку в Windows 10 — через меню «Опытный пользователь».

Если вы используете клавиатуру или мышь, выберите «Командная строка» (возможно будет написано Windows PowerShell) в меню, которое появляется после нажатия WIN + X или щелчка правой кнопкой мыши по кнопке «Пуск».

Параметры Windows PowerShell могут отображаться в меню «Опытный пользователь» вместо командной строки. В более поздних версиях Windows 10 командная строка была заменена PowerShell, но вы все равно можете получить к ней доступ из меню опытного пользователя, отредактировав настройки панели задач.

Как открыть командную строку в Windows 8 или 8.1

  1. Проведите пальцем вверх, чтобы отобразить экран приложений. Вы можете сделать то же самое с помощью мыши, нажав на значок стрелки вниз в нижней части экрана.

До обновления Windows 8.1 доступ к экрану «Приложения»можно получить с экрана « Пуск », проведя вверх от нижней части экрана или щелкнув правой кнопкой мыши в любом месте и выбрав «Все приложения».

Если вы используете клавиатуру или мышь, по-настоящему быстрый способ открыть окно командной строки в Windows 8 — через меню Power User — просто удерживайте клавиши WIN и X вместе или щелкните правой кнопкой мыши кнопку «Пуск» и выберите Командная строка .

Как открыть командную строку в Windows 7, Vista или XP

  1. Нажмите Пуск (Windows XP) или кнопку Пуск (Windows 7 или Vista).В Windows 7 и Windows Vista немного быстрее ввести команду в поле поиска в нижней части меню «Пуск», а затем нажать «Командная строка», когда она появится в результатах.
  2. Нажмите Все программы , а затем Аксессуары.
  3. Выберите Командная строка из списка программ. Командная строка должна открыться сразу
  4. Вы можете использовать командную строку для выполнения команд.

Команда CMD, повышенные командные строки и Windows 98 и 95

В любой версии Windows, как показано выше для Windows 10, командную строку также можно открыть, выполнив команду cmd run, которую можно выполнить из любого поля поиска или Cortana в Windows, или через диалоговое окно « Выполнить » (можно открыть Запустите диалоговое окно с сочетанием клавиш Win + R ).

В версиях Windows, выпущенных до Windows XP, таких как Windows 98 и Windows 95, командная строка не существует. Тем не менее, старая и очень похожая подсказка MS-DOS делает. Эта программа находится в меню «Пуск» и может быть открыта с помощью команды запуска команды.

Некоторые команды, такие как команда sfc, используемая для восстановления файлов Windows, требуют, чтобы командная строка была открыта от имени администратора, прежде чем они могут быть выполнены. Вы узнаете, так ли это, если вы получите «проверить, что у вас есть права администратора» , «… команду можно выполнить только из командной строки с повышенными правами» или «вы должны быть администратором» после попытки выполнить команду

Источник: comhub.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru