我想保存并关闭所有打开的应用程序。从Process命令中识别特定应用程序。有了这个,我可以杀了它。
为了保存我尝试了SendKeys类,首先我设置了SetForegroundWindow(h),并使用
成功地使用 ctrl + sSendKeys.Send("^s"); //Ctrl+s
但是,用户定义的应用程序在那里,我还有一种情况可以保存一个新的(不是现有的文件),必须通过 Alt + F + 取值 即可。 这样它就可以保存默认名称 我怎么做到这一点, 我试过了,
SendKeys.Send("%(fs)");
SendKeys.Send("%f"+"s"); //Alt+F
SendKeys.Send("%f" + "%s)"); //Alt+F
SendKeys.Send("%fs");
请指导我,如果SendKeys不可能,我还应该尝试什么。
答案 0 :(得分:2)
始终使用破坏,您可以避免错误。
SendKeys.Send("%{f}"); //Alt+F
SendKeys.Send("{A}"); //A
或尝试
SendKeys.Send("%{f}{A}"); //Alt+F And A
答案 1 :(得分:1)
什么APP? SendKeys将发送击键,但在引擎盖下,大多数东西都使用旧的消息循环。
SendMessage(hWnd, WM_SETTEXT, wParam, lParam);
C#
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, String lpWindowName);
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError=true, CharSet=CharSet.Auto)]
static extern uint RegisterWindowMessage(string lpString);
IntPtr hwnd= FindWindow(null, "Window Title");
SendMessage(hwnd, id, IntPtr.Zero, IntPtr.Zero);
要记事本保存它将是
const int WM_COMMAND = 0x111;
SendMessage(hwnd, WM_COMMAND,777 , NULL);