1

При нажатии кнопки в приложении winform я выполняю файл cmd.exe (с использованием system ("cmd.exe");), который открывается совершенно нормально и отображает следующее:

  Microsoft Windows XP [Version 6.1.7601]
  (C) Copyright 1985-2001 Microsoft Corp.

  C: A\Documents\Visual Studio 2010\Projects\WinformTest\WinformTest> 

То, что я хочу, это когда пользователь нажимает кнопку, cmd.exe открывается с командой по умолчанию и сообщение, подобное этому:

 Please change command options and press enter to get started experimenting   
 C: A\Documents\Visual Studio 2010\Projects\WinformTest\WinformTest> reduction -x 33554432 -i  

Обратите внимание на новую команду, и сообщение уже там.

Кто-нибудь может сказать мне, как пойти на это?

ОБНОВИТЬ

 cmd /k echo Please change command options and press enter to get started      
 experimenting & echo reduction -x 33554432 -i

Это показывает самое близкое решение, но здесь я должен устанавливать команды каждый раз, когда открываю cmd. Можно ли установить команду один раз и сохранить настройку, поэтому при следующем открытии CMD появится сообщение? Или возможно передать эти команды параметрам / переключателям, когда я открываю их в своем приложении с помощью системы («cmd.exe»), чтобы во время выполнения этот параметр для сообщения был установлен?

решаемая

 system("cmd.exe /k echo Please change command options and press enter to get started  
 experimenting & echo reduction -x 33554432 -i"  );

Но это перекликается с Maeesage, но команда не приходит в командной строке.

2 ответа2

3

Один из способов сделать это - использовать малоизвестную функцию автозапуска командного процессора. Я вспомнил, что это было возможно, поэтому поиск в Google позволил получить ссылку на мой собственный блог! Я забыл о написании этого:

http://it.knightnet.org.uk/2009/05/how-to-show-a-message-of-the-day-motd-at-the-windows-command-prompt.html

Вы можете установить команду автозапуска через реестр в любом из этих мест в соответствии с необходимостью:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor

Я использую следующие настройки:

%USERPROFILE%\.profile.cmd

Который запускает этот cmd-файл каждый раз, когда я запускаю командную строку. В команде автозапуска вы можете просто отобразить вывод текстового файла. В вашем приложении выведите некоторый текст в текстовый файл, запустите командную строку. Затем вы должны очистить текстовый файл (не удаляйте его), чтобы вы не получали подсказку.

При необходимости вы можете добавить дополнительные сведения, чтобы текстовый файл отображался только для вашего приложения.

Конечно, вы также можете изменить реестр на лету из вашего приложения.

2

cmd.exe принимает необязательный параметр /k , который можно использовать для запуска команды при запуске. Чтобы использовать это, чтобы получить что-то близкое к тому, что вы хотите, что-то вроде следующего кажется близким:

cmd /k echo Please change command options and press enter to get started experimenting & echo reduction -x 33554432 -i

что приводит к открытию и отображению окна:

Как видите, вы можете выполнить несколько команд, поставив между ними символ «&».

Если вы хотите сделать что-то более сложное, вы можете запустить отдельный скрипт .cmd/.bat, чтобы добиться чего-то похожего на то, о чем говорит Джулиан Найт в своем ответе, но не требуя изменений в реестре.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .