Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Neuzeichnen des Desktops verhindern? (https://www.delphipraxis.net/202259-neuzeichnen-des-desktops-verhindern.html)

MicMic 14. Okt 2019 19:19

Neuzeichnen des Desktops verhindern?
 
Hallo,
ich merke, dass bei Delphi Programmen beim Start (kurz bevor die Form angezeigt wird) meine Desktop-Symbole kurz 1x flackern. Da habe ich gleich mal MS Edge, Windows Live Mail usw. ausprobiert. Da ist dieses Verhalten nicht zu sehen. Kann ich das irgendwie unterbinden?

Ein kurzer Test mit "LockWindowUpdate(GetDesktopWindow)" vor "Application.Initialize" hat kein Erfolg gebracht.

Hat vielleicht jemand eine Idee?

Gruß
Mic

Luckie 14. Okt 2019 19:41

AW: Neuzeichnen des Desktops verhindern?
 
Was macht dein Programm?

MicMic 14. Okt 2019 20:51

AW: Neuzeichnen des Desktops verhindern?
 
Ich habe mir mal für meinen Thread (TThread) etwas herausgesucht.
In diesem Thread gebe ich "OleInitialize(Nil)" an. Warum weiß ich eigentlich nicht *lach*. Es war halt im Beispiel dabei.
Hat lange gedauert aber jetzt habe ich herausgefunden, dass dieser Befehl das einmalige flackern der Desktop-Symbole verursacht.

Im Thread nutze ich auch "Wow64EnableWow64FsRedirection" (das kenne ich). Hat OleInitialize(Nil) damit was zu tun?

Also ich gebe es so an.
Delphi-Quellcode:
{$IFDEF WIN32}
 If IsWindows64 Then Wow64EnableWow64FsRedirection(False);
{$ENDIF}
OleInitialize(Nil);

// Hier dann Funktionen zum abarbeiten von Verzeichnissen

OleUninitialize;
{$IFDEF WIN32}
 If IsWindows64 Then Wow64EnableWow64FsRedirection(True);
{$ENDIF}
Wie gesagt, es war so in einem Beispiel angegeben. Auch stand dabei, dass "OleInitialize" hier im Thread zusätzlich angegeben werden muss, auch wenn man es außerhalb des Threads nutzt. Oder ging es um "Wow64EnableWow64FsRedirection"? Ist schon lange her. Jedenfalls wenn ich "OleInitialize(Nil)" raus nehme, flackern dann die Desktop-Symbole nicht.

Gruß
Mic


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz