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 Umgebungsvariable ändern und allgemein bekannt machen. (https://www.delphipraxis.net/198014-umgebungsvariable-aendern-und-allgemein-bekannt-machen.html)

Bernhard Geyer 26. Sep 2018 14:58

Umgebungsvariable ändern und allgemein bekannt machen.
 
Die allgemein bekannte Lösung der Schweizer funktioniert

https://www.swissdelphicenter.ch/de/...de.php?id=1394

jedoch dauert es (auf diversen Rechnern) sehr lange bis die API-Funktion

Delphi-Quellcode:
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment')));
zurück kommt.
Der Windows Umgebungsvariablen-Dialog kommt sehr viel schneller beim ändern der Umgebungsvariable zurück.

Wird SendMessage nicht aufgerufen, so hat ein neu gestarteter cmd.exe oder die neu gestartete Exe immer noch den alten Wert

Uwe Raabe 26. Sep 2018 15:11

AW: Umgebungsvariable ändern und allgemein bekannt machen.
 
Probier es doch mal mit
Delphi-Quellcode:
SendNotifyMessage
.

EWeiss 26. Sep 2018 15:14

AW: Umgebungsvariable ändern und allgemein bekannt machen.
 
Die frage wäre global oder lokal..
Wenn lokal (Session deiner Anwendung) dann musst du gar nicht erfragen und setzt sie einfach nur hatte es dir schon mal gezeigt.

gruss

himitsu 26. Sep 2018 15:15

AW: Umgebungsvariable ändern und allgemein bekannt machen.
 
Man hätte noch PostMessage probieren können, aber da muß man wegen der PChar-Referenz aufpassen.

Bei Google suchenSendMessageTimeout :stupid:
https://docs.microsoft.com/en-us/win...-settingchange

Bernhard Geyer 26. Sep 2018 15:50

AW: Umgebungsvariable ändern und allgemein bekannt machen.
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1414271)
Probier es doch mal mit
Delphi-Quellcode:
SendNotifyMessage
.

Bingo!

Das ist die Lösung. :thumb:


Zitat:

Zitat von himitsu (Beitrag 1414273)
Man hätte noch PostMessage probieren können, aber da muß man wegen der PChar-Referenz aufpassen.

In der MSDN steht glaube ich das man das nicht darf


Zitat:

Zitat von himitsu (Beitrag 1414273)

Bringt nix. Damit sagt man nur wie lange pro Prozess gewartet werden soll.
Wenn Zeit zu hoch -> Wartezeit
Wenn Zeit zu niedrig -> Dann wird die Info nicht verteilt.


Zitat:

Zitat von EWeiss (Beitrag 1414272)
Die frage wäre global oder lokal..

Global

Rollo62 27. Sep 2018 18:06

AW: Umgebungsvariable ändern und allgemein bekannt machen.
 
<OT>
Zitat:

bekannte Lösung der Schweizer
Gibt es die eigentlich noch, die Seite scheint schon seit Jahren komplett verwaist zu sein ?

</OT>

Rollo


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