Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

23.12.2005, 17:50

Programm "registrieren"

sry aber ich habe überhaupt keine Ahnung, wie ich meine Frage formilieren soll, aber mein Prob lautet in etwa so:
zb bei Microsoft Word ist es ja möglich, eine DOC-Datei in einem Ordner anzuklicken, worauf sich dann Word und damit die DOC-Datei selbst öffnet. Daher muss es doch irgendwie möglich sein, ein Prog Windows bekannt zu machen, damit Windows weiß, wie es eine bestimmte Datei öffnen soll.
Weß jemand, wie das geht?
Mein Projekt: Rise of the Sylvan

matthias

Alter Hase

Beiträge: 449

Wohnort: wipperfürth

  • Private Nachricht senden

2

23.12.2005, 18:02

das wird in der registry gespeichert. Jeder dateiendung kann man da ein programm (oder mehrere) zuordnen.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

23.12.2005, 18:03

Jupp per Ordneroption Dateitypen oder per Registry oder per Öffnen mit ->immer öffnen mit
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

4

23.12.2005, 19:15

Thx.
Wie kann man in C++ einen Registry-Eintrag machen?
Und woher weiß das Prog, welche Funktion es ausführen soll, wenn auf die Datei geklickt wurde?
Mein Projekt: Rise of the Sylvan

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

23.12.2005, 19:29

Das Programm weiß garnichts, aber wenn eine Datei mit entsprechender Dateiendung geöffnet werden soll, wird das Programm aufgerufen und bekommt als Argument die Datei und den Dateipfad mitgeliefert.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

6

23.12.2005, 19:30

so viel ich weiss, ist im dritten Parameter der WinMain Funktion die Kommandozeile in einem String mit der das Programm aufgerufen wurde. Wurde das Programm nun durch einen Doppelklick auf eine Datei geöffnet, enthält der String den Dateinamen aber vielleicht noch andere Dinge. Bin mir da nicht mehr so sicher, ist schon 'ne Weile her.

EDIT: Hab das mal kurz getestet und festgestellt, dass der Parameter den Dateinamen mit Pfad in Anführungs- und Schlusszeichen enthält.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

23.12.2005, 19:37

So sieht es bei mir aus

C-/C++-Quelltext

1
2
3
4
5
6
7
    if(lpCmdLine && strlen(lpCmdLine))
    {
        lpCmdLine[strlen(lpCmdLine)-1] = NULL;//KA mehr was das soll

        Editorfenster::neu(0);
        if(aktuellesFenster)    
            aktuellesFenster->Modell = spiel.pModell->Modellladen(lpCmdLine + 1, true);
    }
KA warum ich da diesen ganzen Kram gemacht habe :angel:
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

8

23.12.2005, 20:37

Zitat von »"Nox"«

lpCmdLine[strlen(lpCmdLine)-1] = NULL;//KA mehr was das soll

Damit hast du vermutlich das Schlusszeichen gelöscht...

Zitat von »"Nox"«

lpCmdLine + 1

...und hiermit das Anführungszeichen...

...und am Schluss hattest du dann noch den Pfad auf deine Datei.
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

9

24.12.2005, 10:14

Danke für eure Antworten. Aber wie kann ich denn in der Registry einer Dateiendung ein Programm zuordnen?
Mein Projekt: Rise of the Sylvan

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

10

24.12.2005, 14:02

@Crash

Die WinAPI gibt dir Funktionen in die Hand, z.B. RegCreate. Von denen würd ich aber abraten, da die meisten Installer sowieso einen "Editierer" für Dateiendungen haben, da kannst du das ganz bequem einstellen. Solche Installer sind z.B. beim Visual Studio mit dabei.

Werbeanzeige