Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Aufruf von Windows Snipping Tool und Remotehilfe (https://www.delphipraxis.net/195070-aufruf-von-windows-snipping-tool-und-remotehilfe.html)

Bornholdt 30. Jan 2018 19:38

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

Fukiszo 30. Jan 2018 19:54

AW: Aufruf von Windows Snipping Tool und Remotehilfe
 
http://www.delphipraxis.net/1390993-post16.html

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)

Delphi.Narium 30. Jan 2018 19:55

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.

ventiseis 30. Jan 2018 20:00

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.

Delphi.Narium 30. Jan 2018 20:03

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?

ventiseis 30. Jan 2018 20:14

AW: Aufruf von Windows Snipping Tool und Remotehilfe
 
Eventuell so:

Delphi-Quellcode:
  ShellExecute(Application.Handle, 'open', pchar(ExpandEnvStr('%windir%\sysnative\SnippingTool.exe')), nil, nil, sw_show);
Siehe hier:

Bornholdt 30. Jan 2018 21:03

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...

ventiseis 30. Jan 2018 21:21

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 MSDN

Delphi.Narium 30. Jan 2018 21:30

AW: Aufruf von Windows Snipping Tool und Remotehilfe
 
Bitte den Quelltext mal ändern:
Delphi-Quellcode:
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;
Der Rückgabewert von ShellExecute könnte hilfreich sein ;-)

Fehlermeldungen/Rückgabewerte siehe: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

himitsu 30. Jan 2018 21:35

AW: Aufruf von Windows Snipping Tool und Remotehilfe
 
Zitat:

Delphi-Quellcode:
winexec('Calc.exe',sw_show);
end;
oder eben mit Shellexecute.
Nicht "oder eben" sondern "stattdessen".
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx


Dein Problem ist eben die Verzeichnisumleitung, denn so ist es "schwerer", wenn man wirklich mal auf so ein Verzeichnis zugreifen will.
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

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 00:13 Uhr.
Seite 1 von 5  1 23     Letzte »    

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