AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein WideString-Dateinamen an Shellexecute übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

WideString-Dateinamen an Shellexecute übergeben

Ein Thema von messie · begonnen am 27. Jul 2006 · letzter Beitrag vom 28. Jul 2006
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

WideString-Dateinamen an Shellexecute übergeben

  Alt 27. Jul 2006, 19:02
Hallo,

ich renne mal wieder vor die TypeCast-Wand des BCB. Es gelingt mir nicht, ShellExecute einen Dateinamen zum öffnen zu übergeben. Der Dateiname kommt als Widestring an.
Eigentlich kann das doch nicht so schwer sein....
Hat jemand einen Tipp?

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: WideString-Dateinamen an Shellexecute übergeben

  Alt 27. Jul 2006, 19:06
ShellExecuteW



EDIT: Da hat der BCB aber verdammt recht, wenn er dich den Widestring in Shellexecute(A) quetschen lassen würde, hättest du einen wunderbaren fehler in deinem Code, der die App komplett lahmlegt, aber ewig zum finden braucht...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: WideString-Dateinamen an Shellexecute übergeben

  Alt 27. Jul 2006, 19:41
Zitat von DGL-luke:
EDIT: Da hat der BCB aber verdammt recht, wenn er dich den Widestring in Shellexecute(A) quetschen lassen würde, hättest du einen wunderbaren fehler in deinem Code, der die App komplett lahmlegt, aber ewig zum finden braucht...
OT: Wäre schon schön, wenn der BCB bei den Fehlermeldungen etwas mehr von Delphi geerbt hätte. Da fühle ich mich ein wenig an die alten Turbopascal-Compiler erinnert....

Danke, Messie
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: WideString-Dateinamen an Shellexecute übergeben

  Alt 28. Jul 2006, 12:30
Für die, die es mal brauchen, wo wirklich ein anderer Type verlangt wird, also man zur Verfügung hat:

entweder über 'ne Zwischenvariable, oder einfach konvertieren


Delphi-Quellcode:
Var MyStringW, W: WideString;
  MyStringA, A: AnsiString{String};

Procedure TestFunc (InPut: PAnsiChar{PChar}) External ... 'TestFuncA';
Procedure TestFuncA(InPut: PAnsiChar{PChar}) External ... 'TestFuncA';
Procedure TestFuncW(InPut: PWideChar) External ... 'TestFuncW';

W := MyStringA;
TestFuncW(PWideChar(W));

A := MyStringW;
TestFunc(PChar(A));
TestFuncA(PAnsiChar(A));

TestFuncW(PWideChar(WideString(MyStringA)));

TestFunc(PChar(String(MyStringW)));
TestFuncA(PAnsiChar(AnsiString(MyStringW)));
Ansonsten macht es sich natürlich nicht schlwecht, wenn man die passende API verwendet
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 06:24 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