2016-06-28 1 views
1

J'ai développé un script qui agit comme une application basée sur la console (pensez ncurses) en utilisant PowerShell.PowerShell - Modifier la police de la console par programme

La police 'Lucida Console' est configurée dans un raccourci vers le script.

Je voudrais donner à l'utilisateur la possibilité de changer la taille de la police. Le module suivant fait juste cela, cependant la police est toujours réinitialisée à 'Raster Fonts': https://4sysops.com/archives/change-powershell-console-font-size-with-cmdlet/

Je ne comprends pas pourquoi cela se produit, car le code apparaît pour produire la liste des tailles de police légales en fonction d'une référence à le actuel informations de police.

MISE À JOUR @ Le commentaire de sodawillow m'a envoyé sur le bon cap. Pour élaborer ...

Il semble que la liste des tailles de police valides soit déterminée par la taille de la fenêtre de la console (il est également possible que d'autres facteurs aient été omis).

Par exemple, get-consolefontinfo | Format table renvoie le message suivant sur une taille de fenêtre de 120x64:

nFont dwFontSizeX dwFontSizeY 
----- ----------- ----------- 
0   84   42 
1   70   48 
2   52   64 
3   105   64 
4   105   64 
5   120   64 
6   120   64 
7   168   64 
8   52   96 
9   105   96 
10   140   96 
11   210   128 

Alors qu'avec une taille de fenêtre de 106x51, il retourne:

nFont dwFontSizeX dwFontSizeY 
----- ----------- ----------- 
0   104   49 
1   114   49 
2   125   49 
3   104   55 
4   78   73 
5   156   73 
6   179   73 
7   250   73 
8   78   110 
9   156   110 
10   209   110 
11   313   147 

La police (Consolas, Lucida Console ou Raster Fonts) Cela s'applique différera en fonction de l'index sélectionné.

Donc contrairement à ma question, ce module ne réinitialise pas toujours la police à 'Raster Fonts'.

Répondre

0

A fait quelques tests. Je pense que vous ne pouvez pas changer directement la taille avec ce module (ma police de la console par défaut est Consolas):

Set-ConsoleFont 1 #Raster Fonts 
... 
Set-ConsoleFont 9 #Raster Fonts 
Set-ConsoleFont 10 #Consolas 
Set-ConsoleFont 11 #Consolas 

le code semble produire la liste des tailles de police juridiques basées sur une référence au courant informations de police.

Selon la description du module:

Get-ConsoleFontInfo

Liste des polices disponibles de la console actuelle.

+0

Merci, votre commentaire m'a mis sur la bonne voie. – Fitzroy

+0

De rien. L'utilisation ici est d'accepter la réponse que vous préférez en cliquant sur la coche à côté du vote de réponse. – sodawillow