开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 533|回复: 5
收起左侧

[已解决] 如何创建一个无法使用任何输入法的窗口

 关闭 [复制链接]
结帖率:100% (42/42)
发表于 2023-4-14 19:25:46 | 显示全部楼层 |阅读模式   湖南省永州市
14精币



就类似国外游戏的那种窗口,只能用英文键盘,任何输入法都无法使用的窗口

当然不需要像游戏窗口那样复杂,最基础的窗口就行,

有没有啥办法?

最佳答案

查看完整内容

[e=2].版本 2 .子程序 __启动窗口_创建完毕 .局部变量 旧输入句柄_窗口 .局部变量 旧输入句柄_编辑框 旧输入句柄_窗口 = ImmAssociateContext (取窗口句柄 (), 0) 旧输入句柄_编辑框 = ImmAssociateContext (编辑框1.取窗口句柄 (), 0) ' 恢复 ' ImmAssociateContext (取窗口句柄 (), 旧输入句柄_窗口) ' ImmAssociateContext (编辑框1.取窗口句柄 (), 旧输入句柄_编辑框) .版本 2 .DLL命令 ImmAssociateContext, 整数型, " ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (1/1)

签到天数: 1 天

发表于 2023-4-14 19:25:47 | 显示全部楼层   广东省广州市
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
旧输入句柄_窗口  
旧输入句柄_编辑框  
旧输入句柄_窗口 = ImmAssociateContext (取窗口句柄 (), 0)
旧输入句柄_编辑框 = ImmAssociateContext (编辑框1.取窗口句柄 (), 0)
' 恢复
' ImmAssociateContext (取窗口句柄 (), 旧输入句柄_窗口)
' ImmAssociateContext (编辑框1.取窗口句柄 (), 旧输入句柄_编辑框)
DLL命令名返回值类型公开备 注
ImmAssociateContext整数型 
DLL库文件名:
Imm32.dll
在DLL库中对应命令名:
ImmAssociateContext
参数名类 型传址数组备 注
hWnd 
hIMC 


评分

参与人数 1荣誉 +1 收起 理由
项目部004 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:88% (7/8)

签到天数: 11 天

发表于 2023-4-14 20:33:56 | 显示全部楼层   广西壮族自治区南宁市
python方法,可参考

创建一个无法使用任何输入法的窗口可能需要编写一个自定义的应用程序或者使用特定的编程语言和库来实现。以下是一个简单的示例,演示了如何使用Python和Tkinter库创建一个无法使用输入法的窗口。

```python
import tkinter as tk

def disable_input(event):
    return "break"

# 创建主窗口
root = tk.Tk()
root.title("无输入法窗口")

# 创建文本框
text_box = tk.Text(root, height=10, width=30)
text_box.pack()

# 绑定输入法事件,使其无法输入
text_box.bind("<KeyRelease>", disable_input)

# 进入主循环
root.mainloop()
```

在这个例子中,我们使用了Python的Tkinter库创建了一个简单的窗口,并在窗口中添加了一个文本框。通过使用`bind`方法,我们将文本框的`<KeyRelease>`事件与`disable_input`函数绑定,该函数返回`"break"`,使输入法无法输入到文本框中。这样,当用户点击文本框并试图输入时,输入法将无法输入任何内容。

需要注意的是,这只是一个简单的示例,并不能完全阻止所有输入法的使用,因为不同的输入法和操作系统可能有不同的行为。在实际应用中,可能需要使用更复杂的方法来实现完全禁用输入法的效果,例如通过屏蔽输入法的系统级别设置或者在应用程序中处理所有的输入事件。


回复

使用道具 举报

结帖率:88% (7/8)

签到天数: 11 天

发表于 2023-4-14 20:34:32 | 显示全部楼层   广西壮族自治区南宁市
VB方法  更接近易语言

在 Visual Basic (VB) 中创建一个无法使用任何输入法的窗口,可以通过以下步骤实现:

Step 1: 创建一个新的 VB 项目
打开 Visual Basic IDE,并创建一个新的 VB 项目。

Step 2: 添加一个新的窗体
在 VB 项目中,添加一个新的窗体(Form)。可以通过在 "项目资源管理器" 中右键单击项目,选择 "添加" -> "窗体" 来添加一个新的窗体。

Step 3: 在窗体的属性中设置
选择新添加的窗体,然后在 "属性" 窗口中进行设置。

3.1 设置 "BorderStyle" 属性为 0
将 "BorderStyle" 属性设置为 0,这将使窗体没有边框。

3.2 设置 "ControlBox" 属性为 False
将 "ControlBox" 属性设置为 False,这将隐藏窗体的标题栏和窗口控制按钮(最小化、最大化和关闭按钮)。

3.3 设置 "FormBorderStyle" 属性为 "None"
将 "FormBorderStyle" 属性设置为 "None",这将使窗体没有边框。

3.4 设置 "TopMost" 属性为 True
将 "TopMost" 属性设置为 True,这将使窗体在其他窗体之上显示,确保窗体不会被其他窗体遮挡。

3.5 设置 "MaximizeBox" 和 "MinimizeBox" 属性为 False
将 "MaximizeBox" 和 "MinimizeBox" 属性都设置为 False,这将隐藏窗体的最大化和最小化按钮。

3.6 设置 "KeyPreview" 属性为 True
将 "KeyPreview" 属性设置为 True,这将使窗体能够接收键盘事件。

Step 4: 编写代码以禁用输入法
在窗体的代码编辑器中,添加以下代码:

```vb
Private Sub Form_Load()
    Me.KeyPreview = True ' 确保窗体可以接收键盘事件
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
    KeyAscii = 0 ' 将键盘输入的 ASCII 值设置为 0,禁止输入
End Sub
```

以上代码通过在窗体加载时将 `KeyPreview` 属性设置为 True,确保窗体可以接收键盘事件。在窗体的 `KeyPress` 事件中,将键盘输入的 ASCII 值设置为 0,从而禁止输入法输入。

Step 5: 运行程序
保存并编译代码,然后运行程序。现在,你应该看到一个无边框、无法输入的窗体。在这个窗体上无法使用任何输入法进行输入。

希望以上步骤可以帮助你在 VB 中创建一个无法使用任何输入法的窗口。
回复

使用道具 举报

结帖率:95% (84/88)

签到天数: 23 天

发表于 2023-4-14 23:14:42 | 显示全部楼层   美国
C#可以直接设置
回复

使用道具 举报

结帖率:100% (42/42)

签到天数: 27 天

 楼主| 发表于 2023-4-14 23:24:39 | 显示全部楼层   湖南省永州市

  = = 用API创建的窗口,所以自带的那些组件都是没法设置的,所以来问问有没有别的办法,通过API之类的~~~实现
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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