![]() |
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:
Auf Knopfdruck soll der notepad öffnen. Unter der Delphi6 IDE funktioniert das auch.
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. Unter der Delphi7 IDE compiliert das zwar auch, aber beim ersten Starten liefert die IDE die Fehlermeldung: Zitat:
Zitat:
Wenn ich die IDE schließe und die exe von Hand starten will, dann kommt Zitat:
Wenn ich den ShellExecute auskommentiere, dann läuft alles normal. Kann sich irgend jemand einen Raum darauf machen??? |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Verhindert vielleicht dein Virenscanner den Zugriff bzw. das Starten des Delphi-Kompilats?
MfG Dalai |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Fehlt da nicht auch der Pfad zur notepad.exe?
|
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Bist du dir sicher dass
Delphi-Quellcode:
das richtige Verb ist? Ich hätte, beim Ausführen von Anwendungen, einfach
'open'
Delphi-Quellcode:
genommen:
Nil
Zitat:
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; |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Prinzipiell sollte der Aufruf in der genannten Form unter Delphi 7 funktionieren.
Zur Fehlereingrenzung:
|
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? |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Zitat:
MfG Dalai |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Zitat:
Unter
|
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... |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Zitat:
|
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Vielen Dank für die Tipps!
Es ist übrigens nicht nur Avira, was anschlägt. Hab spasseshalber das Programm bei VirusTotal scannen lassen. 9 von 55 positiv: Zitat:
Interessant nur, dass das Delphi6 Kompilat keinen Alarm auslöst. |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Interessant auch, dass es so viele verschiedene Viren sind. Da sieht man mal, wie krank das System teilweise ist.
|
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Es wird wohl immer das selbe Bit-Muster sein, nur jeder Hersteller gibt ihr einen anderen Namen.
|
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Zitat:
|
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Etwas OT: ShellExecute funktioniert unter Windows 10 nicht mehr so, wie bisher und man sollte ShellExecuteEx den Vorzug geben. Hier bspw. wurden Dateien (bspw. PNG) nicht mehr mit den verknüpften Anwendungen geöffnet. Finde leider gerade den Link nicht, in welchem Genaueres steht.
Vielleicht eine gute Gelegenheit, das anzupassen? |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Zitat:
Außerdem ist es immer noch besser, wenn der falsche Alarm schon beim Entwickeln kommt, als erst beim Kunden... |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Ich konnte nach einem Avira-Update nicht mehr debuggen, dauerte ewig bis sie den Fehler damals behoben hatten. In der Zwischenzeit wurde Avira in unserem Haus durch GData ersetzt, das Ding bremst nur, macht aber sonst keinen Kummer.
|
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Zitat:
|
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Zitat:
![]() RaiseLastOSError nutzt aber GetLastError Und den Result als Parameter an RaiseLastOSError zu übergeben geht auch nicht, da die Fehlercodes sich unterscheiden.
Delphi-Quellcode:
function ShellExecuteGLE(hWnd: HWND; Operation, FileName, Parameters, Directory: PWideChar; ShowCmd: Integer): HINST; overload;
begin Result := ShellExecuteGLE(hWnd, Operation, FileName, Parameters, Directory, ShowCmd); if Result <= 32 then begin case Result of // Übersetzung: DDE Error > Win32 Error Code 0: Result := ERROR_OUTOFMEMORY; ERROR_BAD_FORMAT: ; SE_ERR_ACCESSDENIED: Result := ERROR_ACCESS_DENIED; SE_ERR_ASSOCINCOMPLETE: Result := {?}ERROR_ACCESS_DENIED; SE_ERR_DDEBUSY: Result := {?}ERROR_BUSY; SE_ERR_DDEFAIL: Result := ERROR_DDE_FAIL; SE_ERR_DDETIMEOUT: Result := {?}ERROR_TIMEOUT; SE_ERR_DLLNOTFOUND: Result := ERROR_DLL_NOT_FOUND; SE_ERR_FNF: Result := ERROR_FILE_NOT_FOUND; SE_ERR_NOASSOC: Result := ERROR_NO_ASSOCIATION; SE_ERR_OOM: Result := {?}RPC_S_OUT_OF_RESOURCES; SE_ERR_PNF: Result := ERROR_PATH_NOT_FOUND; SE_ERR_SHARE: Result := ERROR_SHARING_VIOLATION; end; SetLastError(Result); Result := 0; // INVALID_HANDLE_VALUE? end; end; |
AW: Verrücktes Problem mit Delphi7 und ShellExecute
Guter Hinweis, mein Fehler :warn:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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