michi262
Goto Top

C Windows Programmierung Problem bei Starten von Datein

Hi @ all,

ich habe mir ein Programm geschreiben, mit dem ich mehrere Programme starten kann.
Das Programm das gestartet werden soll, solte normal bei einem klick auf den entsprechenden Button startet.

Nun mein Problem:

Wenn ich auf einen Buton klicke, kommt kurz ein leeres CMD Konsolenfenster und verschwindet wieder. Aber das Programm das gestartet werden soll starter nicht. Kann mir bitte jemand helfen?

Hier der code:

/////////////////////////////////////////////////////////////////////////////////////
// Spezial_Starter.exe - Programm zum Starten einiger Programme
// Copyright (C) 2008 by Michi26206
////////////////////////////////////////////////////////////////////////////////////

#include <windows.h>
#include <stdio.h>
#include "resource.h" 

BOOL CALLBACK hauptfunction(
HWND hwnd, // Handle zum aufrufenden Fenster
UINT msg, // Nachricht
WPARAM wParam, // genauere Beschreibung
LPARAM lParam) // genauere Beschreibung
{
switch(msg) {
case WM_CLOSE:
EndDialog(hwnd,0);
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDSEMIOOS:
system("C\\Programme\\semiOOS\\System_SEMIOOS.jar");  
return TRUE;

case IDWOWSERVER:
system("C\\Programme\\WOW Server\\wow_server_starter.cmd");  
return TRUE;

case IDWOWREALM:
system("C\\Programme\\WOW Server\\wow_server_starter_2.cmd");  
return TRUE;

case IDWECKER:
system("C\\Programme\\Wecker\\MP3AlarmClock.exe");  
return TRUE;

case IDTVGENIAL:
system("C\\Programme\\TVgenial\\TVgenial.exe");  
return TRUE;

case IDXFIRE:
system("C\\Programme\\Xfire\\xfire.exe");  
return TRUE;

case IDGOOGLEEARTH:
system("C\\Programme\\Google\\Google Earth\\googleearth.exe");  
return TRUE;

case IDNAVICAT:
system("C\\Programme\\PremiumSoft\\Navicat 8.0 Lite MySQL\\navicat_lite.exe");  
return TRUE;

case IDTEAMVIEWER:
system("C\\Programme\\TeamViewer3\\TeamViewer.exe");  
return TRUE;

case IDHDGRAPH:
system("C\\Programme\\HDGraph\\HDGraph.exe");  
return TRUE;

case IDNERO:
system("C\\Programme\\Ahead\\Nero Smart\\NeroSmart.exe");  
return TRUE;

case IDCLONECD:
system("C\\Programme\\SlySoft\\CloneCD\\CloneCD.exe");  
return TRUE;

case IDFRAPS:
system("C\\Programme\\Fraps\\fraps.exe");  
return TRUE;

case IDQUAKE:
system("C\\Programme\\Quake 3\\quake3.allowcheats.vtg.exe");  
return TRUE;

case IDXAMMP:
system("C\\Programme\\xampp\\xampp-control.exe");  
return TRUE;

case IDDSLAN:
system("C\\Programme\\DS-LAN\\DS-Lan-Starter.exe");  
return TRUE;

case IDDISKDEFRAG:
system("C\\Programme\\AusLogics Disk Defrag\\diskdefrag.exe");  
return TRUE;

case IDSKINBUILDER:
system("C\\Programme\\SkinBuilder\\SkinBuilder.exe");  
return TRUE;

case IDTHEMESCREATOR:
system("C\\Programme\\Sony Ericsson\\Themes Creator\\ThemesCreator.exe");  
return TRUE;

case IDSUPERPI:
system("C\\Programme\\SUPER_PI\\SUPER_PI.EXE");  
return TRUE;

case IDTS:
system("C\\Programme\\Teamspeak2_RC2\\TeamSpeak.exe");  
return TRUE;
}
}
return FALSE;
} // Ende der Funktion
int APIENTRY WinMain(HINSTANCE hinst, HINSTANCE hinstPrev,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc;
memset(&wc,0,sizeof(wc));
wc. lpfnWndProc = DefDlgProc;
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = hinst;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
wc.lpszClassName = "Spezial_Starter";  
RegisterClass(&wc);
return DialogBox (
hinst,
MAKEINTRESOURCE(IDD_MAINDIALOG),
NULL,
(DLGPROC) hauptfunction);
} // Main - Funktion wieder geschlossen.

ich habe das ganze auch schon mit

system("\"C:\\Programme\\...\\....exe\"");  

versucht. aber leider ohne Erfolg

Hier ein Bild vom Programm:

769025abce10f1b2d118da9a5a10cc62-prog

und hier eins wenn das CMD Fenster kurz erscheint:

9478c40dc7626440205249fbada2f103-fehler

MFG Michi262

edit: ich verwende lcc-win32

Content-ID: 82598

Url: https://administrator.de/contentid/82598

Ausgedruckt am: 16.11.2024 um 09:11 Uhr

ConsoleWriteLine
ConsoleWriteLine 07.03.2008 um 23:57:40 Uhr
Goto Top
Ich hätte die Syntax so gewählt wie man es kennt:

C:\Programme\SUPER_PI\SUPER_PI.EXE
Michi262
Michi262 08.03.2008 um 02:22:05 Uhr
Goto Top
ne. da bringt er mir nen error face-sad
miniversum
miniversum 08.03.2008 um 10:15:04 Uhr
Goto Top
Das mit dem
system("\"C:\\Programme\\...\\....exe\"");
Kannst Du prinzipiell immer machen. Eigentlich braucht man es nur bei Leerstellen im Pfad oder Dateinamen, aber es schadet auch nicht wenn keine Leerstellen enthalten sein sollten.


Weiterhin wirst du feststellen das wenn du zwischen die folgenden Zeilen
system("C\\Programme...");
return TRUE;
ein
system("pause");
einfügst das dort kurz diese Fehlermeldung erscheint:
Das System kann den angegebenen Pfad nicht finden.
Der Grund beim genauen hinsehen ist, dass du den ":" nach dem Laufwerksbuchstaben vergessen hast.
Michi262
Michi262 08.03.2008 um 13:24:16 Uhr
Goto Top
lol. wie blöd kann man sein face-sad

und vorallem Blind das ich das nicht gesehen habe face-sad

Aber danke für deine hilfe face-smile

also es geht face-smile Allerdings bleibt nun das CMD Konsolenfenster auf. Aber das gewünschte Programm startet.

MFg vom blinden Michi262

edit: mir ist auch noch aufgefallen, das 2 Programme nicht starten obwohl der Pfad richtig ist. Das sind Nero und DS-Lan. Auserdem schreiben einige Programme ihre Datein in den Ordner wo das Programm leigt oder suchen Dateien die sie brauchen in diesem Ordner. Kann man das irgendwie beheben?
miniversum
miniversum 08.03.2008 um 13:41:13 Uhr
Goto Top
Probiers mal so:
system("start /B \"\" \"C:\\Programme\\....exe\"");
Damit sollte das CMD Fenster nur kurz erscheinen und sofort wieder verschwinden, die Anwendung aber trotzdem starten.
Michi262
Michi262 08.03.2008 um 14:18:00 Uhr
Goto Top
ja. danke funktioniert.

mittlerweile hab ich es auch hinbekommen das die 2 Programm die nicht wollten starten.

Nun brauche ich noch eine Lösung für das Problem das das Proramm das ich durch mein Programm starte auf den Pfad zugreift (schreiben + lesen) in dem mein Programm leigt. Kann mir da wer helfen.

Habt ihr meinen Problem verstanden? face-smile
Guenni
Guenni 17.03.2008 um 06:42:33 Uhr
Goto Top
@michi

Hi,

mit dem Parameter /D Pfad kannst du ein Startverzeichnis angeben.

Eingabeaufforderung öffnen, start/? eingeben, da bekommst du alle

Parameter aufgelistet.

Gruß
Günni
Michi262
Michi262 19.03.2008 um 01:24:17 Uhr
Goto Top
ok thx. werde es mal probieren

MFG Michi262