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/)
-   -   Delphi Anzeigeänderungen in der Registry ohne Neustart übernehmen? (https://www.delphipraxis.net/66019-anzeigeaenderungen-der-registry-ohne-neustart-uebernehmen.html)

Fuchtel 23. Mär 2006 15:07


Anzeigeänderungen in der Registry ohne Neustart übernehmen?
 
Hallo,

Wenn man in Windows die Eigenschaften von Anzeige ändert, z.B.: unter Darstellung die Größe der Bildlaufleiste,
und diese mit dem Button [Übernahme] bzw. [OK] übernimmt, werden die Änderungen in die Registry gespeichert (un ter: HKEY_USERS\ < User SID > \Control Panel\Desktop\WindowMetrics\ScrollWidth) und diese Änderung gleich (Systemweit), ohne Neustart, übernommen.

Kennt jemand irgendeinen API - Aufruf, oder eine andere Vorgehenswise, eine von mir in die Registry geschriebene Änderung auch so (ohne Neustart) zu übernehmen?

Selbst in MS´s MSDN habe ich nichts gefunden!

Einsteweilen Danke im Vorraus!

Fuchtel

Luckie 23. Mär 2006 15:09

Re: Anzeigeänderungen in der Registry ohne Neustart übernehm
 
Schon MSDN-Library durchsuchenWM_SETTINGCHANGE probiert?

Fuchtel 23. Mär 2006 15:37

Re: Anzeigeänderungen in der Registry ohne Neustart übernehm
 
Funzt nicht!

Oder hab ich noch nicht den richtigen wParam (Result eines SystemparametersInfo - Aufruf) gefunden?

Fuchtel 5. Apr 2006 10:04

Re: Anzeigeänderungen in der Registry ohne Neustart übernehm
 
Lösung gefunden:

Code:
var
  Sic_NCMertics: TNonClientMetrics;
...

procedure TForm1.SetScrollHeightWidth(Value: Integer);
var
  NCMertics : TNonClientMetrics;
begin
  NCMertics.cbSize := SizeOf(NCMertics);
  SystemParametersInfo(SPI_GETNONCLIENTMETRICS, NCMertics.cbSize, @NCMertics,0);
  Sic_NCMertics := NCMertics;
  NCMertics.iScrollWidth := Value;
  NCMertics.iScrollHeight := Value;
  SystemParametersInfo(SPI_SETNONCLIENTMETRICS, NCMertics.cbSize, @NCMertics,0);
end;

procedure TForm1.ReSetScrollHeightWidth;
begin
  SystemParametersInfo(SPI_SETNONCLIENTMETRICS, Sic_NCMertics.cbSize, @Sic_NCMertics,0);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 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