C# 窗体如何获取外部程序光标焦点
做一个简单的form窗体 ,里面包含一个textbox,再做一个button。打算点击按钮后,让textbox里面的内容复制到光标焦点处的textbox(外部程序)中。如何实现? --------------------编程问答-------------------- 尝试GetFocus获得焦点组件的句柄,然后发送字符消息 --------------------编程问答-------------------- 楼上思路正确,具体如何实现看楼主了 --------------------编程问答-------------------- 可以先把自己的窗体扩展属性设置为浮动工具栏窗体(不获取焦点)。再用GUITHREADINFO可以获得目标窗体的光标(caret)状态,不过获取浏览器页面内的光标状态有点问题。 --------------------编程问答-------------------- win api....... --------------------编程问答-------------------- 能不能说具体点? --------------------编程问答-------------------- http://download.csdn.net/detail/yanghl1998/5534155 --------------------编程问答-------------------- 这个程序的思路有问题,你在自己设计的窗体上点击按钮,焦点就在你的按钮上,也就是说,你自己的窗体是活动窗体,你还如何让自己窗体中textbox里面的内容复制到光标焦点处的textbox(外部程序)中。 --------------------编程问答-------------------- lz你不是问过了吗?哈哈,答案在这里
http://bbs.csdn.net/topics/390482931?page=1#post-394719262 --------------------编程问答--------------------
/// <summary>
/// 向指定窗口发送字符串
/// </summary>
[DllImport("User32.dll", EntryPoint = "SendMessage")]
static extern int SendMessage(IntPtr hWnd, int msg, IntPtr wParam, string lParam);
//SendMessage参数
const int WM_KEYDOWN = 0x0100;//普通按键按下
const int WM_KEYUP = 0x0101;//普通按键放开
const int WM_SYSKEYDOWN = 0x104;//系统按键按下
const int WM_SYSKEYUP = 0x105;//系统按键按下放开
const int WM_SYSCHAR = 0x0106;//发送单个字符
const int WM_SETTEXT = 0x000C;//发送文本
const int WM_CLICK = 0x00F5;//模拟鼠标左键点击
const int WM_SETFOCUS = 0x0007;//设置焦点
SendMessage(userNameHwnd, WM_SETTEXT, IntPtr.Zero, "发送的内容"); //发送qq号码
userNameHwnd为你要输入内容的那个框的句柄,可以用spy++工具获取,获取不到的说明有保护,就要用定位来做了,很麻烦了。 --------------------编程问答--------------------
搜一下关键词“GUITHREADINFO”,http://cn.bing.com/search?q=GUITHREADINFO&go=&qs=n&form=QBLH&pq=guithreadinfo&sc=0-0&sp=-1&sk=。
有这么多介绍用法的,比如这个http://www.csharpwin.com/csharpspace/12773r5989.shtml。
建议楼主先读一下提问的智慧。
补充:.NET技术 , C#