Windows Explorer Zeichenbegrenzung

Windows Explorer Zeichenbegrenzung

Manifest Win32 Applications

Was hat die Manifestdatei mit der Windows Explorer Zeichenbegrenzung zu tun?

Das Manifest in Win32-Anwendungen ist eine XML-Datei oder ein XML-Segment, das spezifische Anwendungsinformationen bereitstellt und die Interaktion zwischen der Anwendung und dem Betriebssystem steuert. Ein Manifest definiert bestimmte Einstellungen und Verhaltensweisen der Anwendung, wie Berechtigungen, Kompatibilität und DPI-Awareness (Auflösung und Skalierung). Es ermöglicht Entwicklern, Anwendungen an moderne Windows-Versionen anzupassen und Funktionen zu nutzen, die nur durch die Angabe im Manifest verfügbar sind.

Wesentliche Punkte eines Manifests für Win32-Anwendungen:

  1. Anwendungskompatibilität:
    • Mithilfe des Manifests kann eine Anwendung deklarieren, für welche Windows-Version(en) sie getestet wurde und optimal funktioniert. Dies ermöglicht dem Betriebssystem, die Anwendung korrekt zu behandeln und etwaige Kompatibilitätsmodi zu vermeiden oder zu aktivieren.
    • Ein typisches Beispiel ist die Angabe der Kompatibilität mit Windows-Versionen:

<application xmlns=”urn:schemas-microsoft-com:asm.v3″>
<windowsSettings>
<supportedOS Id=”{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}”/> <!– Windows 10 –>
</windowsSettings>
</application>

2. UAC (User Account Control):

  • Das Manifest kann angeben, ob eine Anwendung Administratorrechte benötigt, indem der “requestedExecutionLevel” festgelegt wird. Dies ist besonders wichtig für Anwendungen, die Systemressourcen oder privilegierte Aktionen erfordern.
  • Beispiel:

<trustInfo xmlns=”urn:schemas-microsoft-com:asm.v3″>
<security>
<requestedPrivileges>
<requestedExecutionLevel level=”requireAdministrator” uiAccess=”false”/>
</requestedPrivileges>
</security>
</trustInfo>

3. DPI-Awareness:

    • Durch das Manifest können Entwickler deklarieren, wie ihre Anwendung auf hochauflösenden Displays skalieren soll, um sicherzustellen, dass sie auf verschiedenen Bildschirmauflösungen klar und korrekt dargestellt wird.
    • Beispiel
  • Durch das Manifest können Entwickler deklarieren, wie ihre Anwendung auf hochauflösenden Displays skalieren soll, um sicherzustellen, dass sie auf verschiedenen Bildschirmauflösungen klar und korrekt dargestellt wird.
  • Beispiel:

<application xmlns=”urn:schemas-microsoft-com:asm.v3″>
<windowsSettings>
<dpiAware xmlns=”http://schemas.microsoft.com/SMI/2005/WindowsSettings”>true/pm</dpiAware>
</windowsSettings>
</application>

4. Seiteneffekt der Windows-Themes:

  • Durch das Manifest können Win32-Anwendungen angeben, dass sie die modernen Windows-Themes (z. B. „Visual Styles“) verwenden möchten, um ihr Aussehen an das aktuelle Betriebssystem anzupassen. Ohne dies könnte eine Anwendung im klassischen Windows-Look erscheinen.
  • Beispiel:

<dependency>
<dependentAssembly>
<assemblyIdentity type=”win32″ name=”Microsoft.Windows.Common-Controls” version=”6.0.0.0″ publicKeyToken=”6595b64144ccf1df” language=”*”/>
</dependentAssembly>
</dependency>

5. Seiteneffekt des sicheren Ladens von Bibliotheken:

  • In neueren Windows-Versionen hat das Manifest auch Auswirkungen auf das Verhalten der Anwendung beim Laden von Bibliotheken. Dies verhindert, dass Anwendungen anfällig für bestimmte Arten von Angriffen sind, die das Laden unsicherer DLLs ausnutzen (DLL-Hijacking).

Weitere wichtige Aspekte:

  • Das Manifest kann entweder direkt in eine ausführbare Datei eingebettet werden oder als separate Manifest-Datei neben der ausführbaren Datei gespeichert sein.
  • Entwickler können das Manifest verwenden, um präzise Verhaltensweisen für ihre Anwendung festzulegen, wodurch Probleme in verschiedenen Windows-Umgebungen vermieden werden können.

Insgesamt ermöglicht das Manifest einer Win32-Anwendung, sich an die modernen Anforderungen des Betriebssystems anzupassen, spezifische Rechte anzufordern und ihr Verhalten auf benutzerfreundliche Weise zu steuern.

Windows Explorer Zeichenbegrenzung

Kommen wir nun zu einem handfesten Beispiel anhand des Windows Explorers unter Windows 11.

Wir sehen hier insgesamt 5 Ordner in einer Struktur die eine Länge von 240 Zeichen aufweist. Die 4 Zeichen “E:\ + NULL” lasse ich weg und werden nicht gezählt.

Windows Explorer Zeichenbegrenzung

Ab dieser Pfadlänge ist man nicht mehr in der Lage einen weiteren Ordner anzulegen.

Der Dateiname ist für den Zielordner zu lang. Kürzen Sie den bzw. die Dateinamen, und wiederholen Sie den Vorgang, oder verwenden Sie einen anderen Ort mit einem kürzeren Pfad.

MAX PATH LENGTH

Sucht man im Internet nach einer Lösung, werden einem Tipps angeboten wie das Setzen des Wertes vom Eintrag MAX PATH LENGTH auf = 1. Hat aber bei der Nutzung des Windows Explorers keine Auswirkung, lediglich auf Applikationen die das Manifest Win32 Applications verarbeiten.

Manifest Win32 Applications

Und dazu gehört z.B. der Total Commander 11. Der Total Commander ist in der Lage durch die Anpassung/Verarbeitung der Manifestdatei, über die durch Windows gesetzte Zeichenbegrenzung hinaus, zu funktionieren.

Total Commander

Der Windows Explorer ist aber weiterhin in der Lage in dieser Struktur mit Überlänge Dateien anzuzeigen und zu öffnen. Der Name des Ordners kann jedoch nicht geändert werden.

Windows Explorer more than 240 Characters