c#調用觸滑輸入法實現觸摸屏鍵盤功能

背景

最近在做一個項目,用戶端是觸摸屏,涉及到一些表單數據的操作,因為是沒有外接的鼠標鍵盤,所以想著當用戶在操作表單的時候,能夠把軟件鍵盤輸入法給調出來使用。

什么是觸滑輸入法

觸滑輸入法Swype,是針對觸摸屏這種輸入方式的革命性改進產品,Swype根據滑動的軌跡,智能分析并自動拼寫出所輸入的單詞。由于這種輸入方式不需要手指離開屏幕,因此被人稱作滑行輸入。

網上找了下,發現了多文輸入法是不錯的選擇,還有對應的sdk,看了下介紹。專為觸控一體機設計的智能輸入法,包含有以下功能: →進入新站點 支持全鍵盤、九宮格(T9模式)智能拼音、身份證鍵盤,數字鍵盤等。支持手寫識別。支持智能筆畫(T9筆畫)。可以...

于是說干就干。

代碼實現

1、加載動態庫

private const int WM_COPYDATA = 0x004A;// 結構定義 public struct CopyDataStructIN{public IntPtr dwData;public int cbData;public IntPtr lpData;}//1[DllImport("dwApiLib.dll", EntryPoint = "DWAPI_SendCmdA", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]private static extern bool DWAPI_SendCmdA(StringBuilder fullPath);[DllImport("User32.dll")]public static extern int RegisterWindowMessage(string Name);

2、設置開機啟動

private void Form1_Load(object sender, EventArgs e){// 輸入法主程序:DWMain.exe// 它應該是隨電腦開機啟動,如果沒有啟動,你也可以在這里啟動它。// 路徑:安裝目錄\bin\windwos32\DWMain.exetextBox2.LostFocus += new EventHandler(txt_LostFocus); //失去焦點后發生事件textBox2.GotFocus += new EventHandler(txt_GotFocus);  //獲取焦點前發生}

3、鼠標在文本框的時候,調用顯示方法

// 顯示private void buttonShow_Click(object sender, EventArgs e){DWAPI_SendCmdA(new StringBuilder("show"));}

4、離開的時候,退出輸入法

// 退出輸入法private void buttonClose_Click(object sender, EventArgs e){DWAPI_SendCmdA(new StringBuilder("close"));}

效果圖如下

f7ac73f832baf704bf21a9594de80c17.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280826.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280826.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280826.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Teradata天睿公司推出適用各種部署環境的全球最強分析數據庫

Teradata天睿公司(Teradata Corporation,紐交所:TDC)推出Teradata Everywhere?,成為業內首家在多種公有云、托管云和本地部署環境下部署全球最強海量并行處理(MPP)分析數據庫的廠商。這些部署環…

[轉載]C/C++框架和庫

C/C框架和庫 裝載自:http://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419值得學習的C語言開源項目 Webbench Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的性能&#…

如何使用智能鈴聲避免在Android中令人尷尬的大聲鈴聲

Choosing a ringtone volume can be hard – there is no one setting that is right for all environments. What works perfectly at home may be too quiet for when you’re on the train, but too loud for the office. Intelligent Ringer can be used to adjust ringto…

為什么要把類設置成密封?

前幾天筆者提交了關于FasterKvCache的性能優化代碼,其中有一個點就是我把一些后續不需要繼承的類設置為了sealed密封類,然后就有小伙伴在問,為啥這個地方需要設置成sealed?提交的代碼如下所示:一般業務開發的同學可能接…

powershell 常用命令筆記

常用集合,方便后續復制粘貼 # 判斷文件在不在 # 輸出文件 IF(!(test-path $filePath)) {$result|Out-File $filePath }# 讀取txt $result(Get-Content $filePath -TotalCount 1).Trim() $result# 刪除文件 remove-item "C:\wistron\Datasource\spiderPort.txt…

Linux 性能監控 : CPU 、Memory 、 IO 、Network

一、CPU 1.良好狀態指標 CPU利用率&#xff1a;User Time < 70%&#xff0c;System Time < 35%&#xff0c;User Time System Time < 70% 上下文切換&#xff1a;與CPU利用率相關聯&#xff0c;如果CPU利用率狀態良好&#xff0c;大量的上下文切換也是可以接受的 可…

Java 打飛機(小游戲)[版權非本人 本人制作收藏整理]

今天在網絡上 看到一個純java的小游戲 代碼copy到 myeclipse中 居然效果還不錯 這是一些效果圖 當然了 圖片是我自己找的 有心興趣的朋友可以做的好看一點 具體的代碼 都放在自己的文件里去了 那么可以去下載 https://i.cnblogs.com/Files.aspx 轉載于:https://www.cnblogs…

Cygwin使用指南

1 引言cygwin是一個在windows平臺上運行的unix模擬環境&#xff0c;是cygnus solutions公司開發的自由軟件&#xff08;該公司開發了很多好東西&#xff0c;著名的還有eCos&#xff0c;不過現已被Redhat收購&#xff09;。它對于學習unix/linux操作環境&#xff0c;或者從unix到…

nest 架構_當有人打來您的Nest Hello時,如何讓Google Home通知您

nest 架構The Nest Hello can alert you on your phone whenever someone rings your doorbell, but if you have a Google Home, you can also have Google Assistant audibly announce that someone is at the door. 無論何時有人按下門鈴&#xff0c; Nest Hello都會在電話上…

如何序列化派生類

前言假設有一個 Person 抽象基類&#xff0c;其中包含 Student 和 Teacher 派生類&#xff1a;public class Person {public string Name { get; set; } }public class Student : Person {public int Score { get; set; } }public class Teacher : Person {public string Title…

OPC Client “failed to execute OPCENUM” 解決方法

進入cmd重新執行 OpcEnum.exe /regserver 即可。

django07: 模板語言(舊筆記)

詳見&#xff1a;https://www.cnblogs.com/liwenzhou/p/7931828.html#autoid-2-3-6 包含&#xff1a; 模板 塊 組件 靜態文件

block,inline和inline-block概念和區別

block&#xff1a;block-level elements (塊級元素) &#xff0c;inline&#xff1a; inline elements (內聯元素)。block元素通常被現實為獨立的一塊&#xff0c;會單獨換一行&#xff1b;inline元素則前后不會產生換行&#xff0c;一系列inline元素都在一行內顯示&#xff0c…

Hadoop3.0 WordCount測試一直Accept 狀態,Nodes of the cluster 頁面node列表個數為0

起因是我運行wordcount測試一直卡主&#xff0c;不能執行&#xff0c;一直處于 Accept 狀態&#xff0c;等待被執行&#xff0c;剛開始是各種配置yarn參數&#xff0c;以及host配置&#xff0c;后來發現還是不行 hadoop 集群安裝完成后&#xff0c;在50070的 HDFS 管理后臺能看…

nexus 手動增加_如何使用Google的工廠圖像手動升級Nexus設備

nexus 手動增加Google’s Nexus devices are supposed to receive timely updates, but the staggered rollout means it can take weeks for devices to receive over-the-air (OTA) updates. Luckily, there’s a faster (and geekier) way to install the latest version of…

教你創建Google網站地圖Sitemap.xml(轉)

http://teachmyself.blog.163.com/blog/static/18881422920119895248288/ Sitemap.xml是 google搞出來的&#xff0c;也就是網站地圖&#xff0c;不過這個網站地圖是用xml寫的&#xff0c;而且要按google的標準來寫&#xff0c;并且要將寫出來的這個文件 sitemap.xml上傳到自己…

Oracle存儲過程語法

創建基本的存儲過程 1 CREATE OR REPLACE PROCEDURE MyProName IS 2 BEGIN 3 NULL; 4 END; 行1:CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle數據庫去創建一個叫做skeleton存儲過程, 如果存在就覆蓋它; 行2:IS關鍵詞表明后面將跟隨一個PL/SQL體。 行3:BEGIN關鍵詞表…

WPF-16 圖形處理

我們這節主要介紹WPF常用畫圖標簽&#xff0c;由于WPF圖形處理設計大量篇幅 ,我們在這里拋磚引玉&#xff0c;具體更多的學習資料鏈接https://github.com/microsoft/WPF-Samples/tree/master/Graphics 該鏈接中微軟提供了大量的學習Demo&#xff0c;WPF圖形處理最大的區別在于…

powershell 文件/文件夾操作

新建文件夾 New-Item -ItemType Directory -Force -Path $TargetPath復制文件夾到另外文件夾 Copy-Item <源文件夾> <新文件夾> -recurse -force 復制文件&#xff08;與修改文件名&#xff09; // 達到復制文件到新文件夾&#xff0c;及修改文件名效果 copy-…

純CSS制作各種各樣的網頁圖標(三角形、暫停按鈕、下載箭頭、加號等)

三角形 <div class"box"></div> <style>.box{ width: 0;height: 0;border-top: 50px solid transparent;border-bottom: 50px solid transparent;border-left: 50px solid transparent;border-right: 50px solid red; } </style> 平行四邊形…