c# 如何调用win8自带的屏幕键盘(非osk.exe)

C#调用win10系统自带软键盘的方法 阅读详情
	private const Int32 WM_SYSCOMMAND = 274;
        private const UInt32 SC_CLOSE = 61536;
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern bool PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        private static extern int RegisterWindowMessage(string lpString);
 
        //显示屏幕键盘
        public static int ShowInputPanel()
        {
            try
            {
                dynamic file = "C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe";
                if (!System.IO.File.Exists(file))
                    return -1;
                Process.Start(file);
                return SetUnDock();
            }
            catch (Exception)
            {
                return 255;
            }
        }
 
        //隐藏屏幕键盘
        public static void HideInputPanel()
        {
            IntPtr TouchhWnd = new IntPtr(0);
            TouchhWnd = FindWindow("IPTip_Main_Window", null);
            if (TouchhWnd == IntPtr.Zero)
                return;
            PostMessage(TouchhWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
        }


        
C#跨平台调用系统软键盘:兼容Win7与Win10的TabTip与OSK实战 本文详细介绍了在C#中跨平台调用系统软键盘(TabTip与OSK)的实战方法,解决Win7与Win10兼容性问题。通过使用Wow64DisableWow64FsRedirection等API处理32/64位系统差异,提供智能选择策略和高级技巧,确保在不同Windows版本上稳定调用软键盘。 阅读详情

相关推荐

Unity PC端调用Windows系统软键盘(OSK.exe)实现无障碍文本输入

在软件交互设计中,文本输入是基础且关键的功能模块,其实现原理通常涉及用户界面与系统输入服务的协同。对于PC端应用,尤其是在触摸屏、大屏设备或无物理键盘的特殊场景下,确保输入功能的普适性成为提升用户体验和产品鲁棒性的重要技术考量。通过进程间通信技术,应用程序可以调用操作系统原生组件,如Windows自带的屏幕键盘程序(OSK.exe),这不仅能实现零成本、高兼容性的输入解决方案,还能无缝集成系统输入法,支持多语言复杂输入。这种技术方案的核心价值在于其作为“兜底”机制,保障了应用在各类硬件环境下的基础功能可用性

weixin_30607029的博客 467

C#Winform窗体与界面设计

本课程是针对C#Winform开发人员的基础性课程,详尽的介绍C#Winform窗体与界面的设计,通过提供实例,让C#Winform开发人员掌握相关程序设计技巧,为后面学习完整的实战课程打下较好的基础。

Unity PC端输入框软键盘唤醒:从OSK.exe集成到Windows消息通信

本文针对Unity PC端应用在触摸屏设备上输入框无法自动弹出软键盘的问题,提供了稳定可靠的解决方案。通过集成系统自带的osk.exe程序,并利用Windows API的FindWindow与PostMessage函数进行窗口通信,实现了点击输入框自动唤醒、失去焦点自动关闭的流畅交互体验。文章详细阐述了实现原理、代码示例及避坑指南,特别适合信息查询机、自助终端等商业项目。

weixin_29013129的博客 334

C# 调用Win8系统键盘

private const Int32 WM_SYSCOMMAND = 274; private const UInt32 SC_CLOSE = 61536; [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] private static extern b...

a664875455的博客 297

Win10系统下C#调用TabTip软键盘的完整指南(兼容32/64位程序)

本文提供了在Windows 10系统下,使用C#调用系统软键盘(TabTip和osk.exe)的完整实战指南。针对32位与64位程序的兼容性挑战,文章深入解析了Wow64DisableWow64FsRedirection等关键机制,并给出了健壮的进程管理、版本自适应调用及异常处理方案,帮助开发者解决工业平板、自助终端等触控应用中的键盘集成难题。

weixin_29253711的博客 390

c#调用系统键盘(触摸键盘和屏幕键盘)

利用c#调用系统的键盘,windows系统在win7以及更高版本已经有触摸键盘,在windows系统的平板上安装winform程序时,需要调用触摸键盘。

C#调用Windows系统自带触摸键盘的方法

C#调用Windows系统自带触摸键盘的方法

不在同一频道上的呆子的博客 2701

VC基于Windows API实现屏幕软键盘

内容索引:VC/C++源码,系统相关,软键盘  基于Windows API实现的屏幕软键盘,一个比较有用的小程序,也是很好的编程参考资料,帮你更进一步了理解Windows API的使用方法。程序里面有Button的Subclassing两个东西,同时自己处理鼠标消息;钩子函数基于CodeGuru上的一个OnScreenKeyboa。

C# 调用键盘

首先我们说的键盘指的是:tabtip和osk。但这两个所在的位置不同,样貌也不一样 C:\Windows\System32\osk.exe C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe 调用之前,最好先杀一下之前的键盘进程 var processes = Process.GetProcessesBy...

1077

手势控制 Python !Leap Motion Python 开发教程 (二)

手势控制 Python !Leap Motion Python 开发教程 (二) 现在进入正题,我来给大家总结一下我在使用 Leap Motion 开发过程中的经验以及学到的东西,其中我会概括以及翻译官方给出的注释,为了让这些注释更加通俗易懂,让大家更好理解。 回顾 在上一篇文章中我们讲了如何配置 Leap Motion 的 Python 2.7 的开发环境,如果您还没有配置好您的开发环境,可以参...

成畅的博客 3191

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7311

U3D如何调用Win10的触摸键盘Touch KeyBoard非屏幕键盘(OSK.exe)

最近一个项目要用到Windows的触摸键盘的功能,试过OSK屏幕键盘总感觉不怎么好用,试了下Win10自带的TabTip触摸键盘发现比较符合要求这里贴上U3D呼出和隐藏触摸键盘Touch KeyBoard也就是TabTip.exe的方法,win8理论上也可以用 [DllImport("user32")] static extern IntPtr FindWindow(String sClass...

qq_26355993的博客 4798

避开奸商套路!手把手教你用Thaiphoon Burner和CPU-Z,一眼看穿内存SPD信息有没有被篡改

本文教你使用Thaiphoon Burner和CPU-Z工具,快速识别内存SPD信息是否被篡改,避免购买到虚标频率或假冒颗粒的内存条。通过详细步骤和实战案例,帮助用户掌握内存检测技巧,确保硬件购买的透明度和安全性。

weixin_32228501的博客 679

C#调用Windows(8/10)自带的虚拟键盘

以下是调用代码: private const Int32 WM_SYSCOMMAND = 274; private const UInt32 SC_CLOSE = 61536; [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] private static extern bool PostMes...

weixin_34345753的博客 1672

Python 爬虫实战:抓取新闻网站上的新闻标题和内容

随着信息化的进展,新闻网站已经成为人们获取新闻和时事资讯的主要途径。许多新闻网站提供了丰富的内容,涵盖了社会、政治、科技、娱乐等多个领域。通过抓取新闻网站的内容,我们可以分析新闻的趋势,获取某一领域的最新动态,甚至为数据分析和机器学习提供数据支持。本文将详细介绍如何使用 Python 编写爬虫,抓取新闻网站上的新闻标题和内容。requests:发送 HTTP 请求,获取页面内容。:解析 HTML 页面并提取数据。Selenium:抓取动态加载的网页内容。新闻API。

2201_76125261的博客 3407

【深度学习新浪潮】什么是system 1和system 2?

System 1(快速生成)指大模型直接基于输入生成响应,无需显式中间推理步骤。例如,GPT-4等模型在默认状态下通过Transformer直接输出结果,擅长快速回答简单问题或生成连贯文本,但在复杂逻辑任务中可能出错。这类模型的内部计算以向量形式隐式进行,难以处理符号推理等需要离散决策的任务。System 2(慢速推理)指模型通过生成中间token(如思维链、分步推导)或多次调用LLM进行复杂推理。

专注:太空算力、AI infra、异构调度、大模型成本工程 924

跟我一起学“网络安全”通识-Windows

本篇文章是《跟我一起学“网络安全”通识》的第二章,介绍了Windows操作系统里的一系列基础知识,包括:Windows常用dos命令、WindowsServer搭建AD域、Windows之震网三代漏洞实验等。

Cool_foolisher的博客 3532

YOLO26涨点改进| TGRS 2026 | 独家自研创新、检测头改进篇| AHATHead自适应混合注意力检测头,二次创新,强化特征表达与目标判别能力,适合遥感小目标检测、小目标检测有效涨点

🔥本文提出了一种改进YOLO26模型的AHATHead自适应混合注意力检测头,通过融合全局与局部注意力机制增强特征表达能力。该方法采用动态权重分配策略,在预测阶段自动调整关键区域与通道特征权重,有效提升小目标和密集场景的检测性能。实验表明,AHATHead在保持较高推理效率的同时,显著提高了目标定位精度与类别判别能力。文章详细介绍了模块结构、实现原理和代码集成步骤,并提供了两种改进配置方案(yolo26_AHATHead.yaml和yolo26_RFHA-YOLO-AHATHead.yaml)

Ai缝合怪、助力小伙伴高效发论文 158

C#调用触摸屏小键盘

//启动触摸键盘             if (File.Exists(MainModel.ServerPath + @"osk.exe"))//系统小键盘exe文件路径             {                 System.Diagnostics.Process.Start(MainModel.ServerPath + @"osk.exe");           

痞子杨 6235

如何做好软件需求分析?

软件需求分析也称为系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。软件开发一般包括:可行性分析、需求分析、软件设计、软件开发、软件测试、软件实施、软件服务等步骤,需求分时软件开发的第一步骤。用户需求分析是指在系统设计之前和设计、开发过程中对用户需求所作的调查与分析,是系统设计、系统完善和系统维护的依据。

qq_41854911的博客 1415

Python爬取公交线路信息及站点shp数据 文末附数据下载地址

三、现在已经获取到了各个线路名称、链接,以及所途径的上下行站点,那么接下来就应该对开始对第三页url进行信息采集,即本次爬虫的最终目的:爬取所有站点的GPS坐标数据。但坑就坑在,二环一号线属于环线,所以只有左侧有站点数据,而其他非环线车次的站点数据分有上下行,如果用正则匹配,则分不清楚到底哪些是上行站点哪些是下行站点。以前爬过百度地图,当时用的是API平台,加上网站比较规范,所以标签节点什么的都比较清晰,但这次由于特殊原因所选择的网站为公交网,废话不多说直接开始吧。checi=二环一号线。

J_Giser的博客 1316
上一篇: .net强制退出主窗口的方法——Application.Exit()方法和Environment.Exit(0)方法
下一篇: build/envsetup.sh 简介
常用技术
博客等级 码龄17年 91粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值