WinCE 6 0 禁用觸控螢幕的幾種方法

2021-06-11 23:36:52 字數 1167 閱讀 4715

wince 6.0 禁用觸控螢幕的幾種方法:

在wince 6.0中觸控螢幕是gwes(graphic windowing and event system)的一部分,在系統啟動時,就直接載入到gwes系統中,沒有通用的api能夠使能或者禁止觸控螢幕。但是在實際的使用過程中,有些使用者希望觸控螢幕可以被禁止並在需要的時候恢復其功能,因此,我搜尋了很多資料。禁止觸控螢幕的常用的方法總結如下,由於小弟剛剛接觸wince,難免有不妥之處,還望各位大俠指正。

1.可以在應用層過濾掉觸控螢幕上報的訊息,或者讓應用程式不對觸控螢幕上報的訊息作出響應;

2.遮蔽觸控螢幕中斷,需要在驅動中增加相應的介面**用層呼叫;

3.修改登錄檔,使觸控螢幕不能工作;

觸控螢幕的登錄檔項為[hkey_local_machine/hardware/devicemap/touch],可以修改登錄檔中觸控螢幕動態庫的名字即devicename的鍵值實現,但需要重啟。重啟時由於觸控螢幕動態庫的名字不正確,gwes系統不能載入觸控螢幕驅動,導致觸控螢幕失效。恢復觸控螢幕的使用當然要將登錄檔中觸控螢幕驅動的名字修改回正確的並重啟。這種方法需要重啟,顯然有些不靈活。

4.動態載入觸控螢幕驅動(動態庫),然後通過getprocaddress()函式獲取touchpaneldisable()等函式的指標,並執行,c++實現的**如下;

hinstance hmodule = loadlibrary(l"touch.dll");

if(hmodule == null)

typedef void (callback *tpdis)(void);

tpdis tpdisable = (tpdis)getprocaddress(hmodule, l"touchpaneldisable");

if(tpdisable == null)

tpdisable();

freelibrary(hmodule);

此方法我曾做過測試,各個函式的返回值正常,但最後呼叫tpdisable()函式之後並沒有實現觸控螢幕的禁用,不知道原因是什麼!

5.同樣也是在驅動中增加相應的介面,**用層呼叫,不過可以通過直接關閉觸控螢幕的電源來實現,具體實現時可以直接在驅動中呼叫tsp_poweroff()函式。不過需要注意的是,在系統睡眠又被重新喚醒時,系統會自動重啟開啟觸控螢幕的電源,還需要在驅動中做一點處理,不過很容易實現。

wince觸控螢幕介面定製

將calibrui 資料夾下 postlink.dat 檔案dir ad b projectoakroot files intltrns obj tgtcpu wincedebug clone locales.txt 改為 dir ad b publicroot common oak lib tgt...

WinCE5 0下觸控螢幕的校準

幫朋友除錯乙個應用程式,應用程式搞定後,定製到系統內後,開機自動執行的時候,觸控螢幕無法使用,可能bsp不是最新的版本,不過自己順便可以學習下,校準觸控螢幕。我把ce裡自帶的那個觸控螢幕校準程式開機自啟動,校準過後,檢視登錄檔裡的值,發現很奇怪,竟然出現負值 1144,920 2332,1652 2...

wince7下的觸控螢幕驅動

在嵌入式系統中較為常用的是四線電阻式觸控螢幕,通過檢測x軸和y軸的電壓,來確定觸點的位置。一般觸控螢幕系統結構為 觸控螢幕 觸控螢幕控制器 處理器。wince7下觸控螢幕的驅動分為pdd層 位於bsp目錄中 和mdd層 位於public目錄中 pdd層和mdd層通過ddsi介面函式連線,mdd層和上...