鼠标形状(200分)

P

pazee

Unregistered / Unconfirmed
GUEST, unregistred user!
两部机器,C,S<br>S 和 C 通过一个TCP/IP连接,<br>我想在C上能实时的显示S上的鼠标形状和位置,如:S是个SQL的动态沙漏,<br>那么C也因该是个动态沙漏,<br>S端的程序如何做得到当前的鼠标状态,C客户端如何显示出来?<br>注意,S端的鼠标指针形状可能不是标准的,是自定义的,<br>这样s还要发给C客户端鼠标的形状如何做到?<br>请详细说明,做好有源代码。<br>VC,bcb, delphi的均可以。
 
这个挺困难的,需要传送cursor的资源
 
如果鼠标形状都是标准的就好办,S 改变之后发一个消息过来就行了,不用传送光标资源。
 
把光标资源资源先在两台机器上储存好么,<br>等S 改变之后发一个消息,C再改变
 
同意 tlf ,简单的socket编程就搞定了,可以去看看demo里的chat(虽然做得很烂)
 
TCP/IP Socket 我弄了2年了还用看什么chat,<br>通讯根本不是问题,<br>我关心的是如何得到S端的鼠标指针资源,<br>别管说不练,写段代码来看。
 
好家伙,考验我啊!再说两句吧!<br>既然通讯不是问题,就不谈了。<br>如果是标准鼠标指针,BaKuBaKu 说得挺明白。<br>如果是非标准的,又不愿意象tlf 说的那样做,<br>在服务端程序中就要用hook截loadcursor消息,<br>然后将此消息的数据存为资源,传到客户端,<br>在客户端程序中再loadcursor,setcursor.<br>你的客户端程序有无窗体?是不是只要在客户端<br>程序窗体中对应显示就行?如果不是这样,则<br>客户端程序也不简单,这可能也是你的一个难点<br>吧,呵呵,也要用hook截setcursor消息,然后<br>改成你的鼠标指针,类似于东方快车的全文翻译。<br>&gt;&gt;别管说不练,写段代码来看。<br>程序挺复杂,能告诉我你的目的吗?我看值不值。<br>
 
to 果真送:<br>如果你用过pcanywhere或者win2k带的终端服务客户端就会发现,他们都有这个功能,<br>我没明白怎么实现的。我想可能就是你的办法---一大堆的钩子。<br>我想自己也写个这东西,监控远端的机器。<br>如果能帮上忙,可以再给分。好商量,呵呵!
 
呵呵,要的东西不小啊!不会是想做木马吧!Netmeeting里的桌面共享也是不错的。<br>要实现它的功能,可要将服务端的消息一股脑儿全截下来,全传给客户端啊!客户<br>端还要分门别类处理,光有鼠标指针有什么用啊!唉,我"果真送" 怕是要 没法送 了。
 
to 果真送:<br>我不是写什么黑客软件,就是想做个这东西,类似pcanywhere 的,<br>鼠标是硬件产生的,所以截图是截不下来的。很多鼠标形状资源是软件自己带的,<br>我不可能在客户端知道,所以我提这个问题。<br><br>请大家继续讨论。
 
function GetGlobalCursor:HCURSOR;<br>var windowhld:hwnd;<br>&nbsp; &nbsp; threadld:dword;<br>begin<br>&nbsp; windowhld:=GetForegroundWindow;<br>&nbsp; threadld:=GetWindowThreadProcessId(Windowhld,nil);<br>&nbsp; AttachThreadInput(GetCurrentThreadId,threadld,true);<br>&nbsp; result:=getcursor;<br>&nbsp; AttachThreadInput(GetCurrentThreadId,threadld,false);<br>end;<br>
 
to cakk<br>程序挺好,能否说明一下。本人对这方面不太了解。<br>这段程序我先定下给你100分(额外的),结束讨论了一并给你。
 
大家怎么不说话了?
 
可是socket编程还有很多要考虑的,如阻赛,异步
 
pazee:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。<br>
 
多人接受答案了。
 
顶部