远程控制问题 ( 积分: 100 )

  • 主题发起人 主题发起人 zhengzhijia
  • 开始时间 开始时间
Z

zhengzhijia

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用ldTCPSERVER 和 ldtcpClient 控件进行控制;服务端windows登陆后,可以正常控制,当服务端计算机锁定,就无法回传锁定画面到客户端,啥原因?????
 
只要登陆后就可以回传画面,是不是getDeskTopWindow只能回传不锁定的画面;
如果用桌面连接工具远程登陆到服务端,也可以回传画面。我晕了1
 
大哥你这样子说也太抽象了点吧。。。。
 
传的只是图片 和怎么取的没有关系吧]
 
这样问吧。ldTCPSERVER 和 ldtcpClient 这两个控件能不能实现在服务端锁定计算机的情况下;将锁定画面回传到客户端?
 
服务端锁定计算机??是什么意思??
 
这与控件无关
你的程序是运行在当前登录的用户环境里的,而锁定后退到了SYSTEM环境,记得这个是由winlogon.exe管理的.Terminal Services也是用的SYSTEM帐户,不同帐户的GDI对象都是独立的,登录画面你连截屏都截不到,谈什么回传?
 
那你的意思是我在登陆前就启动该控制程序,是不是就可以了?
 
其实就是截取屏幕 然后传输图片
 
你说的没错其实就是截取屏幕 然后传输图片 ;但是锁定后的画面,不知道用啥办法回传?能不能更具体的指点一下
 
我通过修改注册表,在系统登陆前就启动,还时无法得到画面;手工登陆后,监控段才出现画面;
 
我不懂你说的锁定后的画面是什么意思?就是截取到的图片吗??
 
给你段发图片的代码吧
发送端:
var
Temp:TMemoryStream;
begin
Temp:=TMemoryStream.Create;
Image1.Picture.Graphic.saveToStream(Temp);
IdTCPClient1.connect();
IdTCPClient1.WriteStream(Temp);
IdTCPClient1.disConnect();
Temp.free;
end;
接受端:
TIdTCPServer的OnExecute方法中:
var
Temp:TMemoryStream;
begin
Temp:=TMemoryStream.Create;
AThread.Connection.ReadStream(Temp,-1,True);
Temp.SaveToFile('C:/aaa.bmp');
Temp.Free;
end;
 
比如windows2000系统, 对方通过ctrl+alt+del锁定计算机; 这是锁定的画面,或登陆画面就无法得到了;键盘也没有响应了
 
我知道图像的发送方法,就是不知道;在对方切换用户,或ctrl+alt+del锁定计算机时如何回传当前画面
 
在切换用户,或锁定计算机是,被控端程序在运行,为何不能正常回传当前画面?“你的程序是运行在当前登录的用户环境里的,而锁定后退到了SYSTEM环境,记得这个是由winlogon.exe管理的.Terminal Services也是用的SYSTEM帐户,不同帐户的GDI对象都是独立的,登录画面你连截屏都截不到,谈什么回传? ”是这个原因吗?那如何才能解决该问题?
 
拦截锁定消息 处理,,发送图片
比如:ctrl+alt+del是锁定,那做个键盘钩子,捕获ctrl+alt+del然后发送图片完再返回
 
OpenUnputDesktop
GetUserObjectInformationA
CloseDesktop
OpenDesktopA
SetThreadDesktop
用這幾個去搞定吧
 
楼上的详细说说怎么用吧,这几个API是什么作用?
据说要截锁定后屏幕和登陆前界面需要直接读显卡
 
谢了guanyueguan,
 
后退
顶部