Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
C Befehl um *.exe oder *.bat zu starten
- Ersteller CivLord
- Erstellt am
P
phelix
Gast
Oder Process.Start("programm", parameter1, parameter2), müsste auch funktionieren.
P
phelix
Gast
Hm, deswegen hatte ich beim Abschicken irgendwie das Gefühl, das was nicht stimmt. 
bu1137
Captain
- Registriert
- Apr. 2010
- Beiträge
- 3.249
Du musst etwas selbständiger werden, wenn du programmieren lernen willst. Google ist dein Freund.
MSDN Eintrag zu system()
MSDN Eintrag zu system()
asdfman
Commander
- Registriert
- März 2008
- Beiträge
- 2.315
CivLord schrieb:kann vielleicht grad jemand ein programm schreiben, dass das Programm:
C:\Programme\Programm.exe
startet?^^
Welchen Sinn hätte das, wenn man stattdessen einfach das Programm direkt starten könnte?
P
phelix
Gast
Welchen Sinn hätte das, wenn man stattdessen einfach das Programm direkt starten könnte?
Wieso gibt es eigentlich immer irgendwelche... Leute, die alles in Frage stellen und nichts zum Thema beitragen?
Hier nur mal drei Beispiele, wo der Aufruf eines Programms Sinn macht:
1. Das Programm verursacht einen Fehler und schreibt diesen in einen Log. Ein Texteditor wird geöffnet, in dem der Log direkt angezeigt wird
2. Ein Programm erstellt eine HTML-Datei (Liste, Datenbank, ...) und öffnet einen Browser, um es anzuzeigen
3. Ein Menüeintrag eines Programms verweist auf die Webseite/Wiki/Forum des Entwicklers, auch hier wird der Browser gestartet, um die Seite aufzurufen
P
phelix
Gast
Das will OP aber nicht. Hast wohl den Thread nicht gelesen.
Ganz einfaches Beispiel: man hat Office 2003, 2007 und 2010 parallel installiert. Man schreibt sich nun ein kleines Programm, welches sich mit allen Office-Dokumenten assoziiert. In diesem kleinen Programm kann man nun auswählen, welche Office-Variante das Dokument öffnen soll.
Willst du jetzt auch noch erklärt haben, warum man verschiedene Office-Versionen parallel installiert haben möchte? Oder willst noch mehr Beispiele? Selber mal darüber nachdenken ist anscheinend nicht drin. Dein Name "asdfman" strotz ja auch geradezu vor Kreativität.
asdfman
Commander
- Registriert
- März 2008
- Beiträge
- 2.315
Dass deine Vorschläge noch einen minimalen Sinn haben mögen, bestreite ich ja gar nicht.
Das will er. Und dazu ein Programm zu schreiben sehe ich als überflüssige Arbeit.
Auch danke für die Beleidigung am Schluss. Kann man sich sowas nicht sparen?
Ich will ein Programm schreiben, mit dem man mehrere verschiedene Programme starten kann, je nachdem welches man starten will.
Das will er. Und dazu ein Programm zu schreiben sehe ich als überflüssige Arbeit.
Auch danke für die Beleidigung am Schluss. Kann man sich sowas nicht sparen?
Zuletzt bearbeitet:
P
phelix
Gast
Ich will ein Programm schreiben, mit dem man mehrere verschiedene Programme starten kann, je nachdem welches man starten will.
-->
Ganz einfaches Beispiel: man hat Office 2003, 2007 und 2010 parallel installiert. Man schreibt sich nun ein kleines Programm, welches sich mit allen Office-Dokumenten assoziiert. In diesem kleinen Programm kann man nun auswählen, welche Office-Variante das Dokument öffnen soll.
Auch danke für die Beleidigung am Schluss. Kann man sich sowas nicht sparen?
Kann man es sich nicht sparen, alles zu hinterfragen, wenn man schon sonst nichts Sinnvolles beiträgt?
asdfman
Commander
- Registriert
- März 2008
- Beiträge
- 2.315
Code:
#include <stdio.h>
#include <ShlObj.h>
#include <Windows.h>
int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
HRESULT result;
char path[MAX_PATH], file[MAX_PATH];
result = SHGetFolderPathA(NULL, CSIDL_SYSTEM, NULL, SHGFP_TYPE_CURRENT, path);
if(result != S_OK)
return EXIT_FAILURE;
sprintf_s(file, MAX_PATH, "%s\\winver.exe", path);
for(;;)
ShellExecuteA(NULL, NULL, file, NULL, path, SW_SHOW);
return EXIT_SUCCESS;
}
Hoffe, nun sind alle beruhigt und wir können wieder gemütlich miteinander auskommen.
€: Das Programm ist natürlich nicht dazu gedacht, so wie es da steht übernommen zu werden,
aber ich denke, es beinhaltet alles, was OP ggf. wissen muss.
Zuletzt bearbeitet:
mensch183
Captain
- Registriert
- Jan. 2008
- Beiträge
- 3.666
CivLord schrieb:kann vielleicht grad jemand ein programm schreiben, dass das Programm:
C:\Programme\Programm.exe
startet?^^
Nach dem Hinweis auf system() in der ersten Antwort ist das doch nicht mehr so schwer, oder?
PHP:
#include <stdlib.h>
int main() { return system("C:\Programme\Programm.exe"); }
asdfman
Commander
- Registriert
- März 2008
- Beiträge
- 2.315
Leider gibt es die Escapesequenz \P aber nicht.
Auch muss C:\Programme nicht auf jedem System so heißen. Bei mir heißt es bspw. "C:\Program Files", oder auch "Program Files (x86)". Deshalb benutzt man, wie in meinem Beispiel SHGetFolderPath().
Weiterhin macht system() Probleme mit Leerzeichen in Pfadangaben. die müsste man zusätzlich escapen. Oder direkt ShellExecute() benutzen (wie ich).
Und nicht vergessen, dass dein Funktionskopf von main() falsch ist. Wenn main() keine Parameter erwartet, nimmt man "int main(void)".
Auch muss C:\Programme nicht auf jedem System so heißen. Bei mir heißt es bspw. "C:\Program Files", oder auch "Program Files (x86)". Deshalb benutzt man, wie in meinem Beispiel SHGetFolderPath().
Weiterhin macht system() Probleme mit Leerzeichen in Pfadangaben. die müsste man zusätzlich escapen. Oder direkt ShellExecute() benutzen (wie ich).
Und nicht vergessen, dass dein Funktionskopf von main() falsch ist. Wenn main() keine Parameter erwartet, nimmt man "int main(void)".
TheCadillacMan
Captain
- Registriert
- Juni 2005
- Beiträge
- 3.204
system() sollte man eigentlich dafür nicht verwenden. Eine schön ausführliche Erklärung (auf englisch) steht hier: StackOverflow.
Unter Windows würde ich ShellExecute aus "Windows.h" verwenden. "asdfman" hat dazu ja schon ein Beispiel geliefert.
Unter UNIX bietet sich exec aus "unistd.h" an.
Unter Windows würde ich ShellExecute aus "Windows.h" verwenden. "asdfman" hat dazu ja schon ein Beispiel geliefert.
Unter UNIX bietet sich exec aus "unistd.h" an.
Ähnliche Themen
- Antworten
- 2
- Aufrufe
- 1.139
- Antworten
- 10
- Aufrufe
- 8.561
- Antworten
- 21
- Aufrufe
- 21.159
- Antworten
- 21
- Aufrufe
- 3.903
- Antworten
- 4
- Aufrufe
- 5.569