AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zum RunFile

Ein Thema von daniel8520 · begonnen am 17. Apr 2004 · letzter Beitrag vom 17. Apr 2004
Antwort Antwort
daniel8520
(Gast)

n/a Beiträge
 
#1

Frage zum RunFile

  Alt 17. Apr 2004, 19:05
Hallo,

Könnte mir jemand weiterhelfen, und mir beibringen, was an diesem QuellCode falsch ist?
Delphi-Quellcode:
  begin
            NKP := GetCurrentDir + '\Datas\' + 'NeuesKonto.exe';
            RunNeuesKonto.FileName := NKP;
            RunNeuesKonto.Execute;
          end;
Ich will's noch n bissel näher erklären:
Also Delphi meldet keiner fehler. Jediglich die EXE-Datei wird nicht ausgeführt, obwohl sie natürich im CurrentDir\Datas\ steht. Wenn ich dem RunFile Obj. gleich von Anfang an NKP zuweise, und es z.B. über einen Button starte, dann geht es auch. Aber wenn ich den FileName im Betrieb des Progs. ändere, passiert gar nichts.

Mach ich irgendetwas falsch?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Frage zum RunFile

  Alt 17. Apr 2004, 19:14
Du spielst Roulette... Du weisst ja garnicht, was das CurrentDir ist! Win hat immer nur EIN CurrentDir, und das kann dir von anderen Programmen schnell "verbogen" werden. Besser wäre es mit absoluten Pfaden zu arbeiten, bzw. von der Stelle deiner EXE auszugehen.

gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Frage zum RunFile

  Alt 17. Apr 2004, 19:15
Du sagst "currentdir\datas" ist das Verzeichnis ?

Dann probiers mal mit '.\datas\'+'NeuesKonto.exe'
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
daniel8520
(Gast)

n/a Beiträge
 
#4

Re: Frage zum RunFile

  Alt 17. Apr 2004, 19:16
Das CurrentDir ist meiner Meinug nach der Ordner, in dem das EXE-File ausgeführt wird. Und wenn ich dass CurrentDir in ein Edit auslesen lasse, stimmt dass auch überein.
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Frage zum RunFile

  Alt 17. Apr 2004, 19:20
Das mag an sich stimmen, zunächst. Aber das ist nicht sichergestellt. Des weiteren dürfte GetCurrentDir das Varzeichnis mit abschließenden "\" zurückgeben. Dann hast du ein "\" zuviel in deiner Angabe!!


gruss,
dizzy
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
daniel8520
(Gast)

n/a Beiträge
 
#6

Re: Frage zum RunFile

  Alt 17. Apr 2004, 19:24
Current Dir gibt es ohne ein weitere \ zurück.
Der Fehler leigt aber woanders. Hab's gefunden.

Ich wollte die Prozedur im FomrCreate ausführen, und scheinbar lassen sich im FormCreate keine FileRuns ausführen. Liege ich da richtig?

Zitat:
Das mag an sich stimmen, zunächst. Aber das ist nicht sichergestellt.
Warum ist dass nicht sicher gestellt?

Trotzdem Dank für eure Hilfe!
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Frage zum RunFile

  Alt 17. Apr 2004, 19:30
Weil ein anderes Programm (das parallel zu deinem ausgeführt wird) das verstellen kann

Bsp.:

Du startest dein Prog. im Verzeichnis: C:\meinprogramm

Danach startest du ein anderes das im Verzeichnis: C:\einanderes liegt.


Das andere Programm stellt den "CurrentPath" um auf C:\einanderes und schon semmelt dein Programm.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
daniel8520
(Gast)

n/a Beiträge
 
#8

Re: Frage zum RunFile

  Alt 17. Apr 2004, 19:39
Aha. Wusste ich gar nicht. Danke.

Und wie stehts mit deiner Variante. '.\datas\...' kann die auch verstellt werden?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Frage zum RunFile

  Alt 17. Apr 2004, 23:52
Moin Daniel,

oder jemand ruft das Programm über einen Link auf in dem das Arbeitsverzeichnis (= CurrentDir) anders eingestellt ist als es für die Ausführung des Programmes notwendig ist.

Auch durch Öffnen/Speichern Dialoge lässt sich das CurrentDir "verbiegen"

Die sicherste Methode relativ zur Position der eigenen Exe zu arbeiten dürfte sein, sich den Pfad beim Programmstart mit

sProgrammRoot := ExtractFilePath(paramstr(0)); oder Ähnlichem auszulesen, und dann immer diese Variable zu benutzen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz