![]() |
Aufruf von Windows Snipping Tool und Remotehilfe
Hallo,
gelingt mir nicht. Taschenrechner geht ohne Probleme mit: procedure Formular.TaschenRechnerClick(Sender: TObject); begin inherited; winexec('Calc.exe',sw_show); end; oder eben mit Shellexecute. Snippingtool.exe - das Windows Screenshot Tool - kann ich nicht aufrufen. Nichts passiert. Genauso würde ich gerne das neue Windows Fernwartungstool aufrufen: Remotehilfe (engl. Quickassist). Sowohl das Snippingtool als auch die Remotehilfe lassen sich von der Eingabeauffordeurng mittels Kommandos "Snippingtool" oder "Quickassist" öffnen analog dem Taschenrechner. Aus Delphi heraus ebend nicht. Ideen? danke VG |
AW: Aufruf von Windows Snipping Tool und Remotehilfe
![]() Da hab ich mehrer Varianten bereitgestellt wie man Dateien ausführen kann, für Delphi 7 programmiert. Vielleicht hilft dir das eine oder andere, Grüße edit: ps: man sollte auch angeben wo die datei herkommt (verzeichniss) |
AW: Aufruf von Windows Snipping Tool und Remotehilfe
Zeig' uns bitte mal Deinen vollständigen Quelltext für den Aufruf der beiden Programme per ShellExecute.
|
AW: Aufruf von Windows Snipping Tool und Remotehilfe
Also, bei mir funktionierts auch nicht: 64bit Windows 10 1709, SnippingTool.exe liegt unter C:\Windows\System32, eine 32-bit-Delphi-Exe schaut aber unter C:\WINDOWS\SysWOW64 rein, da gibts kein Snippingtool.exe. Entsprechend liefert winexec das Ergebnis 2: File not found.
|
AW: Aufruf von Windows Snipping Tool und Remotehilfe
Kann man denn das Programm nicht mit 'ner vollständigen Pfadangabe aufrufen?
Muss man das denn Windows überlassen, welches Programm es konkret aufruft? |
AW: Aufruf von Windows Snipping Tool und Remotehilfe
Eventuell so:
Delphi-Quellcode:
Siehe hier:
ShellExecute(Application.Handle, 'open', pchar(ExpandEnvStr('%windir%\sysnative\SnippingTool.exe')), nil, nil, sw_show);
|
AW: Aufruf von Windows Snipping Tool und Remotehilfe
beschriebenen Ansätze klappen bei mir nicht!
anbei mein Code: procedure Formular.SnippingToolClick(Sender: TObject); begin inherited; // winexec('Snippingtool.exe',sw_show); ShellExecute(Application.Handle, 'open', pchar('c:\windows\system32\SnippingTool.exe'), nil, nil, sw_show); end; Quickassist ist eine "neue" WIndows 10 App. Das macht es da noch komplizierter... |
AW: Aufruf von Windows Snipping Tool und Remotehilfe
Hast du das mit dem Sysnative-Pfad auch versucht? Oder verwendest du kein 64bit? Alle Zugriffe auf C:\Windows\System32 von einer 32-bit Anwendung werden bei einem 64-bit Windows auf C:\windows\SysWOW64 umgeleitet, da gibts kein Snippingtool.
Siehe ![]() |
AW: Aufruf von Windows Snipping Tool und Remotehilfe
Bitte den Quelltext mal ändern:
Delphi-Quellcode:
Der Rückgabewert von ShellExecute könnte hilfreich sein ;-)
procedure Formular.SnippingToolClick(Sender: TObject);
var iError : Integer; begin iError := ShellExecute(Application.Handle, 'open', pchar('c:\windows\system32\SnippingTool.exe'), nil, nil, sw_show); if iError < 33 then begin ShowMessage(Format('Fehler: %d',[iError])); end; end; Fehlermeldungen/Rückgabewerte siehe: ![]() |
AW: Aufruf von Windows Snipping Tool und Remotehilfe
Zitat:
![]() Dein Problem ist eben die Verzeichnisumleitung, denn so ist es "schwerer", wenn man wirklich mal auf so ein Verzeichnis zugreifen will. ![]() z.B. C:\Windows\System32 ist in einem 64 Bit Windows nunmal für die 64 Bit-Programme, damit es beim Umstieg auf 64 Bit keine Probleme mit hartcodierten Pfaden gibt. Während Windows bei 32 Bit-Programmen das Verzeichnis standardmäßig auf C:\WINDOWS\SysWOW64 umbiegt. Meiner Meinung nach hätte man das Umbiegen bei 64 Bit machen sollen, wenn diese Programme "schrottig" programmiert sind, oder besser gleich mit Fehlermeldungen Warnmeldungen reagieren sollen. Das selbe Problem gibt es mit weiteren Verzeichnissen und auch in der Registry. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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