C#如何在任意程序的当前光标处输出字符串呀?

时间:2021-09-08 10:31:04
比如程序运行后。可以在QQ聊天窗口或记事本 或 csdn发帖框等等可以输入字符串的地方的当前光标处输出呢?

8 个解决方案

#1


使用SendMessage向找到的句柄发送WM_CHAR消息。

#2


这个很难,
只有搞测试的时候这些才有可能..

#3


引用 1 楼 hbxtlhx 的回复:
使用SendMessage向找到的句柄发送WM_CHAR消息。


不是呀。我的意思是能不能向任意地方输出字符串呀?像按键精灵里的 

#4


引用 3 楼 andyqq8 的回复:
引用 1 楼 hbxtlhx 的回复:
使用SendMessage向找到的句柄发送WM_CHAR消息。


不是呀。我的意思是能不能向任意地方输出字符串呀?像按键精灵里的

你的意思是不是查找当前窗口句柄,然后向这个句柄发送字符串是吧

#5


不知道你是不是这个意思:
如下的代码像一个指定16进制的句柄的窗口发送字符'A'。


[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
public const int WM_CHAR = 0x102;

private void button1_Click(object sender, EventArgs e)
{
SendMessage((IntPtr)int.Parse(this.textBox1.Text,  System.Globalization.NumberStyles.HexNumber), WM_CHAR, 'A', 0);
}

#6


我的意思是经常有些同样的内容需要输。复制粘帖有些麻烦。能不能保存在程序里。按下就在当前电脑的光标处输出这个内容来呵呵

#7


像按键精灵里的 SayString "输出字符串" 这个命令的功能一样

#8



                private void Form1_Load(object sender, System.EventArgs e)
{
for(int i=1000000;i>0;i--)
{
int mSencond = 1000;
System.Threading.Thread.Sleep(mSencond);
SendKeys.SendWait("倒数:"+i.ToString());
System.Threading.Thread.Sleep(mSencond);
SendKeys.SendWait("{ENTER}");
}
Application.Exit();
}

#1


使用SendMessage向找到的句柄发送WM_CHAR消息。

#2


这个很难,
只有搞测试的时候这些才有可能..

#3


引用 1 楼 hbxtlhx 的回复:
使用SendMessage向找到的句柄发送WM_CHAR消息。


不是呀。我的意思是能不能向任意地方输出字符串呀?像按键精灵里的 

#4


引用 3 楼 andyqq8 的回复:
引用 1 楼 hbxtlhx 的回复:
使用SendMessage向找到的句柄发送WM_CHAR消息。


不是呀。我的意思是能不能向任意地方输出字符串呀?像按键精灵里的

你的意思是不是查找当前窗口句柄,然后向这个句柄发送字符串是吧

#5


不知道你是不是这个意思:
如下的代码像一个指定16进制的句柄的窗口发送字符'A'。


[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
public const int WM_CHAR = 0x102;

private void button1_Click(object sender, EventArgs e)
{
SendMessage((IntPtr)int.Parse(this.textBox1.Text,  System.Globalization.NumberStyles.HexNumber), WM_CHAR, 'A', 0);
}

#6


我的意思是经常有些同样的内容需要输。复制粘帖有些麻烦。能不能保存在程序里。按下就在当前电脑的光标处输出这个内容来呵呵

#7


像按键精灵里的 SayString "输出字符串" 这个命令的功能一样

#8



                private void Form1_Load(object sender, System.EventArgs e)
{
for(int i=1000000;i>0;i--)
{
int mSencond = 1000;
System.Threading.Thread.Sleep(mSencond);
SendKeys.SendWait("倒数:"+i.ToString());
System.Threading.Thread.Sleep(mSencond);
SendKeys.SendWait("{ENTER}");
}
Application.Exit();
}