Dodawanie ścieżek systemowych

0

Witam :)
Mam mały problem, a mianowicie jak dodać programowo ścieżkę systemową w XP nie restartując kompa, chodzi mi o coś takiego co np. robi Delphi że szukając bibliotek każdy program wyszukuje w lokalizacjach systemowych i np. Borland\bin i wiele innych jest właśnie kolejną systemową lokalizacją.
Starsze Windowsy od XP miały wszystko w AUTOEXEC.BAT nowe w rejestrze, ale NT jest dynamiczny i jest jakaś funkcja na odświeżenie ścieżek.

0

W Win9x i NT jest klucz HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
Dodaj tam jako nazwę klucz swój program, np. MyProg.exe a wartości domyślnej tego klucza ścieżkę + opcjonalnie nazwę pliku. Nazwa klucza musi być z .exe bo inaczej nie wypali.

Teraz jak wpiszesz to nazwę w Start->Uruchom to ci się otworzy plik lub katalog. Nie wymaga to restartu i powinno działać także pod Win9x

0

Znaczy sie nie o to mi chodziło, chyba źle mnie zrozumiałeś.
Mi chodzi o to by system wykrywał w kilku moich ścieżkach biblioteki dll.

Tak jak np. Borland\bin czy tam skopiujesz czy do System32 to na to samo wyjdzie.
Jakoś chyba wszystkie kompilatory 32-bitowe tak rejestrują swoje ścieżki podczas instalacji.

0

Może się mylę ale chyba chodzi o zdefiniowanie zmiennej systemowej.
Delphi i inne programy dodają tam linijkę PATH z wartością zmiennej typu:
C:\Program Files\Borland\Delphi7\Bin;C:\Program Files\Borland\Delphi7\Projects\Bpl;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\Adaptec Shared\System;C:\Program Files\DiskeeperLite
gdzie ; oddziela kolejne zmienne innych lokalizacji programów.

Jak dodac nową zmienną ?:

Panel Sterowania -> System -> Zaawansowane -> Zmienne środowiskowe -> (Zmienne systemowe -> Nowa)

A siedzi to tutaj:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment ; Path

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment ; Path

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment ; Path

0
Opi napisał(a)

Może się mylę ale chyba chodzi o zdefiniowanie zmiennej systemowej. (...)

Tak, ale on napisał, że ma być bez restartu, nie napisałeś jak to zrobić.

Żeby ścieżka wprowadzona w zmiennej systemowej PATH zaczeła być widoczna bez wylogowania się musisz wysłać WM_SETTINGCHANGE jako broadcast, czyli do wszystkich okien.

Microsoft bardzo ładnie to opisuję w artykule KB104011

Nie działa to jednak pod Win9x :/ bo tam wszystko deklaruje się w Autoexec.bat

1 użytkowników online, w tym zalogowanych: 0, gości: 1