Änderung des PATH für DLL-Zugriff aktualisieren?

02/02/2015 - 17:03 von Edzard Egberts | Report spam
Wenn ich unter Win7 32bit in der Registry/Environment den PATH geàndert
habe, sollte meines Wissens der Befehl

SendMessageTimeoutA(HWND_BROADCAST, WM_WININICHANGE, 0, (LPARAM)
"Environment", SMTO_ABORTIFHUNG, 2000, 0);

dazu führen, dass das System den neuen Pfad benutzt. Mit SET kann ich
den neuen Pfad zwar sehen (command prompt), aber eine DLL, die über den
neuen Pfad gefunden werden soll, wird erst nach einem Neustart gefunden.

Muss man die Suche nach DLLs mit einem anderen Befehl anstoßen, oder ist
der Versuch mit WM_WININICHANGE falsch? Das wird ja an offene Fenster
gesendet, muss da noch irgend ein Systemaufruf gestartet werden?
 

Lesen sie die antworten

#1 Edzard Egberts
02/02/2015 - 17:13 | Warnen spam
Edzard Egberts wrote:
Wenn ich unter Win7 32bit in der Registry/Environment den PATH geàndert
habe, sollte meines Wissens der Befehl

SendMessageTimeoutA(HWND_BROADCAST, WM_WININICHANGE, 0, (LPARAM)
"Environment", SMTO_ABORTIFHUNG, 2000, 0);

dazu führen, dass das System den neuen Pfad benutzt. Mit SET kann ich
den neuen Pfad zwar sehen (command prompt), aber eine DLL, die über den
neuen Pfad gefunden werden soll, wird erst nach einem Neustart gefunden.

Muss man die Suche nach DLLs mit einem anderen Befehl anstoßen, oder ist
der Versuch mit WM_WININICHANGE falsch? Das wird ja an offene Fenster
gesendet, muss da noch irgend ein Systemaufruf gestartet werden?



Aha, ich glaube, ich habe es gerade noch gefunden - die Funktion heißt
SetDllDirectory():

https://msdn.microsoft.com/en-us/li...85%29.aspx

Morgen mal sehen, ob das klappt...

Ähnliche fragen