Elo.... Napisałem sobie programik w c++ i chce zamiescic tam autostart. Z tym że nie moge dodac wpisu do rejestru, autostartu, harmonogramu zadan zaplanowanych :) i ostatnią furtką jak dla mnie jest maly tut znalezniony w necie dot. Usług w c++
Kodzik:
#include <windows.h>
int main()
{
SC_HANDLE sh_manager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(!sh_manager)
{
return false; //nie udalo sie otworzyc SCManagera
}
SC_HANDLE service_handle=CreateService(sh_manager,"nazwa_nas zej_uslugi5","nazwa_naszej_uslugi5",SERVICE_ALL_AC CESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START, SERVICE_ERROR_NORMAL,"D:\\Pasek.exe",NULL,NULL,NUL L,NULL,NULL);
if(!service_handle)
{
if(GetLastError()==ERROR_SERVICE_EXISTS)//usluga o tej nazwie juz istnieje
{
service_handle= OpenService(sh_manager,"nazwa_naszej_uslugi5",SERV ICE_ALL_ACCESS);
}
else
{
CloseServiceHandle(sh_manager);//zamykamy uchwyty
CloseServiceHandle(service_handle);
return false;//nie udalo sie stworzyc uslugi
}
}
else
{
if(StartService(service_handle,0,NULL)==0)//jesli nie ma zadnych bledow no to mozemy wystartowac nasza usluge
{
WinExec("D:\\Przelicznik.exe", SW_SHOW);
if(GetLastError()==ERROR_SERVICE_ALREADY_RUNNING)
{
return true;//zostala juz wczesniej uruchomiona
}
}
}
CloseServiceHandle(sh_manager);//zamykamy uchwyty
CloseServiceHandle(service_handle);
return true;
}
I problem w tym że usługa sie tworzy, nawet ma poprawny adres do programu ale po restarcie systemu operacyjnego nie odpala tego exeka :/ Czyzby ten exe musiał byc napisany w formie uslugi ? Probowalem podac adres do Samego Sb czyli do tego exeka ale nie pomoglo....
Chyba że to tylko u mnie tak bo miałem usluge z nero, podmienilem plik exe ( tak ze to teraz odpalal sie moj program a nie nero) ale mimo restartu nie wlaczalo sie nic.... :/ So ?
Jakies pomysly ?