Отправка команды в открытую cmd.exe - C#
Формулировка задачи:
Здравствуйте, необходимо отправить в ЗАРАНЕЕ ОТКРЫТУЮ кмд команду. если вообще возможно.
Актуально, не могу найти нигде, помогите пожалуйста, я уже не могу)
Просто великолепные ответы... я не знаю уже где искать... думал хоть вы поможете
Решение задачи: «Отправка команды в открытую cmd.exe»
textual
Листинг программы
- using System;
- using System.ComponentModel;
- using System.Runtime.InteropServices;
- using System.Windows.Forms;
- namespace AttachConsoleSample
- {
- static internal class Program
- {
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern bool AttachConsole(uint dwProcessId);
- [DllImport("user32.dll", SetLastError = true)]
- static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern bool FreeConsole();
- [DllImport("user32.dll", SetLastError = true)]
- static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwPocessId);
- static private void Main(string[] args)
- {
- IntPtr hWnd = FindWindow("ConsoleWindowClass", "Командная строка");
- if (IntPtr.Zero == hWnd)
- {
- ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
- return;
- }
- uint processId;
- GetWindowThreadProcessId(hWnd, out processId);
- if (0 == processId)
- {
- ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
- return;
- }
- bool result = AttachConsole(processId);
- if (false == result)
- {
- ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
- return;
- }
- //
- // Присоединились к консоли.
- // Делаем здесь что нужно
- //
- result = FreeConsole();
- {
- ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
- return;
- }
- }
- static private void ShowErrorMessage(string message)
- {
- MessageBox.Show(message, "AttachConsoleSmaple", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д