Ciao,
Per quanto riguarda la creazione di script con jsl
Esiste un modo per ottenere la risoluzione e la scala dello schermo dell'utente (ad esempio, la scala di Windows nelle impostazioni di visualizzazione del sistema)?
Il problema è che quando alcuni hanno la scala impostata su 150% anziché 100%, anche i grafici e le immagini cambieranno. Rendendo difficile la lettura, altrimenti perderanno completamente un grafico perché dovranno scorrere per vederlo.
Se conoscessi la risposta alla prima domanda, sarei in grado di codificare le dimensioni di ogni cosa. Ho provato a utilizzare le funzionalità di ridimensionamento automatico e sembrano essere più complicate rispetto alla semplice impostazione manuale delle dimensioni.
Puoi utilizzare Run Program() per eseguire la riga di comando o PowerShell e molto probabilmente ottenere le informazioni in questo modo.
Grazie!
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.
Esiste un modo più semplice per ridimensionare dinamicamente tutti i grafici/finestre/caselle, ecc... per ogni singolo utente che esegue i tuoi script
1. Crea una nuova finestra e ingrandiscila
2. Prendi la larghezza della finestra e ti restituirà i pixel. (Se la larghezza tangibile è 1920 e il ridimensionamento è impostato al 150%, allora in teoria dovrebbe restituire 1280 pixel)
3. Avere una funzione che dimensiona tutte le caselle, ecc. (io le ridimensionerei di 2/3 se la loro larghezza è < 1600)
4. Ogni volta che imposti la dimensione di un grafico/riquadro/ecc. chiama la funzione set_width
Spero che questo aiuti qualcuno in futuro
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);
);