Programm wird vom Betriebssystem verweigert
-
Verzeichnistrenner
Der schreibt mir ja auch als fehler den pfad mit dem Prog
-
Vielleicht solltest du mal die ganze Zeile angeben und welcher fehler denn genau kommt.
Ansonsten sollte das vielleicht eher so aussehen.GetCurrentDir() + "\\FMS.exe"
-
RunApplication(String(GetCurrentDir()+"\\FMS.exe").c_str(), 0);
Fehlermeldung:
"Der Zugriff auf die Datei 'C:\Programme\Borland\Projects\Updater\FMS.exe' wurde vom Betriebssystem verweigert!"
-
Hallo,
lässt es sich denn manuell starten? Nutzt du evtl. Vista und hast nicht die nötigen Rechte?
mfg, Micha
-
Ja manuell lässt es sich starten!
Also ich lasse es durch einen selbstgeschriebenen Updater runterladen und dann sóll es ausgeführt werden!
-
Hallo,
ist es denn möglich dass der Updater zu dem Zeitpunkt noch auf die Datei zugreift? Irgendeine nicht geschlossene Verbindung oder so?
mfg, Micha
-
Ja stimmt ich hab das disconnecten noch nich drin!
Liegts daran?
-
Hallo,
naja es kann schon sein dass der Prozess noch auf die Datei zugreift. Probier es doch einfach mal aus!
mfg, Micha
-
hmm ne klappt auch nicht!
Gleicher Fehler!
-
Hallo,
Hast Du auch das Standardverzeichniss (lpDirectory) angegeben ?
Ansonsten wäre der vollständige Aufruf sinnvoll...Nash
-
hä wie meinst du das?
Die Datei ist ja in dem angegebenen Ordner
-
Hallo,
nochmal zum grundlegenden Verständis... Du hast einen Updater der dir die Datei von irgendwo runterlädt? Dieser Updater führt direkt nach dem Runterladen die Anwendung aus? Oder hast du dafür eine seperate Anwendung?
Kann es sein dass die Datei einfach noch nicht bereit ist? Eventuell musst du nachdem der Download abgeschlossen ist noch kurz warten bevor die Datei ausgeführt werden kann?!
mfg, Micha
-
ok das probier ich mal aus!
-
Hallo,
Timbo08 schrieb:
hä wie meinst du das?
Die Datei ist ja in dem angegebenen OrdnerHINSTANCE 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 );
Der Parameter "lpDirectory" ist nicht gesetzt wenn ich das richtig sehe.
Evtl. ist es ja ein Versuch wert.Also ich benutze die Funktion immer ein wenig anders :
AnsiString Pfad = "C:\\Test\\Test.exe"; HINSTANCE erg = ShellExecute(Handle, 0, ExtractFileName(Pfad).c_str(), 0, ExtractFilePath(Pfad).c_str(), SW_NORMAL);
Wobei "lpParameters" bei Bedarf benutzt wird...
Nash