안녕하세요,
jsl을 이용한 스크립트 작성에 관하여
사용자의 화면 해상도와 배율(예: 시스템 디스플레이 설정의 Windows 배율)을 얻을 수 있는 방법이 있습니까?
문제는 일부 배율을 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);
);