Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Autostart programu poprzez wpis w rejestrze systemu (ścieźka)

Ostatnio zmodyfikowano 2014-12-02 09:40
Autor Wiadomość
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:
C/C++
#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.
P-121467
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ć.
P-121471
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ć?
P-121472
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.
P-121617
maly
» 2014-11-28 15:26:10
C/C++
#include <iostream>
int main( int argc, char * argv[] )
{
    std::cout << argv[ 0 ] << std::endl;
    return 0;
}
P-121618
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.
P-121626
kubawal
» 2014-11-28 16:52:48
strcpy()?
P-121632
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.
C/C++
#include <iostream>
#include <stdio.h>
#include <windows.h>

using namespace std;

int main( int argc, char * argv[] ) {
   
    HKEY hkey;
    LONG regOpenResult;
   
    const char PATH[]; //tutaj blad
   
    strcpy( argv, PATH ); //tutaj strcpy
   
    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;
}
P-121634
« 1 » 2 3 4
  Strona 1 z 4 Następna strona