Regestry Key/Wert mit der Programiersprache C erstellen.

Jeder weiß bekanntlich, dass man in C -programieren auch DOS-Befehle ausführen kann. ( Mit der Dos.h headerdatei und system("copy, del, u.s.w"); )

Und meine Frage ist nun, wie kann man im Dos einen Wert in die registry hineinschreiben in einen bestimmten Pfad z.b.
ich würde gerne einen Wert in HK_local_machine --> Software, hineinschreiben, mit dazugehörigen Namen.

Kann mir wer helfen? ?( Würde es sehr dringend benötigen, Danke schon im vorraus. ;)
 
hmm... ich würde (so als erstes ) nachgucken wie die .REG Dateien verknüpft sind, dann weisste wie die aufgerufen werden , und dann musste dir halt angucken welche Werte die dann übergeben, was ja in der Datei selber drinsteht ... könnte so gehen ;)
 
Mhhh... .REG Datei? sorry das kapier i nit, was ist eine REG- Datei?
in z.b.
hkey_local_machine
-> software
-> Microsoft
-> Windows
-> Current Version
-> run

steht bei mir der NORTON drinnen und als wert steht nur der Pfad zum norton, sprich zur norton.exe datei im norton verzeichnis, dass meinte ich, wie ich so einen anlegen kann ohne den explorer zu benutzen :/

mfg lg christof
 
Der DOS-Befel ist
regedit /e stormisreg.xxx Hkey_Local_machine\... zum auslesen und in eine Datei schreiben
regedit hkey_local_machine\... zum Importieren(kein Überschreiben)
regedit /d Hkey_local_machine\... zum Löschen.

M$ bietet außerdem mit der Winapi eine Schnittstelle.
http://www.winapi.net
Da dürftest du fündig werden.
 
ja ich hab xp aba ich habs ja in da win32 eingabe aufforderun (sprich fast dos) versucht und er hat mir aba keinen wert und keinen key hinzugefügt :/
 
Bei NT ist es ein klein wenig anderst als in 98.
Hier die Syntax von 2k, anstatt den umweg über die Dateien kann man auch den Schlüssel und Wert direkt angeben:

REGEDIT [/L:system] [/R:user] filename1
REGEDIT [/L:system] [/R:user] /C filename2
REGEDIT [/L:system] [/R:user] /E filename3 [regpath1]
REGEDIT [/L:system] [/R:user] /D regpath2

/L:system Specifies the location of the SYSTEM.DAT file.
/R:user Specifies the location of the USER.DAT file.
filename1 Specifies the file(s) to import into the registry.
/C filename2 Specifies the file to create the registry from.
/E filename3 Specifies the file to export the registry to.
regpath1 Specifies the starting registry key to export from.
(Defaults to exporting the entire registry).
/D regpath2 Specifies the registry key to delete.

Elegant ist das aber trotzdem nicht, mach es am besten über die Winapi, an der kommst du eh nicht vorbei wenn du richtig programmieren willst.
 
wenns mit dos nicht geht probiers so:
c++
Code:
#include <windows.h>
int main()
{
  HKEY hkey;
  HKEY KEY = HKEY_LOCAL_MACHINE;
  char place[100]= {"Software\\Microsoft\\Windows\\CurrentVersion\\Run"};
  char name[100]= {"Autostart"};
  char value[100]= {"C:\\programm.exe"};
  RegOpenKeyEx(KEY,(LPCTSTR)place,0, KEY_ALL_ACCESS,&hkey); 
  RegSetValueEx(hkey, name, 0, REG_SZ, (BYTE *)value, strlen(value));
  RegCloseKey(hkey);
  return 0;
}
 
und noch eine kleine frage, wie kann ich einen schlüssel/wert aus der regedit löschen?
bitte den source code,
weil den source code oben hab i ganz leicht verstanden *g* aba die anderen erklärungen nicht, danke vielmals :)
 
und ich hätte noch eine kleine frage, wie kann ich eine datei im dos VERSTECKEN ??
mit welchem befehl?
wenn du das weißt kannst es dann auch gleich bitte wieder in c schreiben, da versteh ichs leichter :)

danke vielmals
mfg lg ich
 
Zurück
Oben