Programmaufruf aus eigenem Programm
-
Also ich bin noch Anfänger und möchte einfach wissen, wei ich andere Programme aus dem eigenen aufrufe.
-
Seufz, schon wieder? ShellExecute oder CreateProcess.
-
Ich empfehle einen Blick in die FAQ oder einen Versuch mit der Suchfunktion mit den von Joe genannten Schlüsselwörtern.
-junix
-
Dazu steht gar nichts in der Hilfe. Das ist komisch. Wo kann ich das nachlesen?
-
das thema wurde xxxxxx-mal hier im Forum behandelt.
sonst, wenn du es lieber englisch willst, -> msnd-library
-
Also ich hab emich für WinExec entschieden. Ich möchte gerne wissen wo ich bei dieser Funktion:
WinExec("Raetsel.exe", SW_SHOWNORMAL);eine Pfadangabe hinbringe. Also ich wollte es so machen:
WinExec(".\\Rätselprogramm\\Raetsel.exe", SW_SHOWNORMAL);Doch so macht er gar nichts.
-
kenne WinExec nicht..
aber ein korrekter Pfad währe von vorteilKevinus schrieb:
WinExec(".\\Rätselprogramm\\Raetsel.exe", SW_SHOWNORMAL);Doch so macht er gar nichts.
-
je ne aber mit
.\\ gehts auch. Das hab ich schon bei einigen anderen Funktionen probiert. Wenn du die Doppelbackslah meinst, die müssen doch so sein dachte ich. Außerdem würde ich gerne wissen, wohin ich den Pfad und wohin Parameter schreibe.
-
Hallo,
WinExec ist doch uralt...
(Obsolete sozusagen...
siehe Hilfe)
Nimm lieber das hier :AnsiString Pfad_der_EXE = "C:\\Rätselprogramm\\Raetsel.exe"; ShellExecute(Handle, 0, ExtractFileName(Pfad_der_EXE).c_str(), 0, ExtractFilePath(Pfad_der_EXE).c_str(), SW_NORMAL);Und nimm besser komplette Pfade, das bewahrt Dich vor unangenehmen Überraschungen.
Bis dann denn,

Nash
-
Aber muss dann den NAmen nach nicht bei:
Extract File Name nur Raetsel.exe
und bei
Extract Path Name der AnsiString?Muss ich AnsiString oder kann ich auch andere verwenden?
Ich benutze deshalb nicht den gesamten Pfadnamen, da das:
1. auh mit Punkt und dann restlicher Pfad geht.
2. ich mein Programm flexibel haben möchter, damit nicht jeder genau in den
Pfad installieren muss.Was hat c.str() zu bedeuten, oder was machjt es?
-
Hallo,
Aber muss dann den NAmen nach nicht bei:
Extract File Name nur Raetsel.exe
und bei
Extract Path Name der AnsiString?Muss ich AnsiString oder kann ich auch andere verwenden?
Hilfe benutzen...

Mist... das kommt davon, wenn man ohne zu überlegen kopiert...

So ist's richtig :AnsiString Pfad_der_EXE = "C:\\Rätselprogramm\\Raetsel.exe"; ShellExecute(Handle, 0, Pfad_der_EXE.c_str(), 0, ExtractFilePath(Pfad_der_EXE).c_str(), SW_NORMAL);Ich benutze deshalb nicht den gesamten Pfadnamen, da das:
1. auh mit Punkt und dann restlicher Pfad geht.Mach was immer Du auch willst... :p
2. ich mein Programm flexibel haben möchter, damit nicht jeder genau in den Pfad installieren muss.
Das kann man auch anders :
z.B. mitExtractFilePath(Application->ExeName)und von hier weiter die Ordner ansprechen...

c_str()
Anklicken und dann F1 drücken.

Bis dann denn,

Nash
-
Call of undefined function "Shell Execute"
Das kommt wenn ich Shell Execute einfüge. Was kann ich tun.
-
Hallo,
ShellExecute ist ein Wort.
Bis dann denn,

Nash
-
vielleicht mal ShellExecute() zusammenschreiben???
-
Also ich hab mit shellapi.h gemacht und dann gehts.
-
Nach langer Zeit greife ich am Besten meinen eigenen Thread wieder auf, da meine neuen Fragen etwas mit dem Thema Shell Execute zutun haben.
... String netsend="net send "+IP+" "+Text; WinExec(netsend.c_str(),SW_SHOW); ...Diese Funktion funktioniert einwandfrei(Ich habe den restlichen Programmcode weg gelassen). Aber die zweite Methode:
... String netsend="net send "+IP+" "+Text; ShellExecute(NULL,"open",netsend.c_str(),0,0,SW_SHOW); ...funktioniert nicht, der Compiler gibt zwar keine Fehler aus, doch machen tut das Programm auch nichts, also wo liegt mein Fehler????
Kann man mit ShellExecute auch den Status des aufgerufenen Programmes abfragen und wenn ja dann ganz normal mit ner Int Variable?
-
Hallo
ja, mit ShellExecuteEx(). Damit bekommst du ein Prozeßhandle, das du überwachen kannst. Das gehört dann aber ins WinAPI-Forum.
bis bald
akari
-
Jo sorry ich habe meinen Beitrag oben nochmal editiert um einen Doppelpost zu vermeiden, aber du warst anscheinend schneller und danke für die Beantwortung der 2. Frage.
-
guggt sich denn niemand mehr die hilfe oder die beispiele in den faq an??? *seufz*
Windows-SDK schrieb:
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);AnsiString NetStr = "net"; AnsiString NetParamStr = "send 127.0.0.1 hallo dude"; ShellExecute(0, "open", NetStr.c_str(), NetParamStr.c_str(), 0, SW_SHOW);net ist ein programm, der rest sind nur die parameter, also auch so benutzen!
-
ach gott ja ich noob. Na klar net is ja das Programm und send nur ne Funktion davon, danke für die Hilfe mir ist das echt nicht aufgefallen.
Nagut dann kommt die nächste Frage auf, wie kann ich die Error Messages anzeigen bzw. auswerten lassen. Also es hat was mit handle zu tun nur wie sätze ich das ganze richtig ein, achja und der Beitrag in der msdn Libary hat mich nicht weitergebracht, also könntet ihr es mir bitte richtig erklären und nicht unbedingt so schwer verständlich wie in der msdn.
-
Will mir dazu niemand helfen, ist ja geradezu ausgestorben.