C# Console:利用mspaint打开图像并保存 。

调用画图板压缩图片
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下载

 

你可能感兴趣的:(C# Console:利用mspaint打开图像并保存 。)