AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit ShellExecute

Ein Thema von Alfonso · begonnen am 3. Nov 2010 · letzter Beitrag vom 3. Nov 2010
Antwort Antwort
Alfonso

Registriert seit: 10. Jan 2006
250 Beiträge
 
Delphi 11 Alexandria
 
#1

Probleme mit ShellExecute

  Alt 3. Nov 2010, 19:12
Hi,
mit Shellexecute rufe ich eine Datei auf (z.b: C:\test\test.pdf) und das jeweils assoziierte Programm öffnet es, in diesem Fall Acrobat Reader.
Wenn ich unter Windows 7 PNG oder JPG mit dem Windows Paint Programm verknüpft habe, was auch der Standard ist, wird nichts geöffnet und es gibt auch keine Fehlermeldung. Verknüpfe ich es mit Irfanview, läuft es perfekt.

Delphi-Quellcode:
function ExecuteFile(const FileName, Params, DefaultDir: string;
  ShowCmd: Integer): THandle;
//Programm ausführen
var
  zFileName, zParams, zDir: array[0..79] of Char;
begin
  Result := ShellExecute(Application.Handle, nil,
    StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
    StrPCopy(zDir, DefaultDir), ShowCmd);
end;
Weis jemand Rat?

Gruß
Alfonso
Alfonso
Seit Turbo Pascal 3.0 dabei!
Ewiger Pascal Fan!
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: Probleme mit ShellExecute

  Alt 3. Nov 2010, 19:13
Warum nil und nicht 'open' als zweiter Parameter? I.e. als Verb.

Zitat:
NULL
In systems prior to Microsoft Windows 2000, the default verb is used if it is valid and available in the registry. If not, the "open" verb is used.

In Windows 2000 and later, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: Probleme mit ShellExecute

  Alt 3. Nov 2010, 19:15
Du gibst in deiner Funkion doch schon den Rückgabewert von Shellexecute zurück. Warum guckst du nicht einfach, was zurückgegeben wird?

PS: Shellexecute gibt kein Handle zurück.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#4

AW: Probleme mit ShellExecute

  Alt 3. Nov 2010, 19:18
Du gibst in deiner Funkion doch schon den Rückgabewert von Shellexecute zurück. Warum guckst du nicht einfach, was zurückgegeben wird?
Das kann ich fast verstehen. MSDN-Library durchsuchenShellExecute ist dahingehend echt vermurkst. Wenn man MSDN-Library durchsuchenShellExecuteEx benutzt bekommt man wenigstens echte Win32-Fehlercodes und nicht den Quark den ShellExecute liefert.

Aber zumindest gäbe das einen Anhaltspunkt.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Probleme mit ShellExecute

  Alt 3. Nov 2010, 19:27
Hallo Alfonso,

ich hatte auch mal Probleme mit ShellExecute (wobei ich immer 'open' verwendete).
Eine Lösung, die bei mir immer funktionierte, habe ich damals in die Code-Library gegeben: Dateien und Anwendungen aus Delphi heraus starten

Grüße
Matze
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#6

AW: Probleme mit ShellExecute

  Alt 3. Nov 2010, 19:31
Eine Lösung, die bei mir immer funktionierte, habe ich damals in die Code-Library gegeben: Dateien und Anwendungen aus Delphi heraus starten
Welche der beiden Lösungen meinste denn?

Nee, wenn sowas schon da ist, würde ich auch ShellExecuteEx (erste Lösung von Matze) benutzen. Da kann man danach MSDN-Library durchsuchenGetLastError aufrufen und bekommt eine sinnvolle Rückgabe. Bei ShellExecute ist das nicht garantiert.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Alfonso

Registriert seit: 10. Jan 2006
250 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Probleme mit ShellExecute

  Alt 3. Nov 2010, 19:44
Hallo Matze und alle anderen,

erst mal danke schön für die verdammt schnelle Antwort. Es zeigt sich wieder, selber suchen ist viel Zeitaufwendiger als die Experten hier zu Fragen.
Matze, dein Code aus der Library war Goldrichtig. Damit funktioniert es.

Danke!

Gruß
Alfonso
Alfonso
Seit Turbo Pascal 3.0 dabei!
Ewiger Pascal Fan!
  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 12:40 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