Thema: Delphi Shellexecute und Word

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#3

AW: Shellexecute und Word

  Alt 9. Nov 2022, 22:20
Erstmal 2 = ERROR_FILE_NOT_FOUND bzw. SE_ERR_FNF

und steht im Edit wirklich genau das Gleiche, wie vorher in der Konstante?


Beim Aufruf mit einer Variablen, die den selben Pfad
Dann hast du nicht nur die diesen einen Parameter getauscht.

das ist nicht das Selbe
Delphi-Quellcode:
  iReturnVal := ShellExecute(0, nil, ..., nil, nil, 0);

  iReturnVal := ShellExecute(0, 'open', ..., nil, nil, 0);
Delphi-Quellcode:
  getmem(pDatei, 256); <<<< 256 Bytes

  pDatei := StringToWideChar(sDatei, pDatei, 256); <<< 256 Chars
getmem(pDatei, 256 * SizeOf(Char));
ähhh
getmem(pDatei, MAX_PATH * SizeOf(Char));
nja
getmem(pDatei, (Length(sDatei) + 1) * SizeOf(Char));

Aber erstmal sind statische Buffer saublöd, (statisch = sich nicht an den Inhalt anpassend, vor allem wenn es zu klein sein könnte)
vor allem, da Microsoft seit Jahren versucht solchen Mist loszuwerden
https://learn.microsoft.com/de-de/wi...?tabs=registry

und irgendwelche Zahlen anstatt Konstanten sind noch unschöner.



Was sagt denn der Debugger,
zum Inhalt von pDatei?

Welche Delphi-Version?

Wenn nicht D2009 oder älter, dann selbst Schuld, wenn jemand (du) die Compilerwarnungen nicht liest.
https://www.delphipraxis.net/profile...le#csel_field5



Aber eignentlich würde ich eher solch unnützes Rumkopieren einfach lassen.
Delphi-Quellcode:
  iReturnVal := ShellExecute(0, nil, PChar(sDatei), nil, nil, 0);

  iReturnVal := ShellExecute(0, nil, PChar(DateiscEdit.Text), nil, nil, 0);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 9. Nov 2022 um 22:41 Uhr)
  Mit Zitat antworten Zitat