AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ShellExecute Buggt bei bestimmten Programmen?
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute Buggt bei bestimmten Programmen?

Ein Thema von glkgereon · begonnen am 14. Apr 2006 · letzter Beitrag vom 14. Apr 2006
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 13:47
Hi,

Ich nutze folgenden Code um eine Anwendung auszuführen:

ShellExecute(0, PChar('open'), PChar(ExeName), PChar(Parameter), PChar(AppFolder), SW_SHOW); Nun bin ich mir schon nicht sicher:
muss AppFolder der Ordner von der aufrufenden oder der aufgerufenen Anwendung sein? oder noch was anderes?

atm ist es nämlich der Ordner von der aufgerufenen.
das funktioniert auch eigentlich...Thunderbird, Steam, Winamp, lässt sich alles starten.
Allerdings gibt es ein Spiel "Empires die Neuzeit" (vielleicht kennt das der ein oder andere) welches sofort abstürzt
Zitat von Fehlermeldung:
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Runtime Error!

Program: D:\Empires die Neuzeit\Empires_DMW.exe



abnormal program termination
Während es sich aus dem Explorer mit einem Doppelklick ganz normal starten lässt.

Woran liegt das?
ist einer der Parameter falsch oder "ungenau"?
können das leute bestätigen oder habe das problem nur ich?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 13:52
Nun AppFolder muss das Arbeitsverzeichnis der aufgerufenen Anwendung sein. Sollte also das Verzeichnis der aufgerufenen Anwendung sein.

Vielleicht erwartet ja die Anwendung ein anderes Arbeitsverzeichnis oder auch bestimmte Parameter. Gibts vielleicht irgendwo (Desktop / Startmenü) ne Verknüpfung darauf? Dann schau doch mal, was da als Arbeitsverzeichnis und als Parameter angegeben ist.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#3

Re: ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 13:52
Zitat:
Woran liegt das?
An den Leerzeichen im Pfad.
Probiers mal mit:"D:\Empires die Neuzeit\Empires_DMW.exe"
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 15:22
also bei
ExeName = "D:\Empires die Neuzeit\Empires_DMW.exe"
Folder = "D:\Empires die Neuzeit"

hängt er immer noch

kann es daran liegen das es "\" und nicht "/" sind?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#5

Re: ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 17:10
Hallo,

wenn der Pfad als separater Parameter (AppFolder) angegeben wird, würde ich ihn bei ExeName weglassen. Sonst wäre es ja sozusagen "C:\Pfad\C:\Pfad\EXE.exe".
Bei mir gab es übrigens oft Probleme, wenn ich bei Programmen 'open' geschrieben habe. Ich habe dann immer nil genommen.

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 17:20
Zitat von ManuMF:
wenn der Pfad als separater Parameter (AppFolder) angegeben wird, würde ich ihn bei ExeName weglassen. Sonst wäre es ja sozusagen "C:\Pfad\C:\Pfad\EXE.exe".
Also selbst auf der [msdn:99d6718d7c="Shell Execute"]MSDN-Seite[/msdn:99d6718d7c] stehts nicht genau, aber ich nehme mal an, dass das das Arbeitsverzeichnis ist.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 17:47
Moin Manu,

Zitat von ManuMF:
wenn der Pfad als separater Parameter (AppFolder) angegeben wird, würde ich ihn bei ExeName weglassen. Sonst wäre es ja sozusagen "C:\Pfad\C:\Pfad\EXE.exe".
Exename ist der Pfad zur Datei. Nur wenn sich das Verzeichnis im Suchpfad befindet, kann man es weglassen.
AppFolder ist das Arbeitsverzeichnis. Wird dieses weggelassen, ist das Programmverzeichnis des aufgerufenen Programmes das Arbeitsverzeichnis.

@Gereon:
Also die \ sind schon OK.

Schau Dir doch mal den Rückgabewert von ShellExecute an (hierzu auf jeden Fall die Kommentar im "normalen" PSDK oder auf MSDN beachten, und nicht die des bei Delphi mitgelieferten PSDK-Auszuges).
Vielleicht gibt der ja schon einen brauchbaren Hinweis.

Probier's evtl. doch mal so:

ShellExecute(0,nil,'"D:\Empires die Neuzeit\Empires_DMW.exe"',nil,nil,SW_SHOWNORMAL);
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
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: ShellExecute Buggt bei bestimmten Programmen?

  Alt 14. Apr 2006, 18:15
Probiere mal einen Aufruf im 8.3 - Format, dann weißt du zumindest, obs am Pfad oder der EXE liegt.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  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 04:37 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