http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5308|回复: 9

[其他] C# 向其他窗体发送字符串!

[复制链接]
发表于 2012-12-24 00:26:31 | 显示全部楼层 |阅读模式
有一需求,提高输入速度,将一些常用的字符串做成按钮形式,然后将此窗体设置为顶层窗体,但不占用焦点(就像QQ五笔里面的特殊符号一样),实现点击一个按钮就发送按钮的text字符串。但现在遇到一问题,一直无法解决:
向被发送窗体发送字符串时,接收窗体的输入法一直困扰着我,我用的 SendKeys.Send(),它是模拟按键,然后到目标窗体时,输入法就会解析,然后无法实现发送目的!!!
请问如何解决!?另外,目标窗体的句柄可不唯一,因为是小助手类型的,呵呵,希望有人解答~~~


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2012-12-24 13:00:46 | 显示全部楼层
你在发送的时候关闭输入法,看看行不行
 楼主| 发表于 2012-12-24 17:17:14 | 显示全部楼层
如何关闭输入法,我能关闭当前窗体的输入法,却没法关闭全局输入法……
发表于 2012-12-24 17:39:15 | 显示全部楼层
[code=csharp] private void Form1_Load(object sender, EventArgs e)
        {
            foreach (InputLanguage ilanguage in InputLanguage.InstalledInputLanguages)
            {
                comboBox1.Items.Add(ilanguage.LayoutName);    //动态添加系统输入法
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            InputLanguage currentLanguage = InputLanguage.InstalledInputLanguages[comboBox1.SelectedIndex];
            InputLanguage.CurrentInputLanguage = currentLanguage;
            MessageBox.Show(this, "成功设置系统默认输入法!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }[/code]
目前我也只有修改当前的,系统Api还不清楚,找找吧网上,有了分享一下
 楼主| 发表于 2012-12-26 16:08:21 | 显示全部楼层
4楼的只能设置本窗体的输入法,而输入法则为每一个窗体保存了不同的设置!
说说我的思路:起初,我是想通过控制输入法来设计,但找了很多API,无法实现;然后换了下思路,调用系统剪贴板实现。
Clipboard.SetText();
然后模拟Ctrl+V:SendKeys.Send("^v");
因为程序限制,所以不能保存原剪贴板内容,所以建议最好在设置剪贴板之前保存剪贴板内容;
我无法获取目标窗体句柄,所以没法用SendMessage(),代替的是模拟按键SendKeys.Send()或SendKeys.SendWait(),当然,用keyboard_event也可以,但这些都是模拟按键,是会被目标窗体的输入法处理的。
发表于 2012-12-26 16:15:49 | 显示全部楼层
剪刀手 发表于 2012-12-26 16:08
4楼的只能设置本窗体的输入法,而输入法则为每一个窗体保存了不同的设置!
说说我的思路:起初,我是想通过 ...

解决了吗?
 楼主| 发表于 2012-12-26 16:20:31 | 显示全部楼层
admin 发表于 2012-12-26 16:15
解决了吗?

嗯,解决了,还附上了解决思路和关键代码,请往楼上看~~~
 楼主| 发表于 2012-12-26 16:20:34 | 显示全部楼层
admin 发表于 2012-12-26 16:15
解决了吗?

嗯,解决了,还附上了解决思路和关键代码,请往楼上看~~~
发表于 2012-12-26 16:24:22 | 显示全部楼层
剪刀手 发表于 2012-12-26 16:20
嗯,解决了,还附上了解决思路和关键代码,请往楼上看~~~

OK,恭喜
 楼主| 发表于 2012-12-26 16:29:40 | 显示全部楼层
admin 发表于 2012-12-26 16:24
OK,恭喜

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-23 18:47

© 2014-2021

快速回复 返回顶部 返回列表