Ответ 1
Если блокнот уже запущен, вы должны написать:
// import the function in your class
[DllImport ("User32.dll")]
static extern int SetForegroundWindow(IntPtr point);
//...
Process p = Process.GetProcessesByName("notepad").FirstOrDefault();
if( p != null)
{
IntPtr h = p.MainWindowHandle;
SetForegroundWindow(h);
SendKeys.SendWait("k");
}
GetProcessesByName
возвращает массив процессов, поэтому вы должны получить первый (или найти тот, который вам нужен).
Если вы хотите запустить notepad
и отправить ключ, напишите:
Process p = Process.Start("notepad.exe");
p.WaitForInputIdle();
IntPtr h = p.MainWindowHandle;
SetForegroundWindow(h);
SendKeys.SendWait("k");
Единственная ситуация, когда код может не работать, - это когда notepad
запускается как Администратор, а ваше приложение не работает.