我找到了滚动条的“半通用”解决方案。它们不是窗口的属性,而是某些编辑子控件的属性。通过 Window Spy 获取控件名称,您可以从某些应用程序中删除栏,使用:
Control, Style, -0x100000, <control name>, <app window name>
Control, Style, -0x200000, <control name>, <app window name>
例如,它适用于记事本,<control name>
其中Edit1
.
不幸的是,TightVNC 使用非标准的 Window 类,TvnWindowClass1
我无法影响它的滚动条。
无论如何,用 替换服务器选项-shareapp <app PID>
,-sharewindow <app window name>
没有滚动条。
以下是假设您要共享的本地工作示例calc.exe
,其窗口名称为Calculator
。
按Ctrl+ Alt+h一次,您将在本地启动一个共享计算器窗口的客户端-服务器 VNC。再按一下就可以得到无缝的效果。再次按下,您将返回标准视图(您可以移动,再次调整大小)。
Ctrl如果使用+ Alt+切换窗口样式h,TightVNC 工具栏也不会切换,请从窗口控制菜单或使用
Shift+ Ctrl+ Alt+在普通视图中手动打开或关闭它t。
如果要在两个不同的系统中使用脚本,则必须将其拆分为两部分,服务器命令在服务器端运行,客户端命令在客户端系统上运行。
请注意,对于更一般的用途,正则表达式用于命名目标应用程序窗口。
注意
该脚本在复制窗口时很有用。窗口镜像在 Linux X Window 中是微不足道的(对于显示器的服务器性质),它需要在 Windows 中付费的工具。当您拥有多显示器系统或投影仪并且您想要复制的不是整个桌面,而是第二台显示器(投影仪)上的某些特定窗口时,镜像会变得很有用。
^!h::
SetTitleMatchMode RegEx
IfWinExist, TightVNC Viewer$
{
WinGet, Style, Style
if(Style & 0x800000) {
WinGetPos, X, Y
Sleep, 6000
WinSet, Style, -0xC00000 ; title bar, without you can move only with win-key
WinSet, Style, -0x800000 ; thin-line border
WinSet, Style, -0x400000 ; dialog frame
WinSet, Style, -0x40000 ; sizing border, without you can't resize
Send !+^t ; no toolbar
WinMinimize
Sleep, 500
WinRestore
WinMove, X, Y
} else {
WinSet, Style, +0xC00000 ; title bar, without you can move only with win-key
WinSet, Style, +0x800000 ; thin-line border
WinSet, Style, +0x400000 ; dialog frame
WinSet, Style, +0x40000 ; sizing border, without you can't resize
Send !+^t ; no toolbar
}
}
IfWinNotExist, TightVNC Viewer$
{
Run, calc
Run, "C:\Program Files\TightVNC\tvnserver.exe" -run
Sleep, 1000
Run, "C:\Program Files\TightVNC\tvnserver.exe" -controlapp -sharewindow Calculator
Run, "C:\Program Files\TightVNC\tvnviewer" 127.0.0.1
}
return