SnippingTool zoomt, wenn Windows Skalierung an ist

  • VB.NET
  • .NET (FX) 4.0

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von Blackn0va.

    Hier mal meine .exe.config

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <configuration>
    3. <system.diagnostics>
    4. <sources>
    5. <!-- Dieser Abschnitt definiert die Protokollierungskonfiguration für My.Application.Log -->
    6. <source name="DefaultSource" switchName="DefaultSwitch">
    7. <listeners>
    8. <add name="FileLog"/>
    9. <!-- Auskommentierung des nachfolgenden Abschnitts aufheben, um in das Anwendungsereignisprotokoll zu schreiben -->
    10. <!--<add name="EventLog"/>-->
    11. </listeners>
    12. </source>
    13. </sources>
    14. <switches>
    15. <add name="DefaultSwitch" value="Information"/>
    16. </switches>
    17. <sharedListeners>
    18. <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
    19. <!-- Auskommentierung des nachfolgenden Abschnitts aufheben und APPLICATION_NAME durch den Namen der Anwendung ersetzen, um in das Anwendungsereignisprotokoll zu schreiben -->
    20. <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
    21. </sharedListeners>
    22. </system.diagnostics>
    23. <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>


    exe.manifest

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
    3. <dependency>
    4. <dependentAssembly>
    5. <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*">
    6. </assemblyIdentity>
    7. </dependentAssembly>
    8. </dependency>
    9. <dependency>
    10. <dependentAssembly>
    11. <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b">
    12. </assemblyIdentity>
    13. </dependentAssembly>
    14. </dependency>
    15. <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    16. <security>
    17. <requestedPrivileges>
    18. <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
    19. </requestedPrivileges>
    20. </security>
    21. </trustInfo>
    22. <asmv3:application>
    23. <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    24. <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
    25. </asmv3:windowsSettings>
    26. </asmv3:application>
    27. </assembly>
    jetzt hab ich anscheinend das problem, das alle bisherigen werte Irgendwo bei mir aufm rechner rumschwirren, und die Anwendung nicht mehr weiß was nun richtig ist, liegt wohl doch einiges noch in der registry .. leider hab ich nur einen rechenr hier und die Virtualbox auf der NAS ist nach dem Update broke..
    Hat jemand irgendwelche Tips?

    Es muss doch idr einem Anwendungsentwickler oder Programmierer kla sein wie das geht, leider ist alles was ich lese entweder veraltet oder recht schemenhaft. Tief in mir weiß ich das es eigentlich eine kleinigkeit ist die etwas Tricky bedient werden muss..
    Also die Einträge in der Registry ändern auch nichts, hab nun von 0 - 10 versucht. Eine Frage dazu,wird die Manifest datei unmittelbar nach dem editieren berücksichtigt, oder muss ich den rechner neu starten? Ich habe so viele varianten ausprobiert und nichts hat funktioniert.
    Hab nun auch wieder eine virtuelle maschine mit windows 10, aber da funktioniert es auch nicht..
    So, nun endlich gelöst..

    Für alle die das selbe Problem mit der DPI Scalling unter Windows 10 haben, hier die lösung:

    Erstellt eine manifest datei zu eurer .exe, wenn eure Anwendung hallo.exe heißt, dann erstellt dazu eine hallo.exe.manifest und fügt folgenden Text ein:

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    3. <dependency>
    4. <dependentAssembly>
    5. <assemblyIdentity
    6. type="win32"
    7. name="Microsoft.Windows.Common-Controls"
    8. version="6.0.0.0"
    9. processorArchitecture="*"
    10. publicKeyToken="6595b64144ccf1df"
    11. language="*"
    12. />
    13. </dependentAssembly>
    14. </dependency>
    15. <application xmlns="urn:schemas-microsoft-com:asm.v3">
    16. <windowsSettings>
    17. <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
    18. <!-- Un-comment the line below to enable GDI-scaling in this project. This will enable text -->
    19. <!-- to render crisply in DPI-unaware content -->
    20. <gdiScaling xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">false</gdiScaling>
    21. </windowsSettings>
    22. </application>
    23. </assembly>


    In der Windows Registry muss keine änderung vorgenommen werden.
    Danke für eure geduld mut mir und für die Hilfe !!
    Ich habe eine noch bessere lösung gefunden, und zwar:

    Man setzt einfach einen Schlüssel in der registry der den Haken bei "DPI skallierung" setzt, unter..

    XML-Quellcode

    1. Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers


    als name:

    XML-Quellcode

    1. C:\Program Files (x86)\PFAD ZUR APP\NameDERANWENDUNG.exe


    die Value:

    XML-Quellcode

    1. ~ HIGHDPIAWARE


    PC neu starten und die anwendung läuft einwandfrei.
    Bilder
    • Unbenannt.JPG

      25,55 kB, 1.182×156, 142 mal angesehen
    @Blackn0va Genau sowas habe ich mit der Registry-Lösung gemeint. :thumbup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!