tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
202
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Franz Rombs Franz Rombs ist offline Mitglied
    Registriert seit
    Jul 2011
    Beiträge
    10
    Hi tutorials.de Community habe jetzt wieder eine Frage:

    Ich bin jetzt am C++ üben und möchte mir ein kleines Tool erstellen welches mir die Drucker aus der Windows Registry auflistet.

    Hier möchte ich Speziel bei den Netzwerkdruckern die IP-Adresse auslessen können und ändern können.

    Code :
    1
    2
    3
    4
    5
    6
    
     TRegistry *Registry = new TRegistry;
            AnsiString KeyName="\\SYSTEM\\CurrentControlSet\\Control\\Print\\Printers\\"+ druckername + "\\DsSpooler\\";
            Registry->RootKey = HKEY_LOCAL_MACHINE;
            Registry->OpenKey(KeyName,false);
            Edit1->Text   = Registry->ReadString("portName");
            delete Registry;

    Die Methode ReadString funktioniert bei REG_SZ werten leider aber nicht bei REG_Multi_SZ

    Ich vewende:
    • Windows 7 32Bit
    • Borland C++ Builder v6


    //Edit: Fehlermeldung
    Code :
    1
    
    Im Project Project1.exe ist eine Exception der Klasse ERegistryException aufgetreten. Meldung: 'Ungültiger Datentype für 'portName'

    Grüße
    Geändert von Franz Rombs (14.07.11 um 14:55 Uhr)
     

  2. #2
    Crash Kid Crash Kid ist offline Mitglied Gold
    Registriert seit
    Jan 2009
    Beiträge
    147
    Hey,

    also ich verwende in C++ die Funktionen um in der Registry was auszulesen bzw. was abzuändern. Hat bisher auch immer sehr gut geklappt:

    RegCreateKeyEx()

    Hier mal ein Beispiel um was in den Autostart einzutragen:

    Code :
    1
    2
    3
    4
    5
    6
    
    HKEY hKey;
    BYTE byPfad[] = "C:\\test.exe";
     
    RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, 0);
    RegSetValueEx(hKey, "test.exe", 0, REG_SZ, byPfad, sizeof(byPfad));
    RegCloseKey(hKey);

    und hier ein Beispiel etwas auszulesen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    string stInhalt_Key;
    HKEY hKey;
    DWORD dwValueType;
    DWORD dwValueLen;
     
    RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_ALL_ACCESS, &hKey);
    RegQueryValueEx(hKey, "CurrentVersion", 0, &dwValueType, 0, &dwValueLen);
    LPSTR lpReturnStr = new char[dwValueLen];
    RegQueryValueEx(hKey, "CurrentVersion", 0, &dwValueType, (unsigned char*)lpReturnStr, &dwValueLen);
    stInhalt_Key = lpReturnStr;
    RegCloseKey(hKey);

    grüße
     
    Wenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.

    Danke euch


    Programmiere in C, C++ auf Windows XP, Vista und Windows 7
    Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 29.09.10, 11:02
  2. Registry in Windows Forms auslesen
    Von Antispy im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 27.08.09, 10:17
  3. Registry Wert auslesen und wiedergeben
    Von nicok im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 21.08.06, 16:24
  4. Windows Registry auslesen
    Von dadom110 im Forum Java
    Antworten: 1
    Letzter Beitrag: 17.02.06, 10:39
  5. DWORD-Hexadezimal-Wert in Registry eintragen und auslesen
    Von Stefan91919191 im Forum .NET Café
    Antworten: 1
    Letzter Beitrag: 02.09.05, 12:20