你好,
關於用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);
);