隠しCMDウィンドウに文字キーを送信するには? マイコード:どのようにキーを送信する隠されたCMDプロセスを開始
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);
public void SendText(IntPtr hwnd, string keys)
{
if (hwnd != IntPtr.Zero)
{
if (SetForegroundWindow(hwnd))
{
System.Windows.Forms.SendKeys.Send(keys);
}
}
}
Process p;
int pid;
スタート隠しプロセス:
private void button1_Click(object sender, EventArgs e)
{
p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
pid = p.Id;
}
が送信キー:
private void button4_Click(object sender, EventArgs e)
{
var proc1 = Process.GetProcessById(pid);
SetForegroundWindow(proc1.Handle);
SendKeys.Send("q");
}
キー私のプロセスを送信するためにどのように? (しかし、私のコードffmpeg.exeを開始し、 "q"キーを停止エンコードを送信します) ありがとう答え。
正確に何をしたいですか?キープレスを送信するには?またはプロセスを停止するには?後者の場合、プロセスオブジェクトを使用してffmpegを直接呼び出し、同じオブジェクトを使用して停止することができます。 – Sidewinder94
キー「q」を送信してffmpegを停止します。プロセスを殺さない。 – Gabee