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

推荐订阅源

博客园_首页
H
Help Net Security
量子位
The Cloudflare Blog
博客园 - Franky
博客园 - 聂微东
博客园 - 司徒正美
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
罗磊的独立博客
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
MongoDB | Blog
MongoDB | 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下载