Benutzer Windows Bildschirmauflösung/SkalierungHallo,
In Bezug auf die Erstellung von Skripten mit JSL
Gibt es eine Möglichkeit, die Bildschirmauflösung und den Maßstab des Benutzers abzurufen (d. h. den Windows-Maßstab in den Systemanzeigeeinstellungen)?
Das Problem besteht darin, dass sich die Diagramme und Bilder ebenfalls ändern, wenn manche den Maßstab auf 150 % statt 100 % eingestellt haben. Das erschwert das Lesen oder man übersieht ein Diagramm komplett, weil man scrollen muss, um es zu sehen.
Wenn ich die Antwort auf die erste Frage wüsste, könnte ich die Größe von allem fest codieren. Ich habe versucht, die automatischen Größenanpassungsfunktionen zu verwenden, und sie scheinen mühsamer zu sein, als die Größe einfach manuell festzulegen.
WindowsBetreff: Benutzer: Bildschirmauflösung/-skalierung unter WindowsSie können „Run Program()“ verwenden, um die Befehlszeile oder Powershell auszuführen und die Informationen höchstwahrscheinlich auf diese Weise zu erhalten.
Betreff: Benutzer: Bildschirmauflösung/-skalierung unter WindowsDanke!
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.
Betreff: Benutzer: Bildschirmauflösung/-skalierung unter WindowsEs gibt eine einfachere Möglichkeit, die Größe aller Ihrer Diagramme/Fenster/Boxen usw. dynamisch für jeden einzelnen Benutzer zu ändern, der Ihre Skripte ausführt.
1. Neues Fenster erstellen und maximieren
2. Erfassen Sie die Breite des Fensters und es werden die Pixel zurückgegeben. (Wenn die tatsächliche Breite 1920 beträgt und die Skalierung auf 150 % eingestellt ist, sollten theoretisch 1280 Pixel zurückgegeben werden.)
3. Verwenden Sie eine Funktion, die die Größe aller Ihrer Boxen usw. angibt (ich würde 2/3 skalieren, wenn ihre Breite < 1600 ist).
4. Immer wenn Sie die Größe eines Diagramms/einer Box/usw. festlegen, rufen Sie die Funktion set_width auf
Hoffe, das hilft jemandem in der Zukunft
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);
);