fgetc und fputc bei ordnerwechsel
-
ShellExecute(NULL, "open", "prog.exe", NULL, NULL, SW_SHOW);
ist ein befehl um ein programm oder irgend eine datei zu öffnen.da wo das prog.exe steht kann auch ein dateipfad hin,
was mache ich nun wenn ich keinen dateipfad habe?
"..//" vorsetzen geht bei dieser funktion nichtich kann den dateipfad mit getcwd() auslesen und in einen string speichern.
mein problem ist nun ganz simpel:
angenommen ich hab einen string mit einem dateipfad
string pfad = "C://Programme//ordner";
wie bekomme ich jetzt "//ordner" weg?
gibt es da einen befehl oder muss ich da zeichenweise löschen bis ich nur noch
"C://Programme" habe?
-
Versuchs mal mit
"..\\"
statt"..//"
Ansonsten...:
Shell Path Handling Functions
-
hustbaer schrieb:
Versuchs mal mit
"..\\"
statt"..//"
Ansonsten...:
Shell Path Handling Functionsc]"..\"[/c
dabei komme ich in die andere richtung, das klappt aber komischer weise O.ohttps://msdn.microsoft.com/en-us/library/windows/desktop/hh707092%28v=vs.85%29.aspx
PathCchRemoveFileSpec würde perfekt passen, aber das ist c++ oder?
muss das hier in c schreiben.
-
Du hast also den Pfad "C:/Programme/ordner" und möchtest, möglichst ohne umständliches Löschen von Zeichen, den darüber liegenden Order, hier also "C:/Programme", ansprechen? Ich bin nicht der große Windowsshellexperte, aber ich vermute mal, dass dies durch Anfügen von "/.." passen sollte, also indem du aus dem Pfad "C:/Programme/ordner/.." machst.
-
danke das könnte sein, werde das ausprobieren wenn ich zuhause bin.
-
ok habs jetzt getestet, es funktioniert insoweit dass es mir den ordner öffnet.
sprintf(pfad,"%s\\..\\..",pfadname); ShellExecute(NULL, "open", pfad, NULL, NULL, SW_SHOW);
aber wie spreche ich ein bestimmtes programm an?
so gehts nicht:sprintf(pfad,"%s\\..\\..prog.exe",pfadname); ShellExecute(NULL, "open", pfad, NULL, NULL, SW_SHOW);
-
Dein Programm heißt wahrscheinlich nicht ..prog.exe
-
nein es ist lediglich ein beispielname, wenn du auf etwas andeuten willst, ich möchte ein funtool machen, aber nicht was irgendjemandem schaden zufügt.
-
Vielleicht solltest du mal sowohl Antworten als auch dein eigenes Programm genauer lesen.
-
das funktioniert auch nicht..
Danke dennoch für die antworten
-
Was SeppJ Dir sagen möchte, ist:
Dein Programm heißt wahrscheinlich nicht
"..prog.exe", sondern
"prog.exe",
demzufolge sollte Dein Pfad wohl so:sprintf(pfad,"%s\\..\\..\\prog.exe",pfadname);
aussehen ...
-
Danke, soweit funktioniert es.
Hab jetzt nur das problem dass mein programm die eigene kopie starten kann aber die kopie nicht "das recht"? hat fort zu fahren??
Gibt es da irgendwelche einschrenkungen von windows aus?