Как я могу отправить ключ F4 к процессу в C#? [дубликат]

Это наоборот. P имеет x..y объектов типа C в доступе и C имеет a..b из P.

В качестве дополнительного примечания: метки множественности не следует размещать, чтобы скрыть части ассоциации.

9
задан Jainendra 2 August 2012 в 12:53
поделиться

3 ответа

Чтобы отправить ключ F4 другому процессу, вам необходимо активировать этот процесс

http://bytes.com/groups/net-c/230693-activate-other-process предлагает:

  1. Получить экземпляр класса Process, возвращенный Process.Start
  2. Запрос Process.MainWindowHandle
  3. Вызов неуправляемой функции Win32 API «ShowWindow» или «SwitchToThisWindow»

После этого вы сможете использовать System. Windows.Forms.SendKeys.Send ("{F4}"), как Рид предложил посылать нажатия клавиш в этот процесс.

РЕДАКТИРОВАТЬ:

В приведенном ниже примере кода запускается блокнот и отправляется ему «ABC»:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace TextSendKeys
{
    class Program
    {
        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        static void Main(string[] args)
            {
                Process notepad = new Process();
                notepad.StartInfo.FileName = @"C:\Windows\Notepad.exe";
                notepad.Start();

                // Need to wait for notepad to start
                notepad.WaitForInputIdle();

                IntPtr p = notepad.MainWindowHandle;
                ShowWindow(p, 1);
                SendKeys.SendWait("ABC");
            }
    }
}
11
ответ дан 4 December 2019 в 09:14
поделиться

Вы можете использовать System.Windows.Forms.SendKeys.Send ("{F4}") ;

11
ответ дан 4 December 2019 в 09:14
поделиться

Вы можете сфокусировать окно (SetForegroundWindow WINAPI), а затем использовать формы Windows SendKeys для отправки F4.

1
ответ дан 4 December 2019 в 09:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: