Отправка команды в открытую cmd.exe - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, необходимо отправить в ЗАРАНЕЕ ОТКРЫТУЮ кмд команду. если вообще возможно.
Актуально, не могу найти нигде, помогите пожалуйста, я уже не могу)
Просто великолепные ответы... я не знаю уже где искать... думал хоть вы поможете

Решение задачи: «Отправка команды в открытую cmd.exe»

textual
Листинг программы
  1. using System;
  2. using System.ComponentModel;
  3. using System.Runtime.InteropServices;
  4. using System.Windows.Forms;
  5.  
  6. namespace AttachConsoleSample
  7. {
  8.     static internal class Program
  9.     {
  10.         [DllImport("kernel32.dll", SetLastError = true)]
  11.         public static extern bool AttachConsole(uint dwProcessId);
  12.  
  13.         [DllImport("user32.dll", SetLastError = true)]
  14.         static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
  15.  
  16.         [DllImport("kernel32.dll", SetLastError = true)]
  17.         public static extern bool FreeConsole();
  18.  
  19.         [DllImport("user32.dll", SetLastError = true)]
  20.         static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwPocessId);
  21.  
  22.         static private void Main(string[] args)
  23.         {
  24.             IntPtr hWnd = FindWindow("ConsoleWindowClass", "Командная строка");
  25.             if (IntPtr.Zero == hWnd)
  26.             {
  27.                 ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
  28.                 return;
  29.             }
  30.            
  31.             uint processId;
  32.             GetWindowThreadProcessId(hWnd, out processId);
  33.             if (0 == processId)
  34.             {
  35.                 ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
  36.                 return;
  37.             }
  38.  
  39.             bool result = AttachConsole(processId);
  40.             if (false == result)
  41.             {
  42.                 ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
  43.                 return;
  44.             }
  45.  
  46.  
  47.            
  48.             //
  49.             // Присоединились к консоли.
  50.             // Делаем здесь что нужно
  51.             //
  52.  
  53.  
  54.  
  55.             result = FreeConsole();
  56.             {
  57.                 ShowErrorMessage(new Win32Exception(Marshal.GetLastWin32Error()).Message);
  58.                 return;
  59.             }
  60.         }
  61.  
  62.         static private void ShowErrorMessage(string message)
  63.         {
  64.             MessageBox.Show(message, "AttachConsoleSmaple", MessageBoxButtons.OK, MessageBoxIcon.Error);
  65.         }
  66.  
  67.     }
  68. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут