远程服务器如何抓屏

book_jb9802 2014-05-05 08:53:44
把自己的抓屏软件放在远程服务器上,远程桌面连接时能抓,可以一关掉远程连接抓出来的就是黑屏,不知道如何解决。
...全文
421 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-05-06
  • 打赏
  • 举报
回复
再说具体点 你原来是用PC_A通过VPN访问PC_B 现在你改用PC_A通过VPN访问PC_C,再用PC_C的远程桌面连接到PC_B,并用PC_B的当前用户登录 不过说到这里我想到一个问题,远程服务器没人操作的话,PC_B的用户其实处于注销的状态 抓屏可能还是抓不到.需要有人在本地登录一下......
tanta 2014-05-06
  • 打赏
  • 举报
回复
电脑没人操作的时候, IntPtr dcTmp = CreateDC("DISPLAY", "DISPLAY", (IntPtr)null, (IntPtr)null); CreateDC()能成功吗?跟踪或者log看一下,我觉得没有屏幕输出的时候抓屏没意义啊。
於黾 2014-05-06
  • 打赏
  • 举报
回复
解决办法: 如果能直接到服务器上安装软件并打开,当然是最有把握的办法了 如果服务器离的太远,没什么操作性 可以将远程设在另一台电脑上,然后再通过局域网的远程桌面,用服务器当前登录用户登录(这时当前用户会被T掉)
於黾 2014-05-06
  • 打赏
  • 举报
回复
如果是用VPN方式连接远程桌面,登录用户其实不是服务器的当前用户,而是另一个网络用户 这个跟局域网里是不一样的 比如我在服务器本地打开个软件,我在远程看是看不到界面的,只能看到进程里有 同样我用远程开启一个软件,本地看不到界面 所以当你远程开启抓屏软件后,抓的其实是你远程看到的界面,而不是本地用户看到的界面 而你远程断开后,程序相当于没有界面了,只剩个服务在跑.
book_jb9802 2014-05-06
  • 打赏
  • 举报
回复
引用 1 楼 tanta 的回复:
问题描述不清楚,是自己编写的抓屏软件?还是现成的软件?怎样通信?
1、我的软件抓屏后直接把数据保存在服务器的一个目录中,没有通信。 2、抓屏代码如下:

        public static Bitmap CaptureDesktop()
        {
            Rect rect = new Rect();
            rect.Width = Screen.PrimaryScreen.Bounds.Width;
            rect.Height = Screen.PrimaryScreen.Bounds.Height;
  
            IntPtr dcTmp = CreateDC("DISPLAY", "DISPLAY", (IntPtr)null, (IntPtr)null);
            Graphics gScreen = Graphics.FromHdc(dcTmp);
            Bitmap image = new Bitmap((int)(rect.Width), (int)(rect.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
            Graphics gImage = Graphics.FromImage(image);
            IntPtr dcImage = gImage.GetHdc();
            IntPtr dcScreen = gScreen.GetHdc();
            BitBlt(dcImage, 0, 0, (int)(rect.Width), (int)(rect.Height), dcScreen, (int)(rect.Left), (int)(rect.Top), TernaryRasterOperations.SRCCOPY);
            gScreen.ReleaseHdc(dcScreen);
            gImage.ReleaseHdc(dcImage);
            ReleaseDC(IntPtr.Zero, dcTmp);
            return image;
        }
tanta 2014-05-05
  • 打赏
  • 举报
回复
问题描述不清楚,是自己编写的抓屏软件?还是现成的软件?怎样通信?
自己写的远程连接器的源代码。吐血奉献。 =================已知的BUG================= 1、远程桌面大小小于窗口大小,适应屏幕后将会出现边界无法点击的问题,缩放一下窗口即可恢复 2、分组管理、密码变更、网页监控功能暂不能使用 =================1.1.8版本变动================= 1、修复二处BUG 2、调整了数据加密格式,1.1.8以前的版本的数据需要使用数据转换工具将旧数据转换为新数据方能正常使用 =================1.1.7版本变动================= 1、新增 快速连接远程桌面功能 =================1.1.6版本变动================= 1、新增三个功能 映射硬盘:映射本地硬盘至服务器 截屏:快速截屏并保存到程序的screens目录下(仅载取远程桌面部分) C0模式:当服务器的两个远程桌面全部登陆完后,可以使用C0模式连接至服务器的控制台,相当于mstsc /admin 2、优化算法,修正一些BUG =============================================== 注:本程序需要.net 3.5环境支持。 注:若适应大小后出现边界位置无法点击的情况,请双击主窗口的标题栏二次。 注:因为时间较紧张,本程序暂时没有制作操作手册,请大家自己摸索,在此先说抱歉。 =====================功能说明========================== 多窗口远程桌面连接器,主要功能是作为windows远程桌面连接器。主要功能如下: 1、支持windows远程桌面,ssh登陆,telnet登陆 2、支持服务器(设备)信息加密保存, 3、支持Excel批量导入 4、支持服务器信息导出至RDP文件 5、内置浏览器,支持访问各类web界面的登陆方式 6、支持服务器资料网络同步

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧