AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ShellExecution Brauche Hilfe

Ein Thema von Teklador · begonnen am 20. Apr 2019 · letzter Beitrag vom 21. Apr 2019
Antwort Antwort
Seite 3 von 4     123 4   
EWeiss
(Gast)

n/a Beiträge
 
#21

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 20:23
Zitat:
Typen PWideChar
Auch wenn der Typ PChar automatisch nach PWideChar gecastet wird ist trotzdem PWideChar der richtige DatenTyp nicht PChar.

gruss
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.913 Beiträge
 
#22

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 20:27
Zitat:
Nein, das ist nicht die Lösung: habe ich auch schon versucht.
Ich verstehe das Problem nicht. STRG gedrückt halten und auf ShellExecute klicken wird dein Problem in einer Minute lösen.

Selbst bei Eingabe der ersten Klammer nach ShellExecute sollte ein Hint angezeigt werden wo genau steht welche Typen zu übergeben sind. PWideChar.

Als kleiner Tipp vielleicht noch. Du übergibst einen Wert der nicht dem entspricht was ShellExecute verlangt.
Mehr aber sage ich nicht. Bisschen anstrengen muss man sich auch.

Aller letzter Tipp: LPCTSTR > https://docs.microsoft.com/en-us/win...-shellexecutea

Geändert von DieDolly (20. Apr 2019 um 20:50 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#23

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 20:41
Zitat:
Sorry das ist falsch..
Es geht hier um PWideChar nicht PAnsiChar oder PChar = PAnsiChar(bei älteren Delphi Versionen)

ShellExecute(W) nicht ShellExecuteA
https://docs.microsoft.com/en-us/win...-shellexecutew
Aber ich denke damit ist er überfordert.

Du schreibst ja vorher selbst noch
Zitat:
nach ShellExecute sollte ein Hint angezeigt werden wo genau steht welche Typen zu übergeben sind. PWideChar.
und verzweigst dann auf ShellExecuteA.

gruss

Geändert von EWeiss (20. Apr 2019 um 20:48 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.913 Beiträge
 
#24

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 20:49
Ich wusste nicht, dass man nil als Operation übergeben kann. Mein Fehler.
Trotzdem ist sein Konzept mehr als fragwürdig. Man spielt nicht mit der Zwischenablage herum.

Noch viel wichtiger ist aber, dass man ab und zu auch mal in die Hilfe oder in die Quellcodes guckt.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#25

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 20:51
Ich wusste nicht, dass man nil als Operation übergeben kann. Mein Fehler.
Trotzdem ist sein Konzept mehr als fragwürdig. Man spielt nicht mit der Zwischenablage herum.
Noch viel wichtiger ist aber, dass man ab und zu auch mal in die Hilfe oder in die Quellcodes guckt.
Na ja hat nichts mit Nil zu tun sondern damit das du ihm zu einem Link auf LPCTSTR = PAnsiChar verwiesen hast.
Ansonsten ja gebe ich dir recht.

Bin raus.

grusss
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.602 Beiträge
 
Delphi 5 Professional
 
#26

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 22:51
[Teilweise OT]

Auch wenn der Typ PChar automatisch nach PWideChar gecastet wird ist trotzdem PWideChar der richtige DatenTyp nicht PChar.
Ist er nicht. Warum? Wenn man ShellExecute verwendet, nimmt man PChar, bei ShellExecuteA nimmt man PAnsiChar und bei ShellExecuteW nimmt man PWideChar. Nur so funktioniert es in allen Delphi-Versionen. Ich frag mich wirklich, warum dieser Fehler bzw. die Diskussion dazu immer wieder auftaucht. Konkrete Typen (Ansi/Wide) sollte man ausschließlich dann verwenden, wenn die Funktionen bzw. deren Datentypen das verlangen, z.B. weil es nur eine Definition davon gibt. Konkretes Beispiel: MSDN-Library durchsuchenMapAndLoad() gibt's nur mit Ansi.

[/OT]

Zum Thema: Auch ich kann nur deutlich davon abraten, an der Zwischenablage zu fummeln. Die Zwischenablage gehört dem Benutzer, nicht irgendeinem Programm! Da hilft es auch wenig, wenn der Inhalt der Zwischenablage vorher gesichert und hinterher wiederhergestellt wird. Sowas ist einerseits schlechtes Design, und bei Verwendung von Multi-Clipboard-Programmen (wie z.B. ArsClip bei mir) fällt sowas ganz besonders negativ auf.

Stattdessen wäre es viel besser, den Inhalt direkt zu übergeben und in den Parameterstring für ShellExecute einzubauen.

Es gibt übrigens noch weitere Probleme mit dem Ansatz: Was ist mit Umlauten und Sonderzeichen? Stichwort Zeichensatzkodierung. Ich weiß nicht genau, wie das mit Leerzeichen ist, ob die auch speziell kodiert werden müssen (%20) - dafür gibt's bestimmt auch einen Fachbegriff.

Grüße
Dalai
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#27

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 22:57
[ganz OT]
Zitat:
Wenn man ShellExecute verwendet, nimmt man PChar
Das ist schlichtweg falsch.

Zitat:
Nur so funktioniert es in allen Delphi-Versionen.
Es ging nicht um die frage ob es bei allen Delphi Versionen so funktioniert.

Fakt ist wenn ich in D2010 PChar verwende wird PChar automatisch zu PWideChar konvertiert oder willst du das bezweifeln?
Wenn ich ShellExecute ohne A oder W aufrufe wird Automatisch von ShellExecuteW ausgegangen versuch es doch einfach.

Die ganze Automatische Konvertierung ist eh ein Witz unter Delphi und dient nur den zweck um eine Abwärtskompatibilität zu erhalten.
In keiner von mir verwendeten Programmiersprache wird so mit Dateitypen umgegangen. (Mein großes Problem mit Delphi)

OK war schon raus aber das musste noch gesagt werden.
Aber für die, die immer recht behalten wollen was steht im Shot! PChar oder PWideChar.
Wenn man mir glauben mag das ich noch lesen kann dann steht dort ganz deutlich für jeden der lesen kann PWideChar!

Zitat:
Ich frag mich wirklich, warum dieser Fehler bzw. die Diskussion dazu immer wieder auftaucht.
Ganz einfach weil deine Aussage einfach falsch und nicht zutreffend ist.
Aber wenn du meinst es ist immer noch PChar nun dann kann ich dir nicht helfen

[/ganz OT]

gruss

Geändert von EWeiss ( 9. Jul 2019 um 09:32 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.911 Beiträge
 
Delphi 7 Professional
 
#28

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:06
Was ich nicht verstehe:

Die Fehlermeldung lautete:
Zitat:
schreibe kommt die Fehlermeldung: Inkompatible Typen PWideChar und String!?
Warum sollte man hier was anderes als PWideChar nehmen, wenn doch explizit PWideChar verlangt wird?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#29

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:10
Was ich nicht verstehe:

Die Fehlermeldung lautete:
Zitat:
schreibe kommt die Fehlermeldung: Inkompatible Typen PWideChar und String!?
Warum sollte man hier was anderes als PWideChar nehmen, wenn doch explizit PWideChar verlangt wird?
Und ich verstehe nicht wie @Dalai schreibt das man PChar statt dessen nehmen soll.. Sorry das ist einfach Quatsch wie mein ScreenShot belegt.

gruss
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.913 Beiträge
 
#30

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 23:14
Ich denke es wäre sehr hilfreich, wenn der Fragende uns erst einmal mitteilt, welche Delphiversion er hat.
Ich kann mir kaum vorstellen, dass er Berlin Pro hat bei so einem einfachen Problem. Außerdem hätte er dann schon lange in die Delphiquellcodes reingeguckt.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf