建设银行可以查房贷的网站,人工智能就业方向及前景,网站建设q-9,住房和城乡建设部令第51号有时候想控制第三方软件#xff0c;但是没有源程序#xff0c;可以控制鼠标键盘自动操作软件达到我们想要的目的
首先建一个功能类包含窗口控制#xff0c;鼠标控制和输入控制等 csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.…有时候想控制第三方软件但是没有源程序可以控制鼠标键盘自动操作软件达到我们想要的目的
首先建一个功能类包含窗口控制鼠标控制和输入控制等 csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;namespace 进程程序名
{public class Win32Api{[DllImport(user32.dll, SetLastError true)]static extern IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport(user32.dll)][return: MarshalAs(UnmanagedType.Bool)]public static extern bool SetForegroundWindow(IntPtr hWnd);[DllImport(user32.dll, CharSet CharSet.Auto, SetLastError false)]public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);[DllImport(user32.dll, SetLastError true)]public static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);[DllImport(user32.dll, SetLastError true)]public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);[DllImport(user32.dll)][return: MarshalAs(UnmanagedType.Bool)]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);public static IntPtr FindWindowByCaption(string caption){return FindWindow(null, caption);}public static IntPtr FindWindowByClassName(string className){return FindWindow(className, null);}}public enum SW{HIDE 0,SHOW_NORMAL 1,SHOW_MINIMIZED 2,MAXIMIZE 3,SHOW_MAXIMIZED 3,SHOW_NO_ACTIVE 4,SHOW 5,MINIMIZE 6,SHOW_MIN_NO_ACTIVE 7,SHOW_NA 8,RESTORE 9,SHOW_DEFAULT 10,FORCE_MINIMIZE 11}public enum WMessages : int{WM_KEYDOWN 0x100,WM_KEYUP 0x101,WM_CHAR 0x102,WM_LBUTTONDOWN 0x201, //Left mousebutton downWM_LBUTTONUP 0x202, //Left mousebutton upWM_LBUTTONDBLCLK 0x203, //Left mousebutton doubleclickWM_RBUTTONDOWN 0x204, //Right mousebutton downWM_RBUTTONUP 0x205, //Right mousebutton upWM_RBUTTONDBLCLK 0x206, //Right mousebutton doWM_CUT 0x300,WM_COPY 0x301,WM_PASTE 0x302,WM_CLEAR 0x303}public enum Functions : int{KEYEVENTF_KEYDOWN 0x0000, // New definitionKEYEVENTF_EXTENDEDKEY 0x0001, //Key down flagKEYEVENTF_KEYUP 0x0002, //Key up flagVK_LCONTROL 0xA2, //Left Control key codeA 0x41, //A key codeC 0x43, //C key code}}再写一个实际应用根据实际软件大小和位置设置相应的控制点位using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 进程程序名
{public class 进程程序名{public Process 进程程序名{get Process.GetProcessesByName(进程程序名).FirstOrDefault(i i.MainWindowHandle ! IntPtr.Zero); }public void SendMsg(string msg){if(SunnyLinknull){Console.WriteLine(请打开SunnyLink窗口之后重试);return;}if(string.IsNullOrEmpty(msg)){Console.WriteLine(发送的字符为空);return;}var x 357;var y 540;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Clipboard.SetText(msg);Task.Delay(1).Wait();//复制Win32Api.keybd_event((byte)Functions.VK_LCONTROL, 0, (int)Functions.KEYEVENTF_KEYDOWN, 0);Task.Delay(100).Wait();Win32Api.PostMessage(SunnyLink.MainWindowHandle, (int)WMessages.WM_KEYDOWN, (int)System.Windows.Forms.Keys.V, 0);Task.Delay(1).Wait();Win32Api.keybd_event((byte)Functions.VK_LCONTROL, 0, (int)Functions.KEYEVENTF_KEYUP, 0);//发送消息Task.Delay(500).Wait();x 920; y 570;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));x 940; y 610;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Task.Delay(100).Wait();}public void FindUser(string msg){if (SunnyLink null){Console.WriteLine(请打开目标程序窗口之后重试);return;}var x 98;var y 26;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Clipboard.SetText(msg);Task.Delay(100).Wait();//复制Win32Api.keybd_event((byte)Functions.VK_LCONTROL, 0, (int)Functions.KEYEVENTF_KEYDOWN, 0);Task.Delay(100).Wait();Win32Api.PostMessage(SunnyLink.MainWindowHandle, (int)WMessages.WM_KEYDOWN, (int)System.Windows.Forms.Keys.V, 0);Task.Delay(1).Wait();Win32Api.keybd_event((byte)Functions.VK_LCONTROL, 0, (int)Functions.KEYEVENTF_KEYUP, 0);Task.Delay(2000).Wait();//选择用户x 321; y 159;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Task.Delay(100).Wait();}public void sendMsg(Image image){if (SunnyLink null){Console.WriteLine(请打开目标程序窗口之后重试);return;}var x 357;var y 540;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Clipboard.SetImage(image); Task.Delay(10).Wait();//复制Win32Api.keybd_event((byte)Functions.VK_LCONTROL, 0, (int)Functions.KEYEVENTF_KEYDOWN, 0);Task.Delay(100).Wait();Win32Api.PostMessage(SunnyLink.MainWindowHandle, (int)WMessages.WM_KEYDOWN, (int)System.Windows.Forms.Keys.V, 0);Task.Delay(1).Wait();Win32Api.keybd_event((byte)Functions.VK_LCONTROL, 0, (int)Functions.KEYEVENTF_KEYUP, 0);//发送消息Task.Delay(100).Wait();x 920; y 570;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));x 940; y 610;Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONDOWN, 0, x (y 16));Win32Api.PostMessage(SunnyLink.MainWindowHandle, (uint)WMessages.WM_LBUTTONUP, 0, x (y 16));Task.Delay(100).Wait();}}
}运行测试class Program{[STAThreadAttribute]static void Main(string[] args){SunnyLinker sunnyLinker new SunnyLinker();//找到用户进程程序名.FindUser(1234567);//发送文本for (int i 0; i 50; i){进程程序名.SendMsg($[雪花][雪花][雪花]);进程程序名.SendMsg($你好{i});}//发送图片Image img Image.FromFile(img.jpeg);进程程序名.sendMsg(img);}}