maly |
» 2014-11-28 17:47:39 RegSetValueEx( hkey, "budzik", 0, REG_SZ, argv[ 0 ], strlen( argv[ 0 ] ) ); |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-28 19:08:54 Zamiast linijki z inicjalizacją zmiennej PATH?
|
|
Tomek_z_W11 |
» 2014-11-28 23:42:54 Nie o to mu chodzi raczej, zreszta sam nie wiem o co mu chodzi. Problem jest taki: - musisz dać rozmiar tablicy, np. const char PATH[ 50 ]; - musisz ją od razu "wypełnić", bo jeżeli to jest tablica const, to potem nie możesz jej modyfikować, więc żeby tego typu zmienne/tablice miały jakikolwiek sens, muszą zostać od razu zainicjowane, np. const char PATH[ 50 ] = { "ala ma kota" }; albo bez klamerek const char PATH[ 50 ] = "ala ma kota"; |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-29 18:43:02 Tak, o tym wiem, ale chodzi mi o to, żeby tą tablicę zainicjować ścieżką do programu (czyli zmienną argv). Kolega wyżej podał mi funkcję strcpy, jednak nie wiem, jak jej użyć w tym przypadku. W tym problem. |
|
Tomek_z_W11 |
» 2014-11-29 23:19:26 Obawiam się, że PATH będziesz musiał zmienić na char * PATH Bo ten strcpy() przyjmuje dwa tzw. napisy, czyli char * Ogólnie to napisać coś ala: char * PATH = new char[ 50 ]; strcpy( PATH, argv[ 0 ] );
I jeszcze jedno. strcpy jest w bibliotece <cstring> |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-30 19:04:52 Wiem, że owa funkcja jest w bibliotece cstring. Spróbowałem tak jak zaleciłeś, jednak kod nie działa. Dla testu, dodałem linijkę system("PAUSE"), na koniec programu, żeby sprawdzić, czy wywoła się przy starcie Windowsa. Jednak nic takiego nie ma miejsca. #include <iostream> #include <stdio.h> #include <windows.h> #include <cstring>
using namespace std;
int main( int argc, char * argv[] ) { HKEY hkey; LONG regOpenResult; char * PATH = new char[ 50 ]; strcpy( PATH, argv[ 0 ] ); 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 ); system( "PAUSE" ); return 0; }
|
|
Tomek_z_W11 |
» 2014-11-30 20:03:30 Heh, to że nie działa to że tak powiem nie moja sprawka, ja wiem tylko tyle, że funkcja strcpy() przyjmuje dwa argumenty: char *dokąd, char *skąd.
Kompletnie sie nie znam na grzebaniu w rejestrze, a widze, że jakieś tam HKEY'e sie poniewierają... |
|
Bajt Temat założony przez niniejszego użytkownika |
» 2014-11-30 20:09:27 No tak, ale zgodnie z tym co piszesz, funkcja jest zadeklarowana dobrze. PATH do miejsce gdzie ma być skopiowana zmienna argv, więc się zgadza. A to, że jest tu kilka operacji na rejestrze nie ma nic do rzeczy, bo problem sprawia linijka, w której zmienna argv ma zostać skopiowana do PATH. |
|
1 « 2 » 3 4 |