AGB  ·  Datenschutz  ·  Impressum  







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

ShellExecution Brauche Hilfe

Ein Thema von Teklador · begonnen am 20. Apr 2019 · letzter Beitrag vom 21. Apr 2019
Antwort Antwort
Seite 1 von 2  1 2      
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 18:19
Die Zwischenablage sollte man im besten Fall niemals benutzen. Darum ging es mir.
Du solltest dein Konzept noch einmal überdenken und es anders machen.
  Mit Zitat antworten Zitat
Teklador

Registriert seit: 20. Apr 2019
7 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 18:57
Die Zwischenablage sollte man im besten Fall niemals benutzen. Darum ging es mir.
Du solltest dein Konzept noch einmal überdenken und es anders machen.
ich habe schon eine Funktion wo ich die Zwischenablage seperat speichere und später wieder auf das Original zurück setze.

Das Konzept würde also funktionieren.

Bitte, kann mir irgendwer sagen was ich hier schreiben muss?

1.
ShellExecute(Self.Handle,nil,'mailto:' +'' +'?Subject=Guck dir mal den Link an' + '&Body=' + GetClipboardData ,nil,UINT,SW_NORMAL);

Ich kriege immer die Fehlermeldung: zu wenig wirkliche Parameter.

Oder

2.
ShellExecute(Self.Handle,nil,'mailto:' +'' +'?Subject=Guck dir mal den Link an' + '&Body=' + clipboard,nil,nil,SW_NORMAL);

Fehlermeldung: Inkompatible Typen String und TClipboard

Zu 2
Wenn ich

ShellExecute(Self.Handle,nil,'mailto:' +'' +'?Subject=Guck dir mal den Link an' + '&Body=' + clipboard.ToString,nil,nil,SW_NORMAL);

schreibe kommt die Fehlermeldung: Inkompatible Typen PWideChar und String!?
dasselbe mit

ShellExecute(Self.Handle,nil,'mailto:' +'' +'?Subject=Guck dir mal den Link an' + '&Body=' + clipboard.asText,nil,nil,SW_NORMAL);

Ich weiß so langsam echt nicht mehr weiter.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 19:00
Schau dir die Parameter an und arbeite damit.
Verstehe nicht was daran so schwierig ist zumal dir die Fehler auch noch gemeldet werden.

,nil,UINT UINT als Parameter ? sorry Lustig.

gruss
  Mit Zitat antworten Zitat
Teklador

Registriert seit: 20. Apr 2019
7 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 19:18
Schau dir die Parameter an und arbeite damit.
Verstehe nicht was daran so schwierig ist zumal dir die Fehler auch noch gemeldet werden.

,nil,UINT UINT als Parameter ? sorry Lustig.

gruss
Uups, kann mich nicht errinern das geschrieben zu haben
  Mit Zitat antworten Zitat
Teklador

Registriert seit: 20. Apr 2019
7 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 19:19
Wert := 'mailto:' + '' +'?Subject=Guck dir mal den Link an' + '&Body=' + Clipboard.AsText;
ShellExecute(Self.Handle,nil,Pchar(Wert),nil,nil,S W_NORMAL);


Das hier ist der richtige Code.

Mit allem in einer Zeile funktioniert einfach nicht.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 19: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
2.175 Beiträge
 
#7

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 19: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 19:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#8

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 21: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
Delphi.Narium

Registriert seit: 27. Nov 2017
2.599 Beiträge
 
Delphi 7 Professional
 
#9

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 19:04
eventuell ShellExecute(Self.Handle,nil,PWideChar('mailto:' +'' +'?Subject=Guck dir mal den Link an' + '&Body=' + clipboard.asText),nil,nil,SW_NORMAL); ?
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#10

AW: ShellExecution Brauche Hilfe

  Alt 20. Apr 2019, 19:07
Zitat:
Ich weiß so langsam echt nicht mehr weiter.
STRG gedrückt halten und auf ShellExecute klicken. Dann kommst du zu den Quellcodes und kannst dir in Ruhe angucken welche Parameter du brauchst.
Du hast die Professional Edition also sollte das kein Problem sein.

Ich habe nur noch nicht richtig verstanden warum du die Zwischenablage brauchst.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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