[C] *.exe öffnen

  • Nabend!

    Ich bin ein Neuling in Sachen Programmieren und arbeite mich gerade durch verschiedene Tutorials zur Sprache C. Mit diesen (noch) wenigen Kenntnisse möchte ich nun eine Art "Starter" für verschiedene Programme erstellen. Ich arbeite mit DEV C++- und habe ein Konsolenprogramm erstellt, in dem ich durch entsprechende Tasten drei verschiedene Anwendungen, die alle im gleichen Ordner liegen, öffnen möchte. Über if und else habe ich die Abfragen an sich fertig, nur habe ich keine Ahnung, wie mein Programmchen neben dem

    Code
    printf("Programm XY wird gestartet\n");

    -Befehl zusätzlich das entsprechende Programm ausführt. Die Google-Suche hat nichts ergeben, aber hier kennst sich doch jemand aus, oder? Das i-Tüpfelchen wären natürlich relative Pfadangaben ;)

    Wo ich schon beim Fragen bin... Kennt ihr eigentlich ein gutes Einsteigertutorial für Entwicklung mit einem GUI? Das würde ich dann auch irgendwann mal anstreben wollen... Und: Das Syntax-Highlighting von DEV C++- gefällt mir gar nicht. Gibt es da PlugIns oder eine gute Alternative?

    MfG
    JFaron

  • Für C und C++ kann ich dir nur Code::Blocks oder Eclipse anraten.
    Ein gutes Tutorial hast du unter http://www.tutorials.at

    Und zum Starten von Programmen... http://bit.ly/uNCHvh



    Ok, vielen Dank. Habe wohl nicht ausreichend gegooglt. Frage zu Code::Blocks: Ist "Build" das Gleiche wie bei DEV C++- "Compile"? Außerdem öffnet CB immer nur die "cmd.exe", nicht mein Konsolenprogramm ;(
    Ein Frage hätte ich noch zu c: Wie kann ich die Schrift in der "Leiste des Win7-Fensters oben links" ändern und wie heißt diese "Leiste"? Hier ein Bild, oben links der entsprechende Teil ist eingekästelt...

    MfG
    JFaron

  • Ja, build ist compile. Um das Programm auszuführen, musst du Run drücken.
    Wie meinst du, er öffnet nur cmd.exe?

    Um den Fenstertitel zu ändern musst du eine Grafikbibliothek verwenden. Für C++ bieten sich da vor allem Qt, ClanLib, Winforms und SDL an. Es gibt aber noch viele andere. In diesen existiert eine Methode, um ein Fenster zu erzeugen, wo du die Größe, das Icon, den Titel, etc. einstellen kannst.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Ja, build ist compile. Um das Programm auszuführen, musst du Run drücken.
    Wie meinst du, er öffnet nur cmd.exe?

    Um den Fenstertitel zu ändern musst du eine Grafikbibliothek verwenden. Für C++ bieten sich da vor allem Qt, ClanLib, Winforms und SDL an. Es gibt aber noch viele andere. In diesen existiert eine Methode, um ein Fenster zu erzeugen, wo du die Größe, das Icon, den Titel, etc. einstellen kannst.

    Wenn ich "Run" drücke, öffnet sich nicht mein Programm, sondern das Winows 7-Konsolenprogramm cmd.exe

    Heißt das, ich kann in einem reinen Konsolenprogramm diese Zeile nicht ändern?

  • Ok, danke Dodo.

    Aber ich habe schon wieder eine Frage: Wo ist der Fehler in folgendem Code?

    Code
    ShellExecute(NULL, "open", "Test.Ink", NULL, "%userprofile%\\AppData\\Roaming\\Test", SW_MAXIMIZE);

    Es geht darum, die Verknüpfung Test.ink im oben angegeben Ordner zu starten. Die Verknüpfung wurde zuvor durch eine seperat ausgeführte Batchdatei erstellt.

    MfG
    JFaron

  • Soweit ich weiß, haben Verknüpfungen unter Windows die Dateiendung .lnk (LNK) und nicht .ink (INK) ;)
    Aber genauer weiß ich das nicht - tut mir Leid. Ich bin strikt gegen Programmierung für ein Betriebssystem und versuche Programme zu schreiben, die auf Windows, Linux und MacOS rennen.
    Deshalb hab ich ShellExecute() noch nie verwendet.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Soweit ich weiß, haben Verknüpfungen unter Windows die Dateiendung .lnk (LNK) und nicht .ink (INK) ;)
    Aber genauer weiß ich das nicht - tut mir Leid. Ich bin strikt gegen Programmierung für ein Betriebssystem und versuche Programme zu schreiben, die auf Windows, Linux und MacOS rennen.
    Deshalb hab ich ShellExecute() noch nie verwendet.

    Alles zu seiner Zeit. Ich habe mich jetzt vor einer Woche zum ersten Mal mit C beschäftigt, und die ewigen Klassenarbeiten vor den Ferien machen es nicht leichter ;) Ich habe das "l" bei *.lnk immer für ein großes "I" gehalten... Hätte ich auch drauf kommen können ;)

  • Ein weiteres Problem. Wie kann ich per if Abfragen, ob mein Programm schon einmal gestartert wurde?

    Denn beim ersten Start sollen drei Batchskripte ausgeführt werden, danach jedoch nicht mehr. Ist das möglich?

  • Da musst du beim ersten Porogrammstart eine Datei schreiben, über die du kontrollieren kannst, ob das Programm schon mal ausgeführt wurde.
    Wenn ja, existiert diese Datei und hat einen gewissen Inhalt.
    Wenn nein, dann nicht ;)

    Something big is coming. And there will be pirates and ninjas and unicorns...