AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Verrücktes Problem mit Delphi7 und ShellExecute
Thema durchsuchen
Ansicht
Themen-Optionen

Verrücktes Problem mit Delphi7 und ShellExecute

Ein Thema von iphi · begonnen am 23. Feb 2016 · letzter Beitrag vom 24. Feb 2016
Antwort Antwort
iphi

Registriert seit: 13. Feb 2009
266 Beiträge
 
Delphi 7 Personal
 
#1

Verrücktes Problem mit Delphi7 und ShellExecute

  Alt 23. Feb 2016, 16:20
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???

Geändert von iphi (23. Feb 2016 um 16:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#2

AW: Verrücktes Problem mit Delphi7 und ShellExecute

  Alt 23. Feb 2016, 16:31
Verhindert vielleicht dein Virenscanner den Zugriff bzw. das Starten des Delphi-Kompilats?

MfG Dalai
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Verrücktes Problem mit Delphi7 und ShellExecute

  Alt 23. Feb 2016, 16:42
Fehlt da nicht auch der Pfad zur notepad.exe?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Verrücktes Problem mit Delphi7 und ShellExecute

  Alt 23. Feb 2016, 17:04
Bist du dir sicher dass 'open' das richtige Verb ist? Ich hätte, beim Ausführen von Anwendungen, einfach 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;
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: Verrücktes Problem mit Delphi7 und ShellExecute

  Alt 23. Feb 2016, 17:23
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.
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
266 Beiträge
 
Delphi 7 Personal
 
#6

AW: Verrücktes Problem mit Delphi7 und ShellExecute

  Alt 23. Feb 2016, 17:46
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?
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:50 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