惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
罗磊的独立博客
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
V
V2EX
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
量子位
MyScale Blog
MyScale Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
B
Blog

博客园 - 礼拜一

MAC实用技巧 。 工业设计的10个基本法则 Web可用性设计的247条指导方针 选中文本,变绿~ Examples of location paths using the unabbreviated syntax 15戒律 HttpWebRequest默认的只有2个并发连接限制!!!!! 获取远程XML文档 在外企工作,一些英語用法潜规则 vs2008命令窗口使用 Visual Studio 2005 中的命令窗口 Error: No such interface supported 动态加载UserControl~ - 礼拜一 - 博客园 英语常用高频语句 jQuery的一些备忘 - 礼拜一 - 博客园 XSLT模式匹配的语法 XPath表达式(缩写和详写方式) 穷死了,看电子书吧~ C#里边的控件缩写大全(比较规范)
C# Console:利用mspaint打开图像并保存 。
礼拜一 · 2010-11-30 · via 博客园 - 礼拜一

调用画图板压缩图片

System.Diagnostics.Process process = new System.Diagnostics.Process();
process 
= System.Diagnostics.Process.Start("mspaint.exe", path);
int processId = process.Id;

AutomationElement element 

= FindWindowByProcessId(processId);
System.Windows.Forms.SendKeys.SendWait(
"^s");       //发送 Ctrl + s 键
System.Windows.Forms.SendKeys.SendWait("%{F4}");      // 发送 Alt + F4 键

代码

        public static AutomationElement FindWindowByProcessId(int processId)
        {
            AutomationElement targetWindow 
= null;
            
int count = 0;
            
try
            {
                Process p 
= Process.GetProcessById(processId);
                targetWindow 
= AutomationElement.FromHandle(p.MainWindowHandle);
                
return targetWindow;
            }
            
catch (Exception ex)
            {
                count
++;
                StringBuilder sb 
= new StringBuilder();
                
string message = sb.AppendLine(string.Format("Target window is not existing.try #{0}", count)).ToString();
                
if (count > 5)
                {
                    
throw new InvalidProgramException(message, ex);
                }
                
else
                {
                    
return FindWindowByProcessId(processId);
                }
            }
        }

模拟键盘输入

SendKeys.SendWait("{F5}");          //发送F5按键
SendKeys.SendWait("^s");       //发送 Ctrl + s 键
SendKeys.SendWait("%{F4}");      // 发送 Alt + F4 键//按键 代码 
BACKSPACE {BACKSPACE}, {BS}, 或 {BKSP} 
BREAK {BREAK} 
CAPS LOCK {CAPSLOCK} 
DEL or DELETE {DELETE} 或 {DEL} 
DOWN ARROW {DOWN} 
END {END} 
ENTER  {ENTER}或 
~ 
ESC {ESC} 
HELP {HELP} 
HOME {HOME} 
INS or INSERT {INSERT} 或 {INS} 
LEFT ARROW {LEFT} 
NUM LOCK {NUMLOCK} 
PAGE DOWN {PGDN} 
PAGE UP {PGUP} 
PRINT SCREEN {PRTSC} 
RIGHT ARROW {RIGHT} 

SendKeys.SendWait(

"+{TAB}");
SendKeys.SendWait(
"%f");//alt+f
SendKeys.SendWait("{Tab}");
SendKeys.SendWait(
"{Enter}")//多次按键的代码//为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。//例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。

Where is the System.Windows.Automation

The UIAutomationClient.dll is located in this folder:

C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0

If you can't find in your Add Reference->.Net tab, then you have to use the Browse tab to go to the given path, and add the assembly (Right Click on the References, choose add reference, click browse tab):

Demo下载