Registry mit C ändern

Liebe und eifrige Helfer

Ich brauche ein Programm, das 3 Sachen kann:

  • Anzeigen, ob ein bestimmter Dateityp (z.B. *.skprg) schon in der Registry enthalten ist
  • Einen Eintrag hinzufügen (z.B. „öffne *.skprg immer mit C:\mein_programm.exe“)
  • Einen vorhandenen Eintrag löschen.

Könnte mir jemand ein einfaches Beispiel mit diesen Funktionen liefern?

Danke
Kalsan

Das sind die Befehle und alle nutzen die Win-Api.
http://msdn.microsoft.com/en-us/library/ms724875(VS…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

weil dieses billig forum mal wieder die URL kürtzt
also nochmal

http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx

P.S. hört bloss auf werbung zu machen im Fersehen, das ja peinlich, nach Jahren sind die links immernochnicht zu gebrauchen, warum diese assie funktion wenn sie nur stört (urls kürzung lol)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo RakonDark

Vielen Dank für deine Antwort!
Ich habe die Site durchforstet und bemerkt, dass ich mich da nie zurechtfinden werde, so Vieles auf einmal und dann noch auf Englisch - und zu all dem kommt noch, dass ich keine Ahnung habe, wie das mit den Registrys genau funktioniert (ich kann sie zwar mit Windows Explorer verwalten, aber da hören meine Kenntnisse schon auf).

Würde es dir etwas ausmachen, die drei gewünschten Funktionen aufzulisten? Vielleicht versteh’ ich dann etwas besser.

Danke
Kalsan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

wie siehst den aus mit programmieren ??

wenn ja -> http://www.administrator.de/Die_Windows-Registry_mit…

wenn nein -> START->AUSFÜHREN->regedit

kann suchen löschen einfügen.

[MOD]: Vollzitat entfernt.

und hier auch im board /t/registry-werte-auslesen-schreiben/1465329

oder suchst du ein tool zum klicken . dann bisse aber im falschen board

[MOD]: Vollzitat entfernt.

wie siehst den aus mit programmieren ??

Vor einem Monat wusste ich noch gar nicht, was C ist, vielleicht gibt dir das einen genaueren Eindruck von meinen Kenntnissen…

wenn ja ->
http://www.administrator.de/Die_Windows-Registry_mit…

Auch hier: Fachchinesisch für mich. Bitte beachte, dass ich so gut wie keine Ahnung habe, was die Registry überhaupt ist. Alles was ich weiss, ist dass sie Informationen darüber enthält, welcher Dateityp mit welchem Programm geöffnet werden soll (und das ist auch das Einzige, worum es mir geht).

wenn nein -> START->AUSFÜHREN->regedit

Ich glaube, du hast nicht ganz verstanden, was ich überhaupt machen will: Ich will ein einfaches Konsolenprogramm in C schreiben, das überprüft, ob eine Dateiendung schon einem Programm zugeordnet ist, falls ja: Zuordnung entfernen, falls nein: erstellen. Später werde ich diese Kentnisse in grösseren Programmen nutzen können.

Gruss
Kalsan

und hier auch im board
/t/registry-werte-auslesen-schreiben/1465329
beispiel …

oder suchst du ein tool zum klicken . dann bisse aber im
falschen board

Nein, genau sowas suche ich. Leider verstehe ich einfach nur Bahnhof (meine geringen C-Kenntnisse habe ich ja bereits erwähnt).

Vielleicht ist es besser, wenn ich mich konkret ausdrücke:

Ein Konsolenprogramm (geschrieben in C) für Windows ordnet dem Dateityp *.skprg das Programm C:\Programme\mein_programm\mPrg.exe zu, das heisst, dass ab jetzt beim Doppelklicken auf eine Datei Beispiel.skprg diese immer mit C:\Programme\mein_programm\mPrg.exe geöffnet wird.

Lassen wir mal alles andere weg. Nur diese Funktion: Automatische Zuordnung von „öffnen mit…“. Wie oben beschrieben.

Kann mir jemand ein konkretes und fertiges Beispiel liefern???

Danke
Kalsan

wie siehst den aus mit programmieren ??

Vor einem Monat wusste ich noch gar nicht, was C ist,
vielleicht gibt dir das einen genaueren Eindruck von meinen
Kenntnissen…

wenn ja ->
http://www.administrator.de/Die_Windows-Registry_mit…

Auch hier: Fachchinesisch für mich. Bitte beachte, dass ich so
gut wie keine Ahnung habe, was die Registry überhaupt ist.
Alles was ich weiss, ist dass sie Informationen darüber
enthält, welcher Dateityp mit welchem Programm geöffnet werden
soll (und das ist auch das Einzige, worum es mir geht).

Naja , ohne Arme keine Kekse .

Wenn ich diese aroganz schon lese, dich interressiert garnichts, du kannst nix, willst dir trotz hilfreicher links hier ein tutorial erschleichen, hol dir doch dein persöhnlichen Leerer aber erwarte nicht bei Hilfe eine DAU Anleitung.

wenn nein -> START->AUSFÜHREN->regedit

Ich glaube, du hast nicht ganz verstanden, was ich überhaupt
machen will: Ich will ein einfaches Konsolenprogramm in C

wenn das so einfach ist, warum kannst du dann nix mit meinen links anfangen .
Wie oben, nur weil du kein bock hast grundlegendes in tutorials zu erlernen, musst du hier nicht auf oberschlau machen und erwarten das irgentwer dir hier ein fertigen programm schnippsel mit tutorial RegExe bietet.

schreiben, das überprüft, ob eine Dateiendung schon einem
Programm zugeordnet ist, falls ja: Zuordnung entfernen, falls

Windows Registry
http://forum.computerbild.de/benutzer-tutorials/syst…

nein: erstellen. Später werde ich diese Kentnisse in grösseren
Programmen nutzen können.

sorry , aber hier ist wer weiss was und kein tutorial forum.

P.S.
Ich bitte dich also erstmal in Programmieren und Programmiertools anhand von tutorials zu üben. Damit du wenigstens Informationen lesen kannst die es zum thema im Netz gibt.
Ich hab respekt vor leuten die Programmieren lernen wollen, aber Anfänger brauchen erstmal Basics und sollten nicht so herrablassend reagieren . Ansonsten wirds ja ein fertiges programm und damit bist du dann im falschen Forum.

das geht alles mit regedit und scripten , da du eh nix anfangen kannst mir C Programmierung und Win-API ist es wohl besser sich auf regedit zu verlassen.

wenn du weisst wie die registry funktioniert
http://forum.computerbild.de/benutzer-tutorials/syst…

dann kannst du einfach dateien doppelklicken die deine gewünschten einträge macht in der registry.

Das ist aber nicht ein problem in C oder programmieren sondern ein problem mit der registry, ergo falsches Froum.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo RakonDark

Wie ich sehe, hast du mich und meine Texte völlig falsch verstanden! Auf keinen Fall wollte ich jemals arrogant oder herablassend wirken, sondern nur mit viel Selbstironie meine geringen Kenntnisse humorvoll beschreiben. Das hast du leider völlig falsch aufgefasst, also denke bitte nicht falsch von mir!
Ich bin ein 15-jähriger Schüler und habe ganz frisch das Programmieren entdeckt. Meine Lernmethode besteht darin, Beispiele zu analysieren und leicht verändert nachzuahmen. So bleibt es mir im Kopf und kann später zu eigenen Zwecken verwendet werden. Ich habe kein für mich verständliches Beispiel gefunden und hier um eines gebeten. Anstatt etwas Konkretem (ich ging davon aus, das es sich nur um ein paar wenige Linien Code handeln würde) erhielt ich tonnenweise Fachausdrücke und Systemsachen. Davon war ich natürlich völlig überfordert! Bitte verstehe meine Hilfe-Anforderungen nicht als Faulheit, es handelt sich nur um Unwissen!

wie siehst den aus mit programmieren ??

Vor einem Monat wusste ich noch gar nicht, was C ist,
vielleicht gibt dir das einen genaueren Eindruck von meinen
Kenntnissen…

wenn ja ->
http://www.administrator.de/Die_Windows-Registry_mit…

Auch hier: Fachchinesisch für mich. Bitte beachte, dass ich so
gut wie keine Ahnung habe, was die Registry überhaupt ist.
Alles was ich weiss, ist dass sie Informationen darüber
enthält, welcher Dateityp mit welchem Programm geöffnet werden
soll (und das ist auch das Einzige, worum es mir geht).

Naja , ohne Arme keine Kekse .

Wenn ich diese aroganz schon lese, dich interressiert
garnichts, du kannst nix, willst dir trotz hilfreicher links
hier ein tutorial erschleichen, hol dir doch dein
persöhnlichen Leerer aber erwarte nicht bei Hilfe eine DAU
Anleitung.

Mich interessiert alles. Ich weiss nichts. Ich will alles wissen. Leider würde ich dafür Jahre brauchen und diese Geduld habe ich nicht. Also brauche ich etwas, mit dem ich anfangen kann. Fachchargon hilft mir nicht weiter. Sei bitte nicht beleidigt.

wenn nein -> START->AUSFÜHREN->regedit

Ich glaube, du hast nicht ganz verstanden, was ich überhaupt
machen will: Ich will ein einfaches Konsolenprogramm in C

wenn das so einfach ist, warum kannst du dann nix mit meinen
links anfangen .

Weil ich vom Ganzen keine Ahnung habe (wie ich schon mehrfach betont habe).

Wie oben, nur weil du kein bock hast grundlegendes in
tutorials zu erlernen, musst du hier nicht auf oberschlau
machen und erwarten das irgentwer dir hier ein fertigen
programm schnippsel mit tutorial RegExe bietet.

Das Forum ist doch da, um zu helfen, oder? Oder bin ich hier falsch? Deine heftige Ausdrucksweise schockiert mich ehrlich gesagt, ganz ohne dir einen Vorwurf machen zu wollen.

schreiben, das überprüft, ob eine Dateiendung schon einem
Programm zugeordnet ist, falls ja: Zuordnung entfernen, falls

Windows Registry
http://forum.computerbild.de/benutzer-tutorials/syst…

AAAAAAHHHHH…das ist endlich mal was auf Deutsch! Da hast du genau das getroffen, was ich brauche. So, jetzt weisst du, was ich meine, denn so steht’s im Artikel: Ich bin ein „Normal User“. Vielleicht verstehst du mich und meine für dich hochnässigen Fragen jetzt besser. Ich will nur lernen, nicht kritisieren und dich nicht attakieren oder herausfordern.
Danke übrigens für den Link, er ist einer der besten, die ich je erhalten habe.

nein: erstellen. Später werde ich diese Kentnisse in grösseren
Programmen nutzen können.

sorry , aber hier ist wer weiss was und kein tutorial forum.

Dies ist das einzige gute Forum, das ich kenne, deshalb schreibe ich alle meine Probleme hier. Wenn du so ein spezialisiertes Forum kennst, würde ich gerne den Link haben, um euch weniger belasten zu müssen.

P.S.
Ich bitte dich also erstmal in Programmieren und
Programmiertools anhand von tutorials zu üben. Damit du
wenigstens Informationen lesen kannst die es zum thema im Netz
gibt.

Würde ich gerne, aber ich kenne…genau 2, das Deine inklusive! Du siehst, ich bin eher hoffnungslos überfordert: Ungeduldig und voreilig ist mein Programmierungscharakter. Genau deshalb wende ich mich an dieses Forum: weil ich mir selbst hier nicht helfen kann.

Ich hab respekt vor leuten die Programmieren lernen wollen,
aber Anfänger brauchen erstmal Basics und sollten nicht so
herrablassend reagieren .

Tut mir leid, wenn du meine Ausdrucksweise als herablassend empfindest. Sei dir bewusst, dass dies nie meine Absicht war!

Gruss Kalsan

Hallo!

Das Forum ist doch da, um zu helfen, oder? Oder bin ich hier
falsch?

Du kannst die Basics einer Programmiersprache nicht durch Erfragen erlernen und so ganz nebenbei noch in die Tiefen der betriebssystemabhängigen Programmierung eingewiesen werden wollen. So verärgerst du jede Community. Lerne die Basics mittels Tutorial oder Buch; das dauert vielleicht ein paar Wochen, aber keine Jahre. Und mit Verständnisfragen kann du hier problemlos auflaufen, nicht aber mit Fragen nach Programmierrezepten.

AAAAAAHHHHH…das ist endlich mal was auf Deutsch! Da hast du

Und ein ganz dringender Tipp: Lerne genug Englisch, um Dokus lesen zu können. Dazu reicht wirklich seeeehr wenig Englisch, da der Wortschatz übersichtlich ist und die Sprache im Allgemeinen sehr einfach ist. Fremdsprachen lernst du nie wieder so leicht, wie in deinem jetzigen Alter. Programmieren lernt man auch mit 30 problemlos, Talent vorausgesetzt.

Jan

Hallo!

Hallo JayVee!

Das Forum ist doch da, um zu helfen, oder? Oder bin ich hier
falsch?

Du kannst die Basics einer Programmiersprache nicht durch
Erfragen erlernen und so ganz nebenbei noch in die Tiefen der
betriebssystemabhängigen Programmierung eingewiesen werden
wollen. So verärgerst du jede Community. Lerne die Basics
mittels Tutorial oder Buch; das dauert vielleicht ein paar
Wochen, aber keine Jahre.

Hast du mir zufällig einen Geheimtipp für ein gratis-Internet-Tutorital für C? Ich lerne zwar gerade ab einem, aber das ist noch seeeeehr basisch und enthält keinerlei Infos über spezielle Funktionen.

Und mit Verständnisfragen kann du
hier problemlos auflaufen, nicht aber mit Fragen nach
Programmierrezepten.

AAAAAAHHHHH…das ist endlich mal was auf Deutsch! Da hast du

Und ein ganz dringender Tipp: Lerne genug Englisch, um Dokus
lesen zu können. Dazu reicht wirklich seeeehr wenig Englisch,
da der Wortschatz übersichtlich ist und die Sprache im
Allgemeinen sehr einfach ist. Fremdsprachen lernst du nie
wieder so leicht, wie in deinem jetzigen Alter. Programmieren
lernt man auch mit 30 problemlos, Talent vorausgesetzt.

Da bin ich ganz deiner Meinung! Momentan lerne ich Englisch in der Schule und bald werde ich ein Austauschjahr machen. Letztes Jahr machte ich ein Austauschjahr auf Französisch. In spätestens 3 Jahren wird das Englisch kein Problem mehr sein, aber momentan bereitet es mir noch manchmal Mühe.

Jan

Kalsan

Hallo Kalsan,

Hast du mir zufällig einen Geheimtipp für ein
gratis-Internet-Tutorital für C? Ich lerne zwar gerade ab
einem, aber das ist noch seeeeehr basisch und enthält
keinerlei Infos über spezielle Funktionen.

Aha, ein typischer Anfängerfehler :wink:

Du hast das Konzept von C noch nicht verstanden.

C besteht eigentlich nur aus etwa 40 Schlüsselwörtern und etwa nochmal so vielen Operatoren und „Steuerzeichen“.

Der ganze Rest, also alle Funktionen, sind in Bibliotheken enthalten, welche fast alle in C geschrieben sind.

Mittlerweile sind einige dieser Bibliotheken in ANSI-C genormt und bei jedem Compiler vorhanden.

Die restlichen Bibliotheken sind entweder Betriebssystem-Aufrufe, und somit mindestens bei jedem Betriebssystem unterschiedlich, oder es sind spezielle Pakete wie z.B. Funktionen für Statistik.

Dies unterscheidet C von z.B. BASIC oder Pascal.
Bei Pascal gibt es zur Ausgabe die Befehle WRITE() und WRITELN() welche Schlüsselworte der Sprache sind. Zudem haben diese Funktionen noch einen Schönheitsfehler. Die akzeptieren eine variable Anzahl von Parametern, was in Pascal sonst aber nicht Möglich ist.

Die entsprechende Funktion printf() in C liegt in einer Bibliothek und kann durch eine eigene Version ersetzt werden.
Damit ist es Möglich ein Programm zu schreiben, welches auf dem PC, als Consolenanwendung, seine Ausgabe auf dem Bildschirm macht und auf einem MicroController das Selbe auf einer seriellen Schnittstelle ausgibt, ohne den Source-Code ändern zu müssen (praktisch wir man dazu aber meist unterschiedliche Compiler benötigen).

Ein anderer Teil, den du noch verstehen musst, ist der Preprocessor. Etwas vereinfacht macht er automatisches „suchen und ersetzen“ bevor der eigentliche Compiler den Source-Code zu sehen bekommt.

Früher war das leichter zu sehen, da diese Teile alle einzelne Programme waren. Heute ist alles hinter der IDE versteckt.

MfG Peter(TOO)

1 Like

Hallo Kalsan,

Hallo Peter

Hast du mir zufällig einen Geheimtipp für ein
gratis-Internet-Tutorital für C? Ich lerne zwar gerade ab
einem, aber das ist noch seeeeehr basisch und enthält
keinerlei Infos über spezielle Funktionen.

Aha, ein typischer Anfängerfehler :wink:

Du hast das Konzept von C noch nicht verstanden.

C besteht eigentlich nur aus etwa 40 Schlüsselwörtern und etwa
nochmal so vielen Operatoren und „Steuerzeichen“.

Der ganze Rest, also alle Funktionen, sind in Bibliotheken
enthalten, welche fast alle in C geschrieben sind.

Mittlerweile sind einige dieser Bibliotheken in ANSI-C genormt
und bei jedem Compiler vorhanden.

Doch, ich habe das Prinzip verstanden, mich aber falsch ausgedrückt: Um genau diese Biblios geht’s mir. Beispiel: Wie messe ich in C die Zeit? In Top-Pascal war’s noch der gute alte TickCount aber in C habe ich keine Ahnung. Ich suche eine Site, wo die Funktionen der wichtigsten Biblios erklärt werden.

Die restlichen Bibliotheken sind entweder
Betriebssystem-Aufrufe, und somit mindestens bei jedem
Betriebssystem unterschiedlich, oder es sind spezielle Pakete
wie z.B. Funktionen für Statistik.

Dies unterscheidet C von z.B. BASIC oder Pascal.
Bei Pascal gibt es zur Ausgabe die Befehle WRITE() und
WRITELN() welche Schlüsselworte der Sprache sind. Zudem haben
diese Funktionen noch einen Schönheitsfehler. Die akzeptieren
eine variable Anzahl von Parametern, was in Pascal sonst aber
nicht Möglich ist.

Da ich mit TopPascal angefangen habe, gab’s für mich eine ziemliche Umstellung. Mittlerweile habe ich weniger Probleme mit der Grundstrucktur von C, aber ich weiss noch nicht, wo spezielle Funktionen versteckt sind.

Die entsprechende Funktion printf() in C liegt in einer
Bibliothek und kann durch eine eigene Version ersetzt werden.
Damit ist es Möglich ein Programm zu schreiben, welches auf
dem PC, als Consolenanwendung, seine Ausgabe auf dem
Bildschirm macht und auf einem MicroController das Selbe auf
einer seriellen Schnittstelle ausgibt, ohne den Source-Code
ändern zu müssen (praktisch wir man dazu aber meist
unterschiedliche Compiler benötigen).

Ein anderer Teil, den du noch verstehen musst, ist der
Preprocessor. Etwas vereinfacht macht er automatisches „suchen
und ersetzen“ bevor der eigentliche Compiler den Source-Code
zu sehen bekommt.

Von so etwas habe ich flüchtig in meinem Tutorital gelesen, aber nicht allzu ausführlich.

Früher war das leichter zu sehen, da diese Teile alle einzelne
Programme waren. Heute ist alles hinter der IDE versteckt.

MfG Peter(TOO)

Danke für deine sehr gute Erläuterung. Ich hab’ dir gleich ein Sternchen gegeben.

Gruss Kalsan

Hallo Kalsan,

Doch, ich habe das Prinzip verstanden, mich aber falsch
ausgedrückt: Um genau diese Biblios geht’s mir. Beispiel: Wie
messe ich in C die Zeit?

Normale Zeit, also HH:MM:SS ist Teil von ANSI-C.

Schnelleres kommt vom Betriebssystem, ist also von BS zu BS unterschiedlich.

MfG Peter(TOO)

Der ganze Rest, also alle Funktionen, sind in Bibliotheken
enthalten, welche fast alle in C geschrieben sind.

Und viele dieser nützlichen Bibliotheken sind nicht frei erhältlich.
Es gibt aber auch opensource projekte.

Mittlerweile sind einige dieser Bibliotheken in ANSI-C genormt
und bei jedem Compiler vorhanden.

Doch, ich habe das Prinzip verstanden, mich aber falsch
ausgedrückt: Um genau diese Biblios geht’s mir. Beispiel: Wie
messe ich in C die Zeit? In Top-Pascal war’s noch der gute
alte TickCount aber in C habe ich keine Ahnung. Ich suche eine
Site, wo die Funktionen der wichtigsten Biblios erklärt
werden.

Das ist die falsche herangehensweise.
Ich includiere die bibliotheken oder lade sie als DLL,
es kann also x-beliebig viele bibliotheken geben.

wenn ich unter linux programmiere brauch ich keine bibliothek
windows.h

unter windows wiederum ist es basis des ganzen systems dort brauch ich windows.h

timerfunktionen etc können also selber gemacht werden oder von betriebsystem genommen werden.

Jenachdem muss man diese bibliotheken einbinden um damit arbeiten zu können.

Die Standart bibliotheken sind
http://www.physik.uni-regensburg.de/studium/edverg/c…

damit man aber z.b. den User bei Windows mit ländereinstellungen etc auslesen kann, helfen diese bibliotheken nicht unbedingt weiter.
Sie helfen aber dabei die benötigten bibliotheken oder DLL’s zu laden und zu nutzen.

Dazu bedient man sich dann schon gemachter biliotheken.
Da user sache des betriebsystem ist , braucht man die Betriebsystem Bibliotheken.
Die Befehle dort bzw funktionen, muss man sich jeweils erarbeiten, da es zuviele sind um alle auf einmal zu lernen.

Eine einfache ist z.b. die MSDN .

Die MSDN-Entwicklerbibliothek oder auch MSDN Library genannt, ist sowohl offline auf CD-ROM bzw. DVD-ROM als auch kostenlos online auf Englisch und teilweise auf Deutsch verfügbar.
http://de.wikipedia.org/wiki/Microsoft_Developer_Net…

dort gibt es funktionen zum manipulieren mit der registry.
und da Windwos code nicht öffentlich ist, wird es auch in einigen situationen schwer sein , sich seine eigenen funktionen zu bauen ohne die windows system sachen zu benutzen.

viele andere bibliotheken gibt es bei open source oder bei anderen.

Z.b. Adobe PDF bibliotheken die einwandfrei funktionieren in C oder C++ sind nie umsonst oder schon lange nichtmehr PDF aktueller standart.

PHP , Perl etc haben diese kostenbeschränkung meist nicht, aber diese sprachen sind auch um ein vielfaches langsamer und nicht geigenet für eigene EXE programme :smile: Dafür gibbet dort die meisten bibliotheken kostenlos zum paket :smile:

Die restlichen Bibliotheken sind entweder
Betriebssystem-Aufrufe, und somit mindestens bei jedem
Betriebssystem unterschiedlich, oder es sind spezielle Pakete
wie z.B. Funktionen für Statistik.

1 Like

Hallo RakonDark

Vielen Dank, deine Infos waren sehr hilfreich! Ich gebe dir dafür ein Sternchen.

Gruss Kalsan