国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# Console利用mspaint打開圖像并保存的方法

2019-10-29 21:34:03
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C# Console利用mspaint打開圖像并保存的方法,涉及C#調(diào)用畫圖板操作圖片的相關(guān)技巧,需要的朋友可以參考下
 

本文實例講述了C# Console利用mspaint打開圖像并保存的方法。分享給大家供大家參考,具體如下:

調(diào)用畫圖板壓縮圖片

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"); //發(fā)送 Ctrl + s 鍵System.Windows.Forms.SendKeys.SendWait("%{F4}"); // 發(fā)送 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}");     //發(fā)送F5按鍵SendKeys.SendWait("^s");    //發(fā)送 Ctrl + s 鍵SendKeys.SendWait("%{F4}");   // 發(fā)送 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+fSendKeys.SendWait("{Tab}");SendKeys.SendWait("{Enter}")//多次按鍵的代碼//為了指定重復(fù)鍵,使用 {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程序代碼如下:

using System;using System.Text;using System.Diagnostics;using System.Threading;using System.Windows.Automation;using System.Runtime.InteropServices;using System.Windows;using System.Windows.Forms;namespace UIATest{  class Program  {    static void Main(string[] args)    {      Process process = Process.Start(@"E:/WorkBook/ATP/WpfApp/bin/Debug/WpfApp.exe");      int processId = process.Id;      AutomationElement element = FindElementById(processId, "textBox1");      SendKeys sendkeys = new SendKeys();      sendkeys.Sendkeys(element, "Sending keys to input data");      Console.WriteLine(sendkeys.ToString());      sendkeys.Sendkeys(element, sendkeys.ContextMenu);      Console.WriteLine(sendkeys.ToString());      Console.WriteLine("Test finised.");     }    /// <summary>    /// Get the automation elemention of current form.    /// </summary>    /// <param name="processId">Process Id</param>    /// <returns>Target element</returns>    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);        }      }    }    /// <summary>    /// Get the automation element by automation Id.    /// </summary>    /// <param name="windowName">Window name</param>    /// <param name="automationId">Control automation Id</param>    /// <returns>Automatin element searched by automation Id</returns>    public static AutomationElement FindElementById(int processId, string automationId)    {      AutomationElement aeForm = FindWindowByProcessId(processId);      AutomationElement tarFindElement = aeForm.FindFirst(TreeScope.Descendants,      new PropertyCondition(AutomationElement.AutomationIdProperty, automationId));      return tarFindElement;    }  }}

希望本文所述對大家C#程序設(shè)計有所幫助。



注:相關(guān)教程知識閱讀請移步到c#教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 麦盖提县| 尼木县| 邵东县| 绿春县| 海安县| 洛宁县| 潮安县| 赤壁市| 清原| 敦煌市| 绥宁县| 清徐县| 罗平县| 花莲市| 应城市| 林芝县| 拉萨市| 吉隆县| 云南省| 合山市| 嘉祥县| 甘德县| 太白县| 临湘市| 雷波县| 陵川县| 商城县| 宁武县| 万州区| 新疆| 原阳县| 乌什县| 榆社县| 启东市| 任丘市| 林西县| 南阳市| 和林格尔县| 阳山县| 南通市| 西丰县|