你好,
关于使用 jsl 制作脚本
有没有办法获取用户的屏幕分辨率和比例(即系统显示设置中的窗口比例)?
问题是,当某些人将比例设置为 150% 而不是 100% 时,图表和图像也会发生变化。这使得阅读变得困难,或者他们会完全错过图表,因为他们需要滚动才能看到它。
如果我知道第一个问题的答案,我就能对所有东西的大小进行硬编码。我试过使用自动调整大小功能,但它们似乎比手动设置大小更麻烦。
您可以使用 Run Program() 来运行命令行或 powershell,并且很可能通过这种方式获取信息。
谢谢!
command = "Get-ItemProperty -path \!\\!"HKCU:\Control Panel\Desktop\PerMonitorSettings\*\!\\!" | fl DpiValue";
RP = Run Program(
Executable( "powershell.exe"),
Options( {"/c ", command} ),
ReadFunction( "text" )
);
show(RP);This returns DPI value which if display scaling is at 150% it will equal 0, at 175% it will be 1 and so on.
有一种更简单的方法可以调整所有图形/窗口/框等的大小……针对运行脚本的每个用户动态调整
1. 创建新窗口并最大化
2. 获取窗口的宽度,它将返回像素。(如果实际宽度为 1920,缩放比例设置为 150%,那么理论上应该返回 1280 像素)
3. 有一个函数可以调整所有框的大小.. 等等.. (如果它们的宽度小于 1600,我会将其缩放 2/3)
4. 任何时候设置任何图形/框/等的大小,调用 set_width 函数
希望这对将来的某人有所帮助
temp_window = New Window( "Width Check",
H List Box(
Text Box( "A" ),
sb1 = Spacer Box(),
Text Box( "B" ),
sb2 = Spacer Box( size( 20, 10 ), color( "red" ) ),
Text Box( "C" )
)
);<BR />
temp_window << Maximize Window( 1 );
USER_WIDTH = temp_window << Get Width();
temp_window << Close Window;
set_width = Function({w},
{},
new_w = w;
if(USER_WIDTH < 1600,
new_w = w * (2/3);
);
Return(new_w);
);