datei öffnen

CantStOp

Grünschnabel
hi
ich möchte mit WinExec eine datei datei öffen
der pfad soll aber aus einer .ini datei geladen werden
ich hab auch schon gegoogelt und bin so weit gekommen:

Code:
sing namespace std;
string str;
stringstream ss; 
int iMatches = GetPrivateProfileInt( _T("section"), _T("keyA"),DEFAULTVALUE_MATCHES, _T("C:\\Programmieren\\Dev-Cpp\\meine.ini") );
			     
ss<<iMatches;
str = ss.str(); 
    
::WinExec("\"str\" -L -S",SW_SHOWNORMAL);

es gibt zwar keine fehlermeldung aber trotzdem nicht xD

ich bin für jede hilfe dankbar
mfg
 
Hallo,

1. Aus der INI liest du eine Zahl. Mir ist nicht klar, wie willst du davon zu einen Pfad für eine ausführbare Datei kommen willst?

2. Die Anwendung von "str" ist falsch, die müsstest schreiben:
C++:
wstringstream ss; 
ss << iMatches << L" -L -S";
WinExec(ss.str().c_str(), SW_SHOWNORMAL);
3. "WinExec" stammt aus der 16-Bit-Ära. Nimm stattdessen besser "ShellExecute":
C++:
ShellExecute(NULL, _T("open"), ss.str().c_str(), NULL, NULL, SW_SHOW);

Gruß
MCoder
 
Danke erstmal für deine Hilfe
ich komme aber nicht wirklich weiter

in meiner .ini datei steht
Code:
[section]
keyA=C:\\Programme\\X\\X.exe

könntest du mir vieleicht auch helfen den pfad aus der .ini richtig aufzurufen
und eventuel noch ma den ganzen code mit WinExec zusammen zu schreiben weil
SchellExecute geht bei mir nicht
Das wäre wirklich sehr net
mfg
 
Hallo,
du musst "GetPrivateProfileString()" nehmen:
C++:
TCHAR tchBuffer[256];

GetPrivateProfileString( _T("section"),
                         _T("keyA"),
                         _T(""),
                         tchBuffer,
                         sizeof(tchBuffer),
                         _T("C:\\Programmieren\\Dev-Cpp\\meine.ini") );

wstringstream sstr;
sstr << (LPCTSTR)tchBuffer << L" -L -S";
                         
::WinExec(sstr.str().c_str(), SW_SHOWNORMAL);
Mit folgenden Zeilen am Anfang der Sourcedatei sollte eigentlich auch "ShellExecute gehen:
C++:
#pragma comment (lib, "shell32.lib") 
#include <shellapi.h>
Gruß
MCoder
 
Hallo,
Wenn ich das so kompilliere bekomme ich folgene fehler:
Code:
error C2228: Links von ".str" muss sich eine Klasse/Struktur/Union befinden.
error C2228: Links von ".c_str" muss sich eine Klasse/Struktur/Union befinden.	
error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'sstr'	
error C2065: 'wstringstream': nichtdeklarierter Bezeichner
error C2065: 'sstr': nichtdeklarierter Bezeichner

das liegt wahrscheinlich an
Code:
wstringstream sstr;

muss ich dafür extra header datein einbinden ?
wenn ja welche ?
mfg
 
Hallo, du brauchst den Header "string" und eine Anweisung für den namespace:
C++:
#include <string>
using namespace std;
Gruß
MCoder
 
Zurück