Mam takie pytanie dotyczące uruchamiania programów przed startem systemu.
Mam zamiar napisać program do logowania Windowsa, ale nie ma on być taki jakiś zwyczajny tylko połączony z czytnikiem kart i za pomocą rs-232 ma weryfikować dane. Jedynym moim problemem (na razie) jest odpalenie programiku przed windą (przed logowaniem tak aby komp dalej nie startował) i mam nadzieje że coś na to poradzicie. (Programy pisze w Delphi)
Program napisany w Delphi musi zostać uruchomiony pod Windowsem gdyz korzysta z jego bibliotek wiec nie ma możliwości uruchomienia takiego programu "przed" systemem.
Widzialem wiele programow korzystajacych z takich bibliotek wlaczajacych sie przed okienkiem logowania lub zanim sie uzytkownik zaladuje (a widac juz ekran powitalny) -> mysle ze sa juz w tedy biblioteki windy dostepne i mysle ze w tedy wlasnie mozna uruchomic juz aplikacje :P
ale to moje skromne zdania noobka [green]
Pewno, że można uruchomić program przed ekranem logowania, wystarczy napisać aplikację serwisową (File->New->Other->Service Application), ustawić już gotowy program (są do tego odpowiednie narzędzia) lub w przypadku Win9x dać ją do klucza HKEY_LOCAL_MACHINE..\RunServices
//Jeśli chcesz jeszcze wcześniej tzn. przed ekranem logowania i w czasie ładowania sterowników (jak np. chkdsk lub scandisk) to zostaje aplikacja konsolowa
Wszystko by pewnie działało tylko, że w zakładce file>other>new nie mam czegoś takiego jak "Service Application", pewnie jest to spowodowane wersją mojego delphi (7 personal). Macie jakąś rade na to?
Nic nie trzeba robić tylko wsadzić do wywołanie programu do klucza :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
(wyżej podaliście zły klucz ;) )(to działa wszedzie w xp i 98 wszedzie :))
1.uruchomi się program!
2.nic sie nie załaduje dopuki nie wyłączysz programu :).
3.pulpit i reszta badziewia załaduje się dopiero po jego zamknięciu!
maxwklb napisał(a)
Nic nie trzeba robić tylko wsadzić do wywołanie programu do klucza :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
(wyżej podaliście zły klucz ;) )(to działa wszedzie w xp i 98 wszedzie :))
Ja podałem dobry klucz, to ty podajesz zły [diabel], ot chociażby dowód
Tu jest wszystko napisane
To prawda, że podany przez mnie klucz nie działa na NT, ale nie pisałem źle.
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ RunServices
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ RunServicesOnce
support.microsoft.com napisał(a)
Klucze 5-6 są uruchamiane w tle po pojawieniu się okna dialogowego logowania lub w tym miejscu procesu rozruchu, jeżeli nie ma logowania. Te klucze są przeznaczone dla usług działających w tle, takich jak usługa rejestru zdalnego i są uruchamiane tylko raz w czasie jednego rozruchu.
A podabe przez ciebie klucze są uruchamiane tylko raz po czym wartości są usuwane
support.microsoft.com napisał(a)
W przypadku kluczy 3, 4 i 6 wartość jest usuwana przed uruchomieniem wiersza polecenia do czasu zastąpienia zgodnie z powyższymi uwagami. W wyniku tego, jeżeli nie można poprawnie uruchomić operacji RunOnce, nie będzie wykonywana próba uruchomienia błędnego składnika podczas następnego uruchomienia komputera.
sebeksd napisał(a)
Wszystko by pewnie działało tylko, że w zakładce file>other>new nie mam czegoś takiego jak "Service Application", pewnie jest to spowodowane wersją mojego delphi (7 personal). Macie jakąś rade na to?
Niestety w wersjach Personal nie ma możliwości pisania aplikacji serwisowych, pozostaje ci
skorzystać z MSDN albo spróbować utworzyć usługę z istniejącej aplikacji
Cool_Programming napisał(a)
maxwklb napisał(a)
Nic nie trzeba robić tylko wsadzić do wywołanie programu do klucza :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
(wyżej podaliście zły klucz ;) )(to działa wszedzie w xp i 98 wszedzie :))Ja podałem dobry klucz, to ty podajesz zły [diabel], ot chociażby dowód
Tu jest wszystko napisaneTo prawda, że podany przez mnie klucz nie działa na NT, ale nie pisałem źle.
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ RunServices
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ RunServicesOnce
support.microsoft.com napisał(a)
Klucze 5-6 są uruchamiane w tle po pojawieniu się okna dialogowego logowania lub w tym miejscu procesu rozruchu, jeżeli nie ma logowania. Te klucze są przeznaczone dla usług działających w tle, takich jak usługa rejestru zdalnego i są uruchamiane tylko raz w czasie jednego rozruchu.
A podabe przez ciebie klucze są uruchamiane tylko raz po czym wartości są usuwane
support.microsoft.com napisał(a)
W przypadku kluczy 3, 4 i 6 wartość jest usuwana przed uruchomieniem wiersza polecenia do czasu zastąpienia zgodnie z powyższymi uwagami. W wyniku tego, jeżeli nie można poprawnie uruchomić operacji RunOnce, nie będzie wykonywana próba uruchomienia błędnego składnika podczas następnego uruchomienia komputera.
sebeksd napisał(a)
Wszystko by pewnie działało tylko, że w zakładce file>other>new nie mam czegoś takiego jak "Service Application", pewnie jest to spowodowane wersją mojego delphi (7 personal). Macie jakąś rade na to?
Niestety w wersjach Personal nie ma możliwości pisania aplikacji serwisowych, pozostaje ci
skorzystać z MSDN albo spróbować utworzyć usługę z istniejącej aplikacji
Czy musi to byc aplikacja serwisowa ???
Czy
Dzięki za pomoc, wszystko mi teraz działa idealnie.
Użyłem klucza RunOnce a program ( nie jest to aplikacja serwisowa! ) po uruchomieniu dodaje zpowrotem usunięty przez winde klucz.
Jedyną wadą jaką tu widze to konieczność blokowania menadżera zadań.
Teraz tylko zrobić Hardeware, napisać porządny program i będzie miód :) .