Tegenwoordig worden veel pc's geleverd met schermen met een zeer hoge resolutie, zelfs als de pc-vormfactor kleiner is, bijvoorbeeld een Ultrabook of een tablet. Of misschien heb je een desktopmonitor met een resolutie van 4K. Bij dergelijke resoluties schakelt Windows automatisch DPI-schaling in, zodat alles op uw scherm groter wordt. Er zijn echter apps van derden die niet goed worden weergegeven op schermen met hoge DPI. Ze zien er te klein uit voor de schermresolutie. Laten we eens kijken hoe we ze kunnen oplossen als Windows 8.1 of Windows 10 ze niet correct schaalt.
Dergelijke apps werden doorgaans geschreven voordat hoge DPI-weergaven verschenen en werden niet correct bijgewerkt om hoge DPI te ondersteunen. Ze verschijnen te klein op het scherm met onleesbare lettertypen en ze worden niet goed geschaald. Vaak zijn knoppen misplaatst of te klein om op te klikken voor oude apps die niet zijn bijgewerkt voor hoge DPI-weergaven. Windows schaalt normaal gesproken alle apps automatisch met behulp van schaalvergroting in XP-stijl en DPI-virtualisatie voor die apps die Windows niet vertellen dat ze DPI-bewust zijn. Er zijn echter enkele apps die tegen Windows liegen dat ze zich bewust zijn van een hoge DPI, zelfs als dat niet het geval is, en daarom schaalt Windows ze niet. Dergelijke apps worden niet correct weergegeven op Full HD- of 4K-resoluties.
Om ze op te lossen, kan een truc worden gedaan die Windows dwingt de app te schalen met behulp van DPI-virtualisatie. Volgens mijn tests kan het echter alleen veilig worden gedaan op Windows 8.1 en Windows 10. De procedure is lang en een beetje ingewikkeld voor beginnende gebruikers, maar er is geen snelle GUI in Windows om DPI-virtualisatie af te dwingen voor een specifieke app. Het uitvoeren van de registeraanpassing die betrokken is bij deze aanpassing op Windows 7 of Windows 8.0 veroorzaakte vreemd gedrag en bijwerkingen, zoals het verdwijnen van systeemvakpictogrammen, dus doe het op eigen risico als u deze besturingssystemen gebruikt. Als u Windows 8.1 of Windows 10 gebruikt, gaat u verder met deze instructies.
Advertentie
- Maak een leeg tekstbestand vanuit het menu Nieuw door met de rechtermuisknop ergens te klikken, bijv. op het bureaublad of in een map. Het tekstbestand moet de naam hebben van het programma EXE, dat te klein wordt weergegeven, gevolgd door de tekst '.manifest'. Als de naam van het programma dat u gebruikt en die er klein uitziet bijvoorbeeld SearchTool.exe is, moet het tekstbestand dat u maakt de naam 'SearchTool.exe.manifest' hebben. Als u de EXE-naam niet kent, klikt u met de rechtermuisknop op de taakbalk en opent u Taakbeheer terwijl die app wordt uitgevoerd. Selecteer de app, klik er met de rechtermuisknop op en klik op Ga naar details. Op het tabblad Details wordt de EXE-naam weergegeven. Vervolgens kunt u het tekstbestand met de juiste naam maken. bijv. Procesnaam.exe.manifest.
- Download en installeer het gratis Resource Hacker-programma vanaf hier: http://www.angusj.com/resourcehacker/ . Het is een hulpmiddel voor het bewerken van bronnen. De reden dat we het nodig hebben, is omdat het app-manifest soms in een EXE wordt opgeslagen en Windows de voorkeur geeft aan dit interne app-manifest standaard. We willen het interne app-manifest niet volledig negeren als het bestaat, dat wil zeggen, als de ontwikkelaar van de app het heeft toegevoegd, want naast DPI-schaalvergroting bevat het andere belangrijke informatie over de side-by-side-configuratie en UAC-verhoging van de app.
- Start Resource Hacker en open de EXE van de app erin, die er onbruikbaar klein uitziet op uw scherm met hoge resolutie.
- De manifestresource van het programma (EXE) wordt gewoonlijk opgeslagen als brontype 24. Controleer of deze bron 24 bestaat. Als zo'n bron # 24 niet bestaat in de EXE die je hebt geopend, sluit dan Resource Hacker en open het bestand dat je in stap 1 hebt gemaakt in Kladblok en kopieer en plak de volgende tekst erin en sla het tekstbestand op en sluit het:
Vals
Ga nu direct naar stap 9 voor het geval waarin er geen bron 24 was in de EXE die u opende en u de bovenstaande stap hebt uitgevoerd.
- Als in plaats daarvan een bron 24 bestaat in de EXE die u in Resource Hacker hebt geopend, vouw dan het knooppunt met de naam 24 -> 1 uit en klik op het item 1033 (dit is 1033 voor Engelstalige edities). Klik met de rechtermuisknop in het rechterdeelvenster en klik op Alles selecteren. Klik vervolgens met de rechtermuisknop op de geselecteerde tekst en klik op Kopiëren en sluit Resource Hacker. Breng geen wijzigingen aan in het interne manifest van de EXE, omdat de EXE mogelijk digitaal is ondertekend of gecomprimeerd. We willen de originele EXE niet wijzigen.
- Open Kladblok, open het bestand dat u in stap 1 hebt gemaakt in Kladblok en plak wat u uit Resource Hacker hebt gekopieerd in Kladblok en sla dit bestand op vanuit het menu Bestand.
- Kijk in dit bestand of er een sectie is met een dpiaware-vlag die is ingesteld op True (dit betekent dat de app beweert DPI-bewust te zijn als het er klein uitziet op een hoge DPI-weergave):
Klopt
Als het bestaat, verander het dan van True in False. Als een dergelijke sectie met betrekking tot DPI-bewustzijn niet bestaat in de manifestinformatie van de app, voegt u het bovenstaande tekstblok toe net na de volgende regel in het manifestbestand:
- Verander de dpaware-vlag van True in False en sla de wijzigingen op in het bestand en sluit het.
- Kopieer het bestand naar de map van EXE. Als het programma bijvoorbeeld is geïnstalleerd in C: Program Files Contoso SearchTool.exe, kopieert u het manifest naar de map C: Program Files Contoso.
- Nu moeten we Windows aanpassen om het te vertellen externe manifestbestanden te verkiezen boven interne die in de EXE zijn ingebed. Deze registeraanpassing moet * alleen * worden uitgevoerd voor Windows 8.1 en Windows 10. Als u Windows 7 of Windows 8.0 RTM gebruikt, kan de volgende registeraanpassing onverwachte bijwerkingen veroorzaken, zoals het afbreken van bepaalde systeemfunctionaliteit of het crashen van apps.
- Open de Register-editor (Regedit.exe) in Windows 8.1 of Windows 10. Navigeer naar de volgende registersubsleutel:
HKEY_LOCAL_MACHINE> SOFTWARE> Microsoft> Windows> CurrentVersion> SideBySide
- Klik met de rechtermuisknop en selecteer NIEUW> DWORD (32 bit) -waarde. Geef het een naam: PreferExternalManifest, en druk vervolgens op ENTER.
- Klik met de rechtermuisknop op PreferExternalManifest en klik op Wijzigen. Waardegegevens invoeren 1. Klik op OK. Sluit de Register-editor af.
- Start Windows nu opnieuw en voer de app uit waarvoor u dit manifest hebt toegevoegd.
De app moet worden geschaald door de Windows DPI-virtualisatiefunctie en ziet er niet langer te klein uit met onbruikbare bedieningselementen. De tekst ziet er misschien wazig uit, maar dat komt omdat de app-ontwikkelaar de app niet heeft bijgewerkt voor een hoge DPI. Iets wazige tekst is acceptabel dan een onleesbaar kleine gebruikersinterface met kleine bedieningselementen.
Als de app nog steeds actief wordt ontwikkeld, dient u contact op te nemen met de ontwikkelaar zodat hij deze daadwerkelijk op de juiste manier kan schalen bij een hoge DPI en niet alleen de EXE als een hoge DPI markeert. Als de app niet meer wordt onderhouden, heb je pech. Dit is zo goed als de app eruit zal zien (met enigszins wazige tekst). De app zou nu echter bruikbaar moeten zijn.