我想用一個程序在一台電腦A上按一個鍵在另一台電腦B上打出同樣的字符來
這個小程序的實現方法是在兩台電腦上用一根線連接
這根線一頭是USB另一頭是PS2
電腦A插入線的USB端,電腦B插入線的PS2端,程序通過控制電腦A的USB模擬鍵盤輸出一個字符,在電腦B上,通過PS2接受字符。
我在一彩票站見過這樣的線,不知道名字,它的原理就是在電腦上羅列出要打印的彩票,然后按開始打印,彩票機就像是人為的按鍵(按彩票機的小鍵盤),打印出電腦里挑選出的彩票,
不知道各位大俠誰知道這線的名字叫什么?不是彩票機專用的吧?能在市場買到嗎?
11 个解决方案
買一根兩頭的USB線,再加一個USB轉PS2的轉換接口
補充下,我寫了個小程序,去檢測USB端口,當兩台電腦用USB和PS2的線連接好后,程序檢測不到出來的這個USB端口,所以我無法去掉用USB的設備路徑,不能用
CreateFile(HCName,
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
這個函數,因為我不知道,HCName的值
這個要用單片機模擬,因為需要模擬PS2接口的協議,實際上,USB是異步通訊,而且是由底層控制的。PS/2 鍵盤口是鍵盤口是同步串行協議。雙方無法兼容。
你可以這樣做:
1 鍵盤口輸入的是鍵盤掃描碼。你從網上搜索一個碼表,發送之前轉換一下。
2 用並口(也就是打印口)來控制發送:
(1)做一根線,並口的一個數據為連接到鍵盤口的 Data(2),另一個數據位連接到鍵盤口的 Clock(6)。
(2)鍵盤口的通訊協議:
1個起始位 總是邏輯0
8個數據位 (LSB)低位在前
1個奇偶校驗位 奇校驗,如果數據位中1的個數為偶數,校驗位就為1;如果數據位中1的個數為奇數,校驗位就為0
1個停止位 總是邏輯1
(3)PC 機發送數據之前,要先把時鍾線和數據線置為請求發送的狀態。PC 機通過下拉時鍾線大於100μs來抑制通訊,並且通過下拉數據線發出請求發送數據的信號,然后釋放時鍾。當 ps/2設備 檢測到需要接收數據時,它會產生時鍾信號並記錄下面8個數據位和一個停止位。主機此時在時鍾線變為低時准備數據到數據線,並在時鍾上升沿鎖存數據。
InitialJ,先謝謝你這么詳細的解答了
不過我暫時還不想浪費我的打印端口,我還是想在USB端口上實驗下,因為我見過彩票點的快速打印用的確實是USB到PS2傳送,而且我用USB的鍵盤也確實能通過那個PS2的轉接頭在電腦上打出字符,我感覺USB和PS2是可以兼容的
這么一說我想起了點什么。是不是我可以通過一種什么樣的方法把我的電腦A(插USB得電腦)模擬成鍵盤,就像我把PS2轉接頭上把連接電腦A的那根USB線單獨拔下,然后再轉接頭上再插上USB鍵盤,(ps2轉接頭一直接在電腦B的PS2口上),然后我的電腦b上,鼠標出現了個小沙漏,一會沒了后,我的USB鍵盤就可以用了.
我對WINOWS的驅動原理幾乎不了解,我不知道,我將這個USB鍵盤插到PS2轉接頭上后,都發生了什么?使得WINDOWS最后認出了這是個鍵盤。能解釋下嗎?或許從這個原理上,我可以把電腦A模擬成鍵盤
謝謝InitialJ您的幫忙
能順便看看我這個帖子嗎?我找了個辦法,先用USB轉COM再用COM轉PS2看你能否解決下
http://topic.csdn.net/u/20100801/20/6070f4a7-d2cc-407d-956b-89c1e68f3262.html