AGB  ·  Datenschutz  ·  Impressum  







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

ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

Ein Thema von max666 · begonnen am 23. Dez 2003 · letzter Beitrag vom 24. Dez 2003
Antwort Antwort
max666

Registriert seit: 21. Dez 2003
50 Beiträge
 
#1

ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

  Alt 23. Dez 2003, 11:36
Hallo!

Habe folgendes Problem: Ich möchte eine .lnk-Datei mit ShellExecute starten, erhalte aber den Rückgabewert "5", also SE_ERR_ACCESSDENIED.

Wie kann ich das Problem lösen?

Gruß aus dem
Emsland
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

  Alt 23. Dez 2003, 13:19
Moin Max,

wie sieht denn der Aufruf aus?
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
max666

Registriert seit: 21. Dez 2003
50 Beiträge
 
#3

Re: ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

  Alt 23. Dez 2003, 13:42
Hier kommt ein Beispiel, wie es bei mir nicht funktioniert.


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var path: String;
    rueckgabewert: integer;
begin
path:='C:\Dokumente und Einstellungen\max\Desktop\XP-Clean.lnk';
rueckgabewert:=ShellExecute(handle, 'open', PChar(path),nil,nil,SW_SHOWNORMAL);
label1.Caption:=IntToStr(rueckgabewert);
end;

Als Rückgabewert zeigt label1.caption immer "5" an, also "SE_ERR_ACCESSDENIED".
Bei anderen lnk-Dateien funktioniert die Geschichte.

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

  Alt 23. Dez 2003, 13:49
Moin Max,

statt:
path:='C:\Dokumente und Einstellungen\max\Desktop\XP-Clean.lnk'; probier's mal mit

Code:
path:='[color=red]"[/color]C:\Dokumente und Einstellungen\max\Desktop\XP-Clean.lnk[color=red]"[/color]';
Da es schlecht zu lesen ist:
Der Pfad sollte in doppelt Anführungsstriche eingeschlossen werden, da er Leerzeichen enthält.
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
max666

Registriert seit: 21. Dez 2003
50 Beiträge
 
#5

Re: ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

  Alt 23. Dez 2003, 14:07
Hallo Chris!

Leider geht das auch nicht. Wenn ich die Verknüpfung auf dem Dektop doppelt anklicke, startet XP-Clean, von Delphi aus tut sich nichts. Rückgabewert 5.

Kann man in Delphi möglicherweise einen Doppelklick simulieren?
Wenn ich die lnk-Infos auslesen könnte, hätte ich Zugriff auf die originale Startdatei.
Funktioniert das dann aber auch bei lnk-Dateien, die mit einer Text-Datei verknüpft sind.

Aus mir ungekannten Gründen ist die XP-Clean.lnk eine geschützte Datei, auf die ich von Delphi aus, keinen Zugriff bekomme.

Gruß
David
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

  Alt 23. Dez 2003, 14:12
Moin David,

die Daten eines Links solltest Du auslesen können.
Such hierzu hier mal nach Hier im Forum suchenIShellLink
In den meisten Fällen wird zwar beschrieben, wie man einen Link erstellt, aber i.d.R. kann man an vielen Stellen statt Setxxx auch Getxxx verwenden um die Daten auszulesen, statt sie zu setzen.
Nähere Einzelheiten kannst Du auch im PSDK bzw MSDN (msdn.microsoft.com) finden.

Wieso der Aufruf nicht funktioniert versteh' ich allerdings nicht.
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
max666

Registriert seit: 21. Dez 2003
50 Beiträge
 
#7

Re: ShellExecute und SE_ERR_ACCESSDENIED-Fehlermeldung???

  Alt 24. Dez 2003, 10:22
Hallo!

Ich habe die Lösung.

Alt und fehlerhaft:
rueckgabewert:=ShellExecute(handle, 'open', PChar(path),nil,nil,SW_SHOWNORMAL);


Neu und gut:
rueckgabewert:=ShellExecute(0, nil, PChar(path),nil,nil,SW_SHOWNORMAL);


Mit diesen Einstellungen, kann nun jede lnk-Datei gestartet werden.

Gruß
David
  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 08:30 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