求一个C#实现 我现在有一个功能,要求程序自动模拟敲击键盘输入信息。我的意思是当我运行这个功能时,它会自动按我的编码打字,就跟我敲击键盘一样。请各位老大提供一些思路。我以前听说过钩子,不过大都听说用来做信息拦截,不知道能不能主动发送信息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你知道你要输入的内容,那么可以对照KeyCode进行模拟操作的,钩子程序是取得已经点击过了的按钮内容 const int WM_COPYDATA = 0x004A; [DllImport("User32.dll", EntryPoint = "SendMessage")] private static extern int SendMessage( IntPtr hWnd, // handle to destination window int Msg, // message int wParam, // first message parameter ref COPYDATASTRUCT lParam // second message parameter ); [DllImport("user32.dll")] private static extern int SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam); //const int WM_CHAR = 0x0102; //IntPtr hwnd_win; //IntPtr hwnd_textbox; //hwnd_win = FindWindow(null, "Form4"); //string pa = AppDomain.CurrentDomain.BaseDirectory; //hwnd_textbox = FindWindowEx(hwnd_win, new IntPtr(0), null, "button2"); //const int BM_CLICK = 0x00F5; //COPYDATASTRUCT cds; //cds.dwData = (IntPtr)100; //cds.lpData = "Test Message"; //cds.cbData = 14; //Message msg = Message.Create(hwnd_textbox, BM_CLICK, new IntPtr(0), new IntPtr(0)); //// PostMessage(msg.HWnd, msg.Msg, msg.WParam, msg.LParam); ////SendMessage(hwnd_textbox, BM_CLICK, 0, ref cds); //SendMessage(hwnd_win, WM_COPYDATA, 0, ref cds); [DllImport("user32")] public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); //const byte VK_LWIN = 0x5B; //const byte VK_D = 0x44; //const int KEYEVENTF_KEYUP = 0x02; //const byte VK_L = 0x4C; //keybd_event(VK_LWIN, 0, 0, 0); //keybd_event(VK_L, 0, 0, 0); //keybd_event(VK_L, 0, KEYEVENTF_KEYUP, 0); //keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0); 先谢谢各位。记得以前试过SendMessage和Sendkey,但是不是所有的都可以,在记事本是没问题的,但是在其他程序中有时候就不行 但是在其他程序中有时候就不行-----》你的句柄没拿对吧先用Spy++看看 向数据库添加信息,如何在dataGridView中显示出来 判断字符是否符合.*形式 请问,如何给Winform程序打包 C#写文本文件问题 关于webrequest 和 webresponse c#定义二维数组 能不能把一个虚拟目录指向整个硬盘的所有磁盘分区(包括所有的C:\,D:\,E:\,...) 怎样给程序设置全局变量 多页打印 求指教 帮忙找下 我代码的问题 海康的DS系列摄像头,计划用外网访问,求方案 年周别查询 datagirdview的问题
private static extern int SendMessage(
IntPtr hWnd, // handle to destination window
int Msg, // message
int wParam, // first message parameter
ref COPYDATASTRUCT lParam // second message parameter
); [DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam); //const int WM_CHAR = 0x0102;
//IntPtr hwnd_win;
//IntPtr hwnd_textbox; //hwnd_win = FindWindow(null, "Form4");
//string pa = AppDomain.CurrentDomain.BaseDirectory;
//hwnd_textbox = FindWindowEx(hwnd_win, new IntPtr(0), null, "button2");
//const int BM_CLICK = 0x00F5;
//COPYDATASTRUCT cds;
//cds.dwData = (IntPtr)100;
//cds.lpData = "Test Message";
//cds.cbData = 14; //Message msg = Message.Create(hwnd_textbox, BM_CLICK, new IntPtr(0), new IntPtr(0));
//// PostMessage(msg.HWnd, msg.Msg, msg.WParam, msg.LParam);
////SendMessage(hwnd_textbox, BM_CLICK, 0, ref cds);
//SendMessage(hwnd_win, WM_COPYDATA, 0, ref cds); [DllImport("user32")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); //const byte VK_LWIN = 0x5B;
//const byte VK_D = 0x44;
//const int KEYEVENTF_KEYUP = 0x02;
//const byte VK_L = 0x4C;
//keybd_event(VK_LWIN, 0, 0, 0);
//keybd_event(VK_L, 0, 0, 0);
//keybd_event(VK_L, 0, KEYEVENTF_KEYUP, 0);
//keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
-----》
你的句柄没拿对吧
先用Spy++看看