co zrobic by program napisany w c++ dzialal w tle i automatycznie sie uruchamial wraz ze startem systemu
chodzi mi zarowno o windowsa jak i o linuxa
chce to oczywiscie osiagnac z poziomu programu
co zrobic by program napisany w c++ dzialal w tle i automatycznie sie uruchamial wraz ze startem systemu
chodzi mi zarowno o windowsa jak i o linuxa
chce to oczywiscie osiagnac z poziomu programu
jezeli chodzi o windows i uruchamianie programu przy starcie systemu to musisz dodac wpis do rejestru, dokladniej na ta sciezke:
co do dzialania programu w tle, ma on dzialac calkowicie niezauwazalnie przez usera ? chodzi mi o proces, dzialanie, okno ?Kod:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
niestety windows jest systemem nastawionym na okna, i wiekszasc operacji jest na oknach.
mozesz ustawic subsystem na GUI i nie tworzyc okna.
ja nie cierpie okien ani w windows ani w linux, dla mnie moglyby byc systemy bez okien. Poza tym, jesli chcesz ukryc okno to o ile pamietam uzyj funkcji takich jak:
FindWindow(), ShowWindow() z flaga SW_HIDE. To z tego co pamietam, ale najlepiej sprawdz to na msdn.
ja nie programuje w winapi
jak pisze jakis program to tylko konsola
winapi nie chcialo mi sie uczyc
wole sockety ale mniejsza z tym
nie ma takiej opcji zebym mogl ukrywac okna a chcialem zeby program nie byl zauwazalny dla usera
a co do rejestru to tak zgadza sie program by sie uruchamial
ale jak dodac to z poziomu aplikacji?
hehe, jak to jak, dodajesz wartosc do tego klucza funkcja RegSetValueEx. Oczywiscie przed tym wykonujac pewne operacje jak pobranie uchwytu rejestru ( gałąź HKEY_CURRENT_USER ).
a: Do you want a code ?
b: Of course.
a: Here u r !
Kod:#include <stdio.h> #include <windows.h> void addRegValue( void ) { // // dodawanie valuesa do sabkeja :D // HKEY reg; char regKeyPath[] = "Software\Microsoft\Windows\CurrentVersion\Run"; LONG ret = 0; ret = RegOpenKeyEx( HKEY_CURRENT_USER, regKeyPath, NULL, KEY_ALL_ACCESS, ® ); if( reg != ERROR_SUCCESS ) puts( "pobieranie uchwytu rejestru [!]\r\n" ); // // w tym miejscu odwolujesz sie do RegSetValueEx // ret = RegSetValueEx( // argumenty ); if( ret != ERROR_SUCCESS ) puts( "dodawanie wartosci do podklucza[!]\r\n" ); } int main( void ) { addRegValue(); }
Ostatnio edytowane przez g3t_d0wn : 01-11-2010 - 17:37