AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Aufruf von Windows Snipping Tool und Remotehilfe

Aufruf von Windows Snipping Tool und Remotehilfe

Ein Thema von Bornholdt · begonnen am 30. Jan 2018 · letzter Beitrag vom 31. Jan 2018
Antwort Antwort
Seite 1 von 2  1 2   
ventiseis

Registriert seit: 15. Jan 2009
Ort: 94032 Passau
53 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 20:14
Eventuell so:

  ShellExecute(Application.Handle, 'open', pchar(ExpandEnvStr('%windir%\sysnative\SnippingTool.exe')), nil, nil, sw_show); Siehe hier:
Bastian
  Mit Zitat antworten Zitat
Bornholdt
(Gast)

n/a Beiträge
 
#2

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 21:03
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...
  Mit Zitat antworten Zitat
ventiseis

Registriert seit: 15. Jan 2009
Ort: 94032 Passau
53 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 21:21
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
Bastian
  Mit Zitat antworten Zitat
Delphi.Narium

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

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 21:30
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 21:35
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.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (30. Jan 2018 um 21:40 Uhr)
  Mit Zitat antworten Zitat
Bornholdt
(Gast)

n/a Beiträge
 
#6

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 22:02
Nach Änderung des Quelltexts:

Fehler 2 gibt die Anwendung zurück!

wenns halt net geht, gehts halt net. )

habt ihr mal versucht die quickassist.exe aufrufen?


ich überlege mittlerweile einen umweg über ne bat datei die von der shell aus den befehl ausführt...
  Mit Zitat antworten Zitat
Delphi.Narium

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

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 22:15
Fehler 2 heißt:

ERROR_FILE_NOT_FOUND - The specified file was not found.

Entweder das Programm liegt nicht an der angegebenen Stelle oder es fehlen die passenden Zugriffsrechte oder ... siehe oben ...
  Mit Zitat antworten Zitat
Fukiszo
(Gast)

n/a Beiträge
 
#8

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 30. Jan 2018, 22:35
Eventuell blockiert ein AntiVirus-Programm dein Programm? (Stichwort Virtualisierung)

Das Beispiel von Delphi.Narium ist auf jedenfall korrekt, der Fehler liegt bei Dir.
Existiert denn "c:\windows\system32\SnippingTool.exe" ?
Überprüfe das mit Explorer. (Groß-/Kleinschreibung ist egal, aber Pfad+Name muss stimmen)

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

n/a Beiträge
 
#9

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 31. Jan 2018, 01:16
Nein irgendetwas blockiert die Ausführung über Shellexecute.
Und ja "c:\windows\system32\SnippingTool.exe" ? existiert.

Und Schreibweise ist egal ob klein oder groß.
Auch mit meinem Programm OTTB kann ich es nicht starten auch dann nicht wenn ich eine Verknüpfung auf dem Desktop anlege.

Wenn du versuchst diese Datei mit einem Texteditor oder Dependency Walker direkt unter c:\windows\system32 zu öffnen..
ist der Texteditor leer und Dependency Walker gibt diese Meldung aus.

Wohlbemerkt ich habe diese Datei mit rechtsklick und öffnen mit "View Dependencies" gestartet.
bzw.. öffnen mit UEdit.

Das Problem liegt daran das sie als 64Bit unter System32 abgelegt ist und dann beim Aufruf die Datei unter System64 ausführt.
mit diesem Pfad c:\windows\system64\SnippingTool.exe sollte es funktionieren.
Geht zumindest dann mit "Dependency Walker" und meinem Programm OTTB als Verknüpfung auf dem Desktop.

ok wie Dalai sagt gibt es System64 Standard mäßig nicht.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:49 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#10

AW: Aufruf von Windows Snipping Tool und Remotehilfe

  Alt 31. Jan 2018, 04:31
Hmm..


Das funktioniert:

Eventuell so:

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

Delphi-Quellcode:
uses
  ShellApi;


// https://stackoverflow.com/questions/2833021/how-to-get-absolute-path-from-path-with-system-path-variables
function ExpandEnvStr(const szInput: string): string;
  const
    MAXSIZE = 32768;
  begin
    SetLength(Result,MAXSIZE);
    SetLength(Result,ExpandEnvironmentStrings(pchar(szInput),
      @Result[1],length(Result)) - 1);
  end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, 'open', pchar(ExpandEnvStr('%windir%\sysnative\SnippingTool.exe')), nil, nil, sw_show);
end;

Getestet mit Delphi 6 (somit 32 bit).

SnippingTool wird gestartet...


Ein 'System64' hab ich nicht unter meinem 64Bit W8.1, nur das bekannte 'SysWOW64'...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 11:05 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