佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

12
返回列表 发新帖
楼主: 原久美子

模拟键盘

[复制链接]
 楼主| 发表于 1-9-2009 09:41 PM | 显示全部楼层
嗯...看来libusb-win32 并不适合...

可是我一直google都没有usb 的socket programming... 只有tcp/ip, 还是给usb的另有其名?
回复

使用道具 举报


ADVERTISEMENT

发表于 1-9-2009 10:32 PM | 显示全部楼层
USB是一个protocol 有所谓的handshaking, etc etc...
Host Controller就是在你PC里面(看看device manager > USB Controller...那些UHC & EHC)……主要是initiate device handshaking的……负责discover new device,control device使用的秩序,etc etc.....所以,很明显那个driver是给host用的。给device用的USB driver又是不同的……
简单来看,USB就像是server/client protocol。

说到socket programming……可能你误会了我的意思。在linux的空间来说,任何一个device(包括CPU/MEM/Ethernet...都是可以通过"socket"来communicate:request port access right  (open port) -> read/write port (buffered) -> and so on……这个是一个很general term) 但是,socket programming都被泛指为TCP/IP的通讯。不过概念都一样……你的情况,要去看看USB怎样跑。但是,我不怎么认为你需要这么做。你用了synergy2吗?研究过它怎样操作吗?还有,可以再次讲过你的project concept……还是很模糊

我目前寻找到了usb的library, 叫libusb-win32, 但是研究了好久,找了很多资料,说它只能用在host controller... 我一直都搞不清楚这个是什么... 而且用它里面的usb_find_busses(),一直得到0而已. 我是否用错了呢? 我这个情况,是不是也算是host controller? 还是我应该写个hid?(当然我希望可以用library... )

我只能说,你用错了它的function……去读它们的documentation & example (一直拿到0,是因为你没有加/减 USB bus的关系)
你在PC执行的……你说呢?
HID不用你写(你的USB keyboard就是HID)……而是需要你去discover
回复

使用道具 举报

 楼主| 发表于 1-9-2009 10:46 PM | 显示全部楼层
原帖由 faiko 于 1-9-2009 10:32 PM 发表
USB是一个protocol 有所谓的handshaking, etc etc...
Host Controller就是在你PC里面(看看device manager > USB Controller...那些UHC & EHC)……主要是initiate device handshaking的……负责discover  ...


嗯..我读了它的documentation很久了..还跟他example一样写法,可是就只得到0...

还是我可以用COM port 来进行read and write 呢?(set baud rate, bit parity等,两边都用app, 一边write,一边read)

(在我project里,是没有使用到keyboard的...)synergy 2 我还没有拿来用,因为我不是要让两架电脑share同一个keyboard 或mouse... 目前最想懂的是,怎样把data寄过去,并且virtual keyboard怎么function -- typing in the active application.

[ 本帖最后由 原久美子 于 1-9-2009 10:54 PM 编辑 ]
回复

使用道具 举报

发表于 1-9-2009 11:56 PM | 显示全部楼层

回复 23# 原久美子 的帖子

真的怀疑你有没有去读清楚
usb_find_busses在正常的情况下,是return 0(因为很少情况你会增加/减少……不肯定加hub是否会加bus)
你应该要用usb_get_busses……然后一个一个去列出来。Device Class 0x03是HID

嗯……你用什么OS? Vista可能不support这个lib。这点我不太确定……

怎样去connect,就用怎样的protocol去communicate……你说没有用keyboard,那要怎样打字?就算是virtual keyboard也要用mouse来control。

你都还没去看synergy怎样操作,就认定它不适合你。这就是你的问题 你要知道data怎样被transfer从一个电脑去到一个电脑……这个software本来就是这样跑的。我说是share keyboard……那你知道这个software怎样去share keyboard吗?
回复

使用道具 举报

发表于 2-9-2009 05:17 PM | 显示全部楼层
很明显的LZ找错方向了......
要把PC A的DATA传去PC B....简单的OVER LAN/INTERNET用TCP/IP, UDP的SOCKET PROGRAMING....WIN32有很多的SAMPLE.....

用COM PORT.... LZ先找条CABLE可以CONNECT到PC A <-> PC B.....
COM的SEND DATA和UDP是很像的......SAMPLE...VB6应该有.....

USB.....没做过.....

LZ要的是通过cable把字"打"在别的电脑上面吧了.....

LZ的PROJECT的卖点.....讲真的我都很BLUR....
KEYBOARD SIMULATOR......应该跟SIMULATE USB KEYBOARD的SIGNAL没关系吧.....

一些COMMERCIAL的ACTION REPLAY程序跟LZ的FYP很像....只是没有CLIENT/SERVER吧了...
回复

使用道具 举报

 楼主| 发表于 3-9-2009 10:28 AM | 显示全部楼层
原帖由 aquamax 于 2-9-2009 05:17 PM 发表
很明显的LZ找错方向了......
要把PC A的DATA传去PC B....简单的OVER LAN/INTERNET用TCP/IP, UDP的SOCKET PROGRAMING....WIN32有很多的SAMPLE.....

用COM PORT.... LZ先找条CABLE可以CONNECT到PC A  PC B.....
C ...


对,我也明白tcp/ip的很简单,但是我的教授就是不要 , 他希望可以通过cable,把电脑A接上,然后 plug and play.

所以大家都没有试过usb cable?

--------------

我用了libusb-win32, 但是它只detect device, 我怎么才能detect到pc呢?pc怎样才能当device? 如果真的不行,我只好用rs232 了,但是我的教授不喜欢rs232
回复

使用道具 举报

Follow Us
发表于 3-9-2009 04:42 PM | 显示全部楼层
usb 根本上就没有TCP/IP socket...除非是接上usb Ethernet adapter...但是那已经是ethernet不是usb...

PC2PC via usb port 应该需要一个简单的电子回路链接的界面...不然的话根本不能直接经过usb来沟通....

但是我的电子不精帮不到你
回复

使用道具 举报

发表于 4-9-2009 09:28 AM | 显示全部楼层
有没有试试去了解Keyboard是怎样操作的?
为甚么Keyboard一接上PC,PC就能够Recognize你街接上的是Keyboard?
可能可以从不同的方向下手。

概念来说,可能你可以在PCA Develop一个类似Keyboard的Program,当你启动这个Program,它将模拟Keyboard和PC之间的Communication(通过USB)。当然,这是概念,需要Research。。。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 7-9-2009 12:00 AM | 显示全部楼层
原帖由 eddom 于 4-9-2009 09:28 AM 发表
有没有试试去了解Keyboard是怎样操作的?
为甚么Keyboard一接上PC,PC就能够Recognize你街接上的是Keyboard?
可能可以从不同的方向下手。

概念来说,可能你可以在PCA Develop一个类似Keyboard的Program,当你启 ...


对,我这几个星期一直寻找相关的资料,无奈只找到keyboard怎么detect key pressed action, BIOS 知道哪个key被按了,并将detect到的scan code转成ASCII,但是接下来的pc怎么根据该ASCII来display在屏幕上却找不到,怎么recognized keyboard也是找没有..

我看到一些资料,就是说如果要simulate keyboard 的话,就得放类似:mov  al, 0x60 ....  但是这应该实现不到我要的plug and play式地send data 去pcB,对吧?(除非send datastream去pcB,在pcB 做类似的programming)  
回复

使用道具 举报

发表于 13-9-2009 11:14 AM | 显示全部楼层
最簡單的方法應該就用 .Net framework 的 keyboard.sendkey() 八
基本上妳的project 可以是

電腦A ======UDP=====>電腦B
把ascii code send 過去就可以了
兩個exe, 一個 textreader + udpsender, 一個 keyboardsimulater + udpreceiver.

以前做kiosk時有做過, 如果你需要source code 的話可以send 給你參考

[ 本帖最后由 我是色狼 于 13-9-2009 11:19 AM 编辑 ]
回复

使用道具 举报

发表于 20-10-2009 03:18 PM | 显示全部楼层
不知道这是不是你要的

可以去看看

http://www.hardwaresecrets.com/article/248/1
回复

使用道具 举报

发表于 25-11-2009 09:17 AM | 显示全部楼层
買條usb laplink cable,兩部電腦就相連了,還要什麼軟件,奇怪?
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 2-12-2025 10:38 AM , Processed in 0.123403 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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