|
You last visited: Today at 10:10
Advertisement
Registry Wert auslesen und in Variable speichern
Discussion on Registry Wert auslesen und in Variable speichern within the C/C++ forum part of the Coders Den category.
08/17/2013, 18:45
|
#1
|
elite*gold: 0
Join Date: Apr 2013
Posts: 116
Received Thanks: 3
|
Registry Wert auslesen und in Variable speichern
Hi,
Ich kenne mich leider in C++ nicht so aus, aber würde halt gerne den Standard Wert eines Schlüssels in der Registry auslesen und diesen Wert dann in einer Variable speichern.
So weit bin ich momentan.
Code:
LONG WINAPI RegGetValue(HKEY hkey, LPCTSTR lpSubKey)
{
}
Und dann unten wenn ich auf einen Button klicke das
Code:
Label1->Caption=RegGetValue(HKEY_CLASSES_ROOT, "test");
Und ich bekomme nur eine Zahl, undwzar 1635820
Jemand Rat?
|
|
|
08/17/2013, 19:03
|
#2
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
lern die sprache, bitte...
BIIIIIITTEEEEEEEEEEE...
hier sind alle registry winapi funktionen aufgelistet:
du darfst die funktion nicht selbst definieren, warnt dich da der compiler net schon?
|
|
|
08/17/2013, 19:04
|
#3
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
|
Quote:
|
du darfst die funktion nicht selbst definieren, warnt dich da der compiler net schon?
|
Vermutlich wurde nicht einmal die Windows.h inkludiert
|
|
|
08/17/2013, 19:14
|
#4
|
elite*gold: 0
Join Date: Apr 2013
Posts: 116
Received Thanks: 3
|
1. Compiler warnt nicht, nein
2. "#include <windows.h>" ist includiert.
Wenn ich es nicht selbst compile, dann kommt folgendes "Call to undefined function 'RegGetValue'"
P.S.: Danke für den Link, habe ich aber schon, hilfe mit nur nicht sonderlich ^^
|
|
|
08/17/2013, 19:22
|
#5
|
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
|
Gibt es einen Grund, warum du statt C++ diese Sprache namens "C++/CLI" nutzt?
Ist kein CLI, sieht nur auf den ersten Blick so aus.
Quote:
Originally Posted by thosan123
1. Compiler warnt nicht, nein
2. "#include <windows.h>" ist includiert.
Wenn ich es nicht selbst compile, dann kommt folgendes "Call to undefined function 'RegGetValue'"
|
Wo hast du in welcher Datei was inkludiert, und wo deine RegGetValue deklariert?
Quote:
Originally Posted by thosan123
P.S.: Danke für den Link, habe ich aber schon, hilfe mit nur nicht sonderlich ^^
|
In dem Link suchst du nach einem  , dem Link folgst du und liest dir die Seite durch. Wenn sie dir nicht geholfen hat, suchst du im Internet nach einem Beispiel mit Erklärung.
|
|
|
08/17/2013, 19:37
|
#6
|
elite*gold: 0
Join Date: Apr 2013
Posts: 116
Received Thanks: 3
|
C++/CLI?
Was ist das? Wüsste ich nicht, das ich das verwende
Ich nutze Borland C++ Builder 6 und dort ist standardmäßig bereits diese Datei eingebunden:
#include <vcl.h>
Und da drunter habe ich einfach dann diese Dateien eingebunden:
#include <strsafe.h>
#include <windows.h>
#include <stdio.h>
Und ein Beispiel habe ich leider noch nicht gefunden.
|
|
|
08/17/2013, 23:25
|
#7
|
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
|
Bitte verzeih, ich hatte Text statt Caption gelesen.
In C++ gibt es für die Dateien der C-Standardbibliothek entsprechende C++-Dateien, für stdio.h die Datei cstdio. Damit sind die Funktionen dann statt im globalen Namensraum im Namensraum std. Aber wozu brauchst du die Datei überhaupt?
|
|
|
08/17/2013, 23:36
|
#8
|
elite*gold: 0
Join Date: Apr 2013
Posts: 116
Received Thanks: 3
|
Das ist ja nur ein Teil des Programms 
Der andere funktioniert problemlos, aber das auslesen will nicht, Einer eine Idee?
|
|
|
08/18/2013, 00:08
|
#9
|
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
|
MSDN:
Quote:
Return value
If the function succeeds, the return value is ERROR_SUCCESS.
If the function fails, the return value is a system error code.
If the pvData buffer is too small to receive the value, the function returns ERROR_MORE_DATA.
|
Wie gesagt, Seite durchlesen. Und die Funktion wird bereits in windows.h deklariert, also die eigene Funktion streichen.
|
|
|
08/18/2013, 12:12
|
#10
|
elite*gold: 0
Join Date: Apr 2013
Posts: 116
Received Thanks: 3
|
Ich habe die Funktion bereits gestrichen, es geht aber nicht, es kommt dieser Fehler
Call to undefined function 'RegGetValue'
Eine Idee, woran es liegen könnte?
|
|
|
08/18/2013, 15:15
|
#11
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Poste doch einfach mal deinen Code und die genaue Fehlermeldung.
Meine Glaskugel hab ich dem letzten Anfänger gegen den Kopf geschmissen.
|
|
|
08/18/2013, 15:52
|
#12
|
elite*gold: 0
Join Date: Apr 2013
Posts: 116
Received Thanks: 3
|
Hier der Code:
Code:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <strsafe.h>
#include <windows.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
BOOL RegDelnodeRecurse (HKEY hKeyRoot, LPTSTR lpSubKey)
{
LPTSTR lpEnd;
LONG lResult;
DWORD dwSize;
TCHAR szName[MAX_PATH];
HKEY hKey;
FILETIME ftWrite;
// First, see if we can delete the key without having
// to recurse.
lResult = RegDeleteKey(hKeyRoot, lpSubKey);
if (lResult == ERROR_SUCCESS)
return TRUE;
lResult = RegOpenKeyEx (hKeyRoot, lpSubKey, 0, KEY_READ, &hKey);
if (lResult != ERROR_SUCCESS)
{
if (lResult == ERROR_FILE_NOT_FOUND) {
printf("Key not found.\n");
return TRUE;
}
else {
printf("Error opening key.\n");
return FALSE;
}
}
// Check for an ending slash and add one if it is missing.
lpEnd = lpSubKey + lstrlen(lpSubKey);
if (*(lpEnd - 1) != TEXT('\\'))
{
*lpEnd = TEXT('\\');
lpEnd++;
*lpEnd = TEXT('\0');
}
// Enumerate the keys
dwSize = MAX_PATH;
lResult = RegEnumKeyEx(hKey, 0, szName, &dwSize, NULL,
NULL, NULL, &ftWrite);
if (lResult == ERROR_SUCCESS)
{
do {
StringCchCopy (lpEnd, MAX_PATH*2, szName);
if (!RegDelnodeRecurse(hKeyRoot, lpSubKey)) {
break;
}
dwSize = MAX_PATH;
lResult = RegEnumKeyEx(hKey, 0, szName, &dwSize, NULL,
NULL, NULL, &ftWrite);
} while (lResult == ERROR_SUCCESS);
}
lpEnd--;
*lpEnd = TEXT('\0');
RegCloseKey (hKey);
// Try again to delete the key.
lResult = RegDeleteKey(hKeyRoot, lpSubKey);
if (lResult == ERROR_SUCCESS)
return TRUE;
return FALSE;
}
BOOL RegDelnode (HKEY hKeyRoot, LPTSTR lpSubKey)
{
TCHAR szDelKey[MAX_PATH*2];
StringCchCopy (szDelKey, MAX_PATH*2, lpSubKey);
return RegDelnodeRecurse(hKeyRoot, szDelKey);
}
void __cdecl main()
{
BOOL bSuccess;
bSuccess = RegDelnode(HKEY_CURRENT_USER, TEXT("Software\\TestDir"));
if(bSuccess)
printf("Success!\n");
else printf("Failure.\n");
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
RegDelnodeRecurse(HKEY_CLASSES_ROOT, ".test");
RegDelnodeRecurse(HKEY_CLASSES_ROOT, "test_auto_file");
RegDelnodeRecurse(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.test");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Label1->Caption=RegGetValue(HKEY_CLASSES_ROOT, "test");
}
//---------------------------------------------------------------------------
Und hier die Fehlermeldung:
Code:
[C++ Error] Unit1.cpp(138): E2268 Call to undefined function 'RegGetValue'
|
|
|
08/18/2013, 19:05
|
#13
|
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
|
Wie viel davon hast du selbst geschrieben? Moment, kommt mir das nur so vor, oder ist die RegDelnodeRecurse aus  der deinen nur erstaunlich ähnlich? Jene main-Funktion ist auch interessant...
Davon abgesehen nutzt du die Funktion falsch. Du könntest nach einem Beispiel für die Verwendung von RegGetValue suchen und dann hier schreiben, ob sich damit Probleme ergeben (oder nicht) und wenn ja, welche. Dazu erstellst du am besten ein neues (Konsolen-)Projekt. Ich hoffe, damit verlange ich nicht zu viel...
|
|
|
 |
Similar Threads
|
[C++] Registry auslesen
06/19/2011 - C/C++ - 7 Replies
Ich suche nach einer Möglichkeit, Zeichenfolgen(REG_SZ) aus der Windows Registry auszulesen.
Geeignet dafür sind die Funktionen RegOpenKeyEx und RegQueryValueEx von der WinAPI... Allerdings weiß ich nicht, wie ich damit Zeichenfolgen auslesen kann. Alle Beispiele, die ich dazu finden konnte waren auf DWORD bezogen.
|
Input Wert als Variable speichern.
11/14/2010 - AutoIt - 2 Replies
Hallo!
Ich kenne mich nicht mit Autoit aus, daher eine (ganz simple?) Frage:
Wie kann ich einen Wert, den ich in eine Input Box geschrieben habe als Variable speichern? Ich möchte das nicht mit einzelnen Inputboxen machen, da sich dann so viele Fenster öffnen. Hier mal ein Bespiel:
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Test", 186, 87, 205, 142)
|
[Problem] Inputbox(GUI) auslesen und als Variable speichern
08/08/2010 - AutoIt - 8 Replies
Hallo, ich bin neu hier und habe ein Problem mit Autoit
hier erstmal das Script :
#include <ButtonConstants.au3>
#include <EditConstants.au3>
|
[C++]Text aus variable speichern?
06/05/2010 - C/C++ - 11 Replies
Hallo erstmal.
Ich habe jetzt angefangen c++ zu lernen :D.
Nun wollte ich einen eingegebenen text in einer variable speichern und die variable später in eine textdatei eintragen lassen.Nur schaffe ich das nicht und ich glaube das mein Source code da auch nix bringt da er meiner meinung nach schon total falsch ist.
Hoffe ihr könnt mir helfen
|
All times are GMT +1. The time now is 10:14.
|
|