我使用下面的JAVA代码来捕获远程计算机的桌面
Robot robot = new Robot();
BufferedImage screenShot = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ByteArrayOutputStream imageBytes = new ByteArrayOutputStream();
ImageIO.write(screenShot, "PNG", imageBytes);
return imageBytes.toByteArray();
Run Code Online (Sandbox Code Playgroud)
但是,当与远程机器的终端会话最小化或断开连接时,捕获的图像为空白.感谢您帮助解决问题,至少是最小化的方案.
配置: 运行Windows 7的物理机和运行Windows Server 2008 R2的虚拟机存在同样的问题.
来自MSDN的更多见解:
从RDP断开连接时为什么会出现黑屏? http://msdn.microsoft.com/en-us/library/aa383015%28VS.85%29.aspx
这是我尝试使事情有效的方法,但以下都没有做到这一点:
RDP窗口最小化时如何获取数据? 您可以强制RDP显示驱动程序在缩小时发送数据,请尝试以下步骤并告诉我它是如何进行的:1)添加以下密钥HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client \创建一个新的DWORD值并将其命名为RemoteDesktop_SuppressWhenMinimized.指定2作为值数据.
注意:还尝试将注册表项添加到HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Terminal Server Client\2)禁用位图缓存(http://technet.microsoft.com/en-us/library/cc737325(WS.10). aspx)在"远程桌面连接"窗口中,单击"选项".
在"体验"选项卡上,验证是否已选中"位图缓存"复选框.或者,要禁用位图缓存,请清除"位图缓存"复选框
我可以在AWS 中连接到我的远程桌面 (Ubuntu 16.04),但我根本无法查看文本。我在 Apple 的 App Store 中使用Microsoft Remote Desktop 10。
所以我不能像这里解释的那样正确登录。
你使用了teamviewer吗?(我知道的漫画问题......谁不使用它?)
你有任何想法,即使我在路由器,防火墙,交换机和我的本地防火墙后面,teamviewer如何建立连接..?
我试图想象远程机器和我的计算机之间的连接.远程机器正在向我发送数据包(及其标题(例如,目标IP,消息正文)),但它只知道我的ID号(由我当地的teamviewer应用程序提供).
即使有一个juniper防火墙(以及我的Windows防火墙),这些数据包也会到达我的计算机.
消息正在通过计算机接收什么样的消息?(当然它不像xml,text,html,excel :)
你有什么主意吗?
PS.请分享您的知识,就像您向初级用户解释一样.
我有一个C sharp控制台应用程序,可以多次捕获MS Word文档的屏幕截图.它工作得很好,但是当我将这个应用程序放在一个远程的Windows XP机器上它工作正常,我远程桌面是可见的,但如果我运行我的应用程序并离开远程桌面(最小化,甚至没有注销我想要做的)截图是空白的!
屏幕截图应用程序由作为SYSTEM用户运行的服务运行.
即使没有连接用户,如何让GUI保持活动状态?
这是我使用的代码:
public Image CaptureWindow(IntPtr handle)
{
// get te hDC of the target window
IntPtr hdcSrc = User32.GetWindowDC(handle);
// get the size
User32.RECT windowRect = new User32.RECT();
User32.GetWindowRect(handle, ref windowRect);
int width = windowRect.right - windowRect.left;
int height = windowRect.bottom - windowRect.top;
// create a device context we can copy to
IntPtr hdcDest = GDI32.CreateCompatibleDC(hdcSrc);
// create a bitmap we can copy it to,
// using GetDeviceCaps to get the width/height
IntPtr …Run Code Online (Sandbox Code Playgroud) 在我的vps中,我运行远程桌面并连接到另一个vps.
现在新的遥控器有整个屏幕,我无法控制主vps!
我该如何切换这种全屏模式?
提前致谢
当我在终端中执行ifconfig时,我看到lxcbr0打开了.谷歌搜索时,我发现它就像一个Vmware.这是默认设置,因为我没有设置它.自启用以来,这是否意味着有人可以远程访问我的电脑?
我想在docker Windows服务器容器(https://hub.docker.com/r/microsoft/windowsservercore/)中运行旧的.NET应用程序。
如果此应用程序不需要UI,一切将变得容易。它的UI做了很多工作,而这些工作无法通过命令行或其他API来完成。
基本上,完美的事情是通过RDP到达此运行容器。
据我了解,它不过是在某个TCP端口(默认端口3389)上运行的服务(TermService)。
但似乎TermService不在Microsoft / windowsservercore容器中运行。
我发现了一篇文章介绍如何激活它:https : //withinrafael.com/2018/03/09/using-remote-desktop-services-in-containers/
基本上,我保留了相同的Dockerfile,只是更改了一些凭据。
#escape=`
FROM microsoft/windowsservercore:1709_KB4074588
RUN net user /add jerome
RUN net user jerome aDifficultPassword
RUN net localgroup "Remote Desktop Users" jerome /add
RUN net localgroup "Administrators" jerome /add
RUN cmd /k reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v TemporaryALiC /t REG_DWORD /d 1
Run Code Online (Sandbox Code Playgroud)
我使用以下命令启动容器:
docker run -it -p3389:3389 myimage powershell
Run Code Online (Sandbox Code Playgroud)
当我连接到容器并键入一些powershell命令以列出正在运行的服务时,我可以看到TermService运行良好。这是我用来列出服务的命令。
Get-Service
Run Code Online (Sandbox Code Playgroud)
当我列出打开的TCP端口时,可以看到监听了3389。这是我用来显示打开的端口的命令。
netstat -an
Run Code Online (Sandbox Code Playgroud)
当我尝试通过远程桌面客户端连接到容器时,开始时一切正常。
我真的不知道日志是否在某处生成。
如果像TigerVNC这样的东西代替RDS,我会好的。我以前从未尝试过此工具,但似乎可以完成这项工作。
您将如何控制Windows容器中运行的GUI应用程序?
有没有人有关于让团队通过远程桌面工作的成功评论?
在许多工作场所,我们将最终用户通过Citrix和应用程序放在一个功能强大的中央服务器上.有时客户端与服务器位于同一建筑物中,但通常它们是远程的.
将我的开发人员放在使用Hyper-V的几台服务器上运行的Windows XP或Vista实例上可能会有一些巨大的好处.
我担心通过互联网的RDP/RDC太慢,以至于没有人能够有效地开发.
我相信我能听到很多关于它的坏事......那里有没有成功的人?
我正在集思广益Twitter的有趣用法,并提出以下建议:
有没有其他人想出Twitter的其他非标准用法?
如何从powershell启动RDP会话?我希望避免使用自定义脚本,因为我在MSP工作并最终在一天内远程连接到各个域的计算机,因此在每个域中维护一系列脚本并非易事(除非您有针对我的解决方案) .