远程桌面启动OpenGl、Steam游戏串流、CUDA等需要显卡的程序

本文最后更新于$day天前,文中所描述的信息可能已发生改变。

由于好奇需要,远程桌面执行一个游戏,结果发现会弹出一个对话框。

咦~奇怪了,如果游戏先执行了,再远程,不会出现这个问题。由于已经远程桌面,会导致一些CUDA、需要显卡的程序无法执行(如果已经执行则不受影响)。

比如我远程桌面启动Steam,再用Steam串流,会发现一直黑屏,无法游戏,如果在本地电脑打开。则无问题。

当然你可以选择使用QQ远程或者Teamviews这种不切断会话的操作。

于是我找到这篇文章。 https://blog.csdn.net/cgcoder/article/details/23435643

里面的Bat文件由于是转载已经无法执行,缺了一些代码。上面还需要用到QQ远程。

实属蛋疼啊!

试试用我的代码。保存为Bat文件,会自动使用管理员权限执行。把需要启动的软件拖进去,6秒后自动打开方便快捷

保存记得保存Bat文件时,ANSI编码,否则会出现乱码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@echo off
::------------------------------ 自动提升运行权限 ------------------------------::
:BatchGetAdmin
>nul 2>&1 "%Windir%\System32\cacls.exe" "%Windir%\System32\config\system"

if '%ERRORLEVEL%' NEQ '0' (
echo 正在获取管理员权限...
goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%TEMP%\getAdmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%TEMP%\getAdmin.vbs"
"%TEMP%\getAdmin.vbs"
exit

:gotAdmin
if exist "%TEMP%\getadmin.vbs" ( del "%TEMP%\getadmin.vbs" )
pushd "%cd%"
cd /d "%~dp0"
::------------------------------------------------------------------------------::
ECHO.
ECHO 点击任意按键,切断远程链接
ECHO.
pause
for %%i in (0,1,2,3,4,5,6,7,8,9) do (tscon %%i /dest:console )
::---------------------------------------------------- 延迟6秒 ----------------------------------------------------::
@ping 127.0.0.1 -n 6 >nul
::---------------------------------------------------- 执行文件 ----------------------------------------------------::
start %1%
pause

完美解决~