最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年01月07日 09:33:59   作者:禮拜一  
這篇文章主要介紹了C# Console利用mspaint打開圖像并保存的方法,涉及C#調用畫圖板操作圖片的相關技巧,需要的朋友可以參考下

本文實例講述了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"); //發(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+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程序代碼如下:

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#程序設計有所幫助。

相關文章

  • C#調用執(zhí)行外部程序的實現方法

    C#調用執(zhí)行外部程序的實現方法

    這篇文章主要介紹了C#調用執(zhí)行外部程序的實現方法,涉及C#進程調用的相關使用技巧,非常簡單實用,需要的朋友可以參考下
    2015-04-04
  • BarCode條形碼基于C# GDI+ 的實現方法詳解

    BarCode條形碼基于C# GDI+ 的實現方法詳解

    本篇文章介紹了,BarCode條形碼基于C# GDI+ 的實現方法詳解。需要的朋友參考下
    2013-05-05
  • C# SESSION丟失問題的解決辦法

    C# SESSION丟失問題的解決辦法

    這篇文章主要為大家詳細介紹了C# SESSION丟失問題的解決辦法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C#中Socket與Unity相結合示例代碼

    C#中Socket與Unity相結合示例代碼

    這篇文章主要給大家介紹了關于C#中Socket與Unity相結合的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-10-10
  • C#中使用OpenCV的常用函數的常用示例

    C#中使用OpenCV的常用函數的常用示例

    這篇文章主要介紹了C#中使用OpenCV的常用函數的常用示例,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 使用C#發(fā)送Http請求實現模擬登陸實例

    使用C#發(fā)送Http請求實現模擬登陸實例

    本文主要介紹了使用C#發(fā)送Http請求實現模擬登陸實例,模擬登陸的原理簡單,想要了解的朋友可以了解一下。
    2016-10-10
  • WPF實現數據綁定的幾種方法

    WPF實現數據綁定的幾種方法

    Windows Presentation Foundation (WPF) 是微軟開發(fā)的一套用于構建用戶界面的框架,在 WPF 中,數據綁定是一個非常重要的概念,它使得 UI 和數據源之間的同步變得簡單和高效,本文將詳細分析 WPF 中實現數據綁定的幾種方法,需要的朋友可以參考下
    2024-12-12
  • C#通過JObject解析json對象

    C#通過JObject解析json對象

    這篇文章介紹了C#通過JObject解析json對象的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • .NET實現父窗體關閉而不影響子窗體的方法

    .NET實現父窗體關閉而不影響子窗體的方法

    這篇文章主要介紹了.NET實現父窗體關閉而不影響子窗體的方法,很實用的功能,需要的朋友可以參考下
    2014-08-08
  • C# BackgroundWorker組件學習入門介紹

    C# BackgroundWorker組件學習入門介紹

    一個程序中需要進行大量的運算,并且需要在運算過程中支持用戶一定的交互,為了獲得更好的用戶體驗,使用BackgroundWorker來完成這一功能
    2013-10-10

最新評論

扎囊县| 齐河县| 繁峙县| 那曲县| 清流县| 阳信县| 石景山区| 佛坪县| 天全县| 乌兰察布市| 尉犁县| 呼伦贝尔市| 旺苍县| 绵竹市| 平谷区| 云阳县| 吉林省| 新蔡县| 罗田县| 石楼县| 商河县| 启东市| 西安市| 双峰县| 潼关县| 嘉义县| 聊城市| 梁河县| 紫阳县| 泸州市| 永川市| 陵川县| 三门县| 江西省| 太仓市| 永登县| 临颍县| 额济纳旗| 两当县| 大足县| 吴堡县|