mefiu512 Temat założony przez niniejszego użytkownika |
[WinAPI] rejestr logi - nie działa » 2011-03-08 20:07:56 Witam mam problem z właściwie dwoma programami.
Celem jest zrobienie listy logowań przy starcie systemu, więc mam 2 programy:
Pierwszy zapisuje go do auto-startu w rejestrze.
Drugi zapisuje logi.
Oto kody:
Ten zapisuje logi:
#include <windows.h> #include <fstream> using namespace std;
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lStart, INT nShow ) { ofstream plik( "plik.txt", ios::out | ios::app ); plik << "działa"; plik.close(); return 0; }
Ten wstawia program w/w do run'a w rejestrze:
#include <windows.h>
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lStart, INT nShow ) { HKEY klucz; CHAR wartosc[] = "C:\\plik.exe"; DWORD typ_danych = REG_SZ; RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE, & klucz ); RegSetValueEx( klucz, "SetUp", 0, typ_danych,( LPBYTE ) wartosc, sizeof( wartosc ) ); RegCloseKey( klucz ); return 0; }
Sprawa ma się tak, że program daje klucza do rejestru, ale program się nie uruchamia(albo się uruchamia) i nie tworzy logów. Co jest nie tak ?
|
|
malan |
» 2011-03-08 22:19:30 Nie sprawdzasz w ogóle, czy wystąpiły jakieś błędy- czy plik otwarto poprawnie, czy otwarto klucz i dodano do niego wartość bez błędu. Zapraszam na msdn w celu przyjrzenia się używanym przez Ciebie funkcją bliżej. Aha- GetLastError Twoim przyjacielem. Programy uruchamiane z rejestru - AutoRun - ten temat również Ci się przyda. |
|
mefiu512 Temat założony przez niniejszego użytkownika |
» 2011-03-10 19:06:42 Nareszcie... Sorry, że dopiero teraz odpisuje, ale czasu nie miałem... Przerobiłem kod tak, żeby pokazywał jaki jest błąd: #include <windows.h> #include <iostream>
using namespace std;
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR lStart, INT nShow ) { HKEY klucz; CHAR wartosc[] = "C:\\plik.exe"; DWORD typ_danych = REG_SZ; DWORD errora; DWORD errorb; errora = RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE, & klucz ); errorb = RegSetValueEx( klucz, "SetUp", 0, typ_danych,( LPBYTE ) wartosc, sizeof( wartosc ) ); errora = GetLastError(); cout << "blad a: " << errora << endl; errorb = GetLastError(); cout << "blad b: " << errorb << endl; RegCloseKey( klucz ); getchar(); return 0; }
błąd a = 0 błąd b = 0 A w samym rejestrze dane wyglądają tak: Nazwa: SetUp Typ: REG_SZ Dane: C:\plik.exe Plik się jednak nie uruchamia... Edit: Plik się uruchamia, w rejestrze klucz jest... ale plik nie tworzy pliku tak jak chciałem. Kiedyś też miałem z tym problem, plik się uruchamiał, lecz nie działał jak powinien, tzn. tak jakby nic nie robił. Więc dlaczego plik nie tworzy mi loga ?? |
|
DejaVu |
» 2011-03-10 22:21:01 |
|
malan |
» 2011-03-10 22:21:37 Sprawdź, czy nie ma pliku (logu) w C:\Documents and Settings\%nazwa_twojego_profilu%\\... |
|
mefiu512 Temat założony przez niniejszego użytkownika |
» 2011-03-12 15:12:15 Wielkie dzięki, wszystko jest tak jak ma być :) Pliki były tam gdzie napisałeś - malan. A cała reszta działała, wystarczyło zmienić ścieżkę... Pozdrawiam, temat zamykam. |
|
« 1 » |