Autostart programu poprzez wpis w rejestrze systemu (ścieźka)
Ostatnio zmodyfikowano 2014-12-02 09:40
Bajt Temat założony przez niniejszego użytkownika |
Autostart programu poprzez wpis w rejestrze systemu (ścieźka) » 2014-11-26 19:32:54 Witam Postanowiłem stworzyć sobie program-budzik, który automatycznie wyłączyłby komputer po zadanym czasie. Program mógłby się również uruchamiać wraz z włączeniem systemu, ale nie chcę to zrobić na podstawie kodu, a nie 'przeniesienia skrótu do folderu Autostart'. Cały program nie posiada WinAPI, jest napisany w konsoli, jednak mam pewien problem z nim. Mam coś takiego: #include <iostream> #include <studio.h> #include <windows.h> using namespace std;
int main() { HKEY hkey; LONG regOpenResult; const char PATH[] = "C:budzik.exe"; <-----o tym mowa regOpenResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, & hkey ); RegSetValueEx( hkey, "budzik", 0, REG_SZ,( BYTE * ) PATH, strlen( PATH ) ); RegCloseKey( hkey ); return 0; }
Chodzi o to - czy jest jakiś sposób, aby nie podawać dokładnej ścieżki do aplikacji (gdyż może ona się zmienić), tylko żeby kod sam ten program znalazł na dysku. |
|
Rashmistrz |
» 2014-11-26 19:52:15 Coś mi się kojarzy adresem katalogu roboczego programu, standardowo jest to miejsce w którym znajduje się program. Mógłbyś to jakoś to wykorzystać. |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-26 20:08:14 Wiem, również na to wpadłem, jednak jak to wykorzystać? |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-28 14:32:36 Chodzi mi o sposób na to, żeby program od razu dodał się do autostartu, przy czym, żeby ścieżka do niego wstawiła się automatycznie. |
|
maly |
» 2014-11-28 15:26:10 #include <iostream> int main( int argc, char * argv[] ) { std::cout << argv[ 0 ] << std::endl; return 0; } |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-28 16:23:56 Okej, wielkie dzięki, o to chodzi, jednak jak mam przekierować arv do stringa? Bo żeby wpisać wartość w kluczu musi zostać podany string, a nie zmienna. |
|
kubawal |
» 2014-11-28 16:52:48 strcpy()? |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-28 17:22:25 No tak, to dobry pomysł. Mam ten kod, jednak wywala mi przy tablicy PATH, że nie muszę ją zainicjalizować. Nie wiem do końca jak rozwiązać ten problem. #include <iostream> #include <stdio.h> #include <windows.h>
using namespace std;
int main( int argc, char * argv[] ) { HKEY hkey; LONG regOpenResult; const char PATH[]; strcpy( argv, PATH ); regOpenResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, & hkey ); RegSetValueEx( hkey, "budzik", 0, REG_SZ,( BYTE * ) PATH, strlen( PATH ) ); RegCloseKey( hkey ); return 0; }
|
|
« 1 » 2 3 4 |