AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ShellExecute - funktioniert nicht.

ShellExecute - funktioniert nicht.

Ein Thema von skyquaker · begonnen am 23. Mai 2008 · letzter Beitrag vom 25. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2   
skyquaker

Registriert seit: 14. Sep 2006
96 Beiträge
 
Delphi 7 Professional
 
#1

ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 11:49
Ich möchte mit ShellExecute ein externes Programm aufrufen. Diese Programm ist ein compiliertes (gepacktes) PERL Script (PerlAPP).


ShellExecute(Application.Handle, nil, PChar('.\bin\programm.exe'),'','',SW_SHOW); Wenn ich es so mache, wird das Programm nicht einmal angezeigt.



Delphi-Quellcode:
Batch:

.\bin\programm.exe
pause
ShellExecute(Application.Handle, nil, PChar('.\bin\test.exe'),'','',SW_SHOW); Auf diese Weise startet das Programm trotzdem nicht. Ich kriege einen Fehler angezeit, der mit Ressourcen des PERL Scripts zu tun hat.

Wenn ich die Batch Datei oder die Exe manuell aufrufe, funktioniert sie einwandrei.


mfg skyquaker
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 11:50
kontrolliere mal, ob er die datei überhaupt findet, das kannst du mit fileexists('deine datei') machen..
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#3

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 11:56
Moin,

wieso gibst du als zweiten Parameter "nil" mit? Das ist ja die Operation, die er machen soll und ich hab da immer 'open' stehen.

Also:
ShellExecute(Application.Handle, 'open', PChar('.\bin\programm.exe'),'','',SW_SHOW); Bis denn
Bommel
  Mit Zitat antworten Zitat
skyquaker

Registriert seit: 14. Sep 2006
96 Beiträge
 
Delphi 7 Professional
 
#4

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 11:57
Zitat von lbccaleb:
kontrolliere mal, ob er die datei überhaupt findet, das kannst du mit fileexists('deine datei') machen..
FileExists meldet "TRUE"
  Mit Zitat antworten Zitat
skyquaker

Registriert seit: 14. Sep 2006
96 Beiträge
 
Delphi 7 Professional
 
#5

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 12:00
Zitat von Bbommel:
Moin,

wieso gibst du als zweiten Parameter "nil" mit? Das ist ja die Operation, die er machen soll und ich hab da immer 'open' stehen.

Also:
ShellExecute(Application.Handle, 'open', PChar('.\bin\programm.exe'),'','',SW_SHOW); Bis denn
Bommel
'open' habe ich auch schon ausprobiert, selber Effekt.

Das Problem scheint mit der EXE zu tun zu haben. Sie sucht eine Ressource, die sie nicht finden kann. Wenn ich sie manuell aufrufe läuft sie jedoch einwandfrei.
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#6

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 12:03
Ach so, noch eine Idee: ShellExecute gibt einen Wert zurück, den du abfangen und z.B. per MessageDlg ausgeben kannst. Laut Hilfe sollte er größer als 32 sein, damit der Aufruf erfolgreich war, der Rest unter 32 ist dann ein Ferhlercode.

Bis denn
Bommel
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 12:32
Gib mal in Arbeitsverzeichnis an und/oder versuch es mal mit einem absoluten Pfad, wer weiß zu was dein relativer Pfad relativ ist.

Aber erst Maßnahme ist immer, den Rückgabewert auszuwerten, dann spart man sich das rumgerate, auch hier im Forum.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jmit
jmit

Registriert seit: 24. Feb 2005
Ort: Langelsheim
383 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 15:09
Hast Du Dir schon einmal folgenden Link angeschaut:

ShellExecute vom Delphi-Treff

Gruß Jörg
Windows 7, Firefox Version 3.6, Turbo Delphi für Win32
  Mit Zitat antworten Zitat
skyquaker

Registriert seit: 14. Sep 2006
96 Beiträge
 
Delphi 7 Professional
 
#9

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 15:29
Ich hab die Exe Datei (und ihre Ressourcen) probehalber ins Anwendungsverzeichniss verschoben und siehe da: Es geht ohne Probleme. Die Andwendung kann also im Verzeichniss "BIN" ihre Ressourcen nicht finden und sucht sie im Anwendungsverzeichniss "..\BIN". Kann ich das irgendwie beheben oder muss ich alles einfach aus dem Anwendungsverzeichniss heraus aufrufen?
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
648 Beiträge
 
Delphi 12 Athens
 
#10

Re: ShellExecute - funktioniert nicht.

  Alt 23. Mai 2008, 15:34
Der fünfte Parameter gibt das Arbeitsverzeichnis an. Hast du denn schon mal

ShellExecute(Application.Handle, nil, PChar('.\bin\programm.exe'),'',PChar('.\bin'),SW_SHOW); versucht?

Wahlweise auch mal an beiden Stellen mit absoluten Pfad-Angaben testen...

Bis denn
Bommel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:28 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