Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Verrücktes Problem mit Delphi7 und ShellExecute (https://www.delphipraxis.net/188354-verruecktes-problem-mit-delphi7-und-shellexecute.html)

iphi 23. Feb 2016 16:20

Verrücktes Problem mit Delphi7 und ShellExecute
 
Hallo,

ich bin kurz vor dem Verrücktwerden!
Ich versuche etwas zu machen, das ich schon zig mal gemacht habe und bekomme die seltsamsten Fehler.

Hier der Code, ganz einfach:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,'open','notepad.exe','', nil, SW_SHOWNORMAL);
end;

end.
Auf Knopfdruck soll der notepad öffnen. Unter der Delphi6 IDE funktioniert das auch.

Unter der Delphi7 IDE compiliert das zwar auch, aber beim ersten Starten liefert die IDE die Fehlermeldung:

Zitat:

Unable to create process: Zugriff verweigert
Bei jedem weiteren Startversuch kommt

Zitat:

Could not find program D:\test\project1.exe
Es wurde aber genau da vom Compiler erzeugt.

Wenn ich die IDE schließe und die exe von Hand starten will, dann kommt

Zitat:

Zugriff verweigert
Löschen kann ich die exe aber.

Wenn ich den ShellExecute auskommentiere, dann läuft alles normal.

Kann sich irgend jemand einen Raum darauf machen???

Dalai 23. Feb 2016 16:31

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Verhindert vielleicht dein Virenscanner den Zugriff bzw. das Starten des Delphi-Kompilats?

MfG Dalai

bra 23. Feb 2016 16:42

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Fehlt da nicht auch der Pfad zur notepad.exe?

Der schöne Günther 23. Feb 2016 17:04

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Bist du dir sicher dass
Delphi-Quellcode:
'open'
das richtige Verb ist? Ich hätte, beim Ausführen von Anwendungen, einfach
Delphi-Quellcode:
Nil
genommen:
Zitat:

The default verb is used, if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.
Analog die Parameter (nach dem 'Notepad.exe'): Auch hier würde ich Nil und keinen leeren String übergeben.

Weiterhin verstehe ich dein "Wenn ich das auskommentiere ..." nicht. Sieht dein Quellcode wirklich so aus wie gezeigt? Ein ShellExecute an sich wirft keine Fehler, sondern gibt nur eine Zahl zurück. Oder hast du es so?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   if ShellExecute(Handle,'open','notepsd.exe','', nil, SW_SHOWNORMAL) <= 32 then
      RaiseLastOSError();
end;

nahpets 23. Feb 2016 17:23

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Prinzipiell sollte der Aufruf in der genannten Form unter Delphi 7 funktionieren.

Zur Fehlereingrenzung:
  1. Programm mit Strg+F9 kompilieren
  2. kurzen Moment warten und unter D:\test\nachschauen, ob das die project1.exe dort vorliegt.
  3. Wenn vorhanden
    • per Doppelklick starten und schauen, ob NotePad gestartet wird.
    • Wird Notepad nicht gestartet prüfen, ob der Virenscanner einen Alarm gemeldet hat...
  4. Wenn nicht vorhanden
    • prüfen, ob der Virenscanner einen Alarm gemeldet hat, das Programm in die Quarantäne verschoben hat...
    • Ist dem so, dass Ausgabeverzeichnis von Delphi vom Virenscanner nicht überwachen lassen.
Ansonsten:
  • Wie von Günther vorgeschlagen, den Rückgabewert von ShellExecute abfragen und im Programm entsprechend reagieren.
  • Da es bei Programmen, die mit Delphi 7 erstellt werden, ab und an von Virenscannern (zumindest bei Avira ist das so) Fehlalarme geben kann, habe ich bei mir das Ausgabeverzeichnis für die Exen aus der Überwachung durch den Virenscanner herausgenommen.

iphi 23. Feb 2016 17:46

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Tatsächlich. Der Avira Professional Virenscanner blockiert das Exe, sobald es erzeugt wird.
Eine Meldung kommt aber nicht!
Wenn er deaktiviert ist, dann gehts. Was kann man denn dagegen machen?

Dalai 23. Feb 2016 17:49

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Zitat:

Zitat von iphi (Beitrag 1331148)
Was kann man denn dagegen machen?

Whitelisten, wie bereits gesagt wurde. Möglicherweise kann es helfen, ein Sample an Avira zu schicken, damit die das aus ihren Signaturen nehmen bzw. selbige anpassen. Von Avast kenne ich es aber so, dass man das sehr oft machen muss, bevor die ihren Krempel auf die Reihe bringen und keine uralten Programme mehr als False Positive erkannt werden.

MfG Dalai

nahpets 23. Feb 2016 18:16

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Zitat:

Zitat von iphi (Beitrag 1331148)
Tatsächlich. Der Avira Professional Virenscanner blockiert das Exe, sobald es erzeugt wird.
Eine Meldung kommt aber nicht!
Wenn er deaktiviert ist, dann gehts. Was kann man denn dagegen machen?

In der Konfiguration von AVira: (Taste F8)

Unter
  • PC-Sicherheit
  • Echtzeit-Scanner
  • Scan
  • Ausnahmen
  • Vom Echtzeit-Scanner auszulassende Dateiobjekt
    • Im Eingabefeld D:\Test\ eintragen
    • Button "Hinzufügen" betätigen
  • Button "Übernehmen" klicken und testen, ob das Problem weg ist.

jaenicke 23. Feb 2016 18:58

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Wer Delphi nutzt, für den ist Avira definitv der falsche Virenscanner. False Positives gibt es dort seit gefühlt 10 Jahren in Zusammenhang mit Delphi immer und immer wieder (genau kann ich das zeitlich gar nicht einordnen). Ich habe schon sicher dutzende Samples eingeschickt, es ist auch etwas besser geworden, aber an einer echten Lösung scheint dort niemand Interesse zu haben.

Ich kann nur raten einen anderen Virenscanner zu nutzen, es gibt genügend wirklich gute...

mm1256 23. Feb 2016 19:14

AW: Verrücktes Problem mit Delphi7 und ShellExecute
 
Zitat:

Zitat von jaenicke (Beitrag 1331154)
Wer Delphi nutzt, für den ist Avira definitv der falsche Virenscanner...

+1 :thumb: Das Problem ist, dass Avira auch bei Kunden öfter anschlägt, ohne Grund. Dagegen hilft dann nur noch signieren, dann wird es weniger, aber ganz auf null geht es leider nicht zurück. Avira ist ein Sche...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.
Seite 1 von 2  1 2      

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