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

推荐订阅源

M
MIT News - Artificial intelligence
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
G
Google Developers Blog
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
The Blog of Author Tim Ferriss
月光博客
月光博客
B
Blog
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
博客园_首页
人人都是产品经理
人人都是产品经理
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
Jina AI
Jina AI
S
SegmentFault 最新的问题
H
Help Net Security
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
Google DeepMind News
Google DeepMind News

博客园 - 礼拜一

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下载