AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim Öffnen mit Parameter

Ein Thema von E307 · begonnen am 26. Mai 2006 · letzter Beitrag vom 29. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
E307

Registriert seit: 23. Feb 2006
134 Beiträge
 
Delphi 2005 Personal
 
#1

Fehler beim Öffnen mit Parameter

  Alt 26. Mai 2006, 19:12
Wenn mein Programm eine Datei selbst nicht öffnen kann, wird diese als Parameter an eine .exe Datei im selben Ordner wie das Programm übergeben. Danach wird das Programm beendet. Dafür habe ich bisher diesen Code benutzt:
Delphi-Quellcode:
 Shellexecute(0,'open',PCHAR(ExtractFilePath(Application.Exename)+'Vid.exe'),PCHAR(FileName),nil,SW_SHOWNORMAL);
    close;
Wobei FileName das Parameter ist. Auf meinem Computer funktioniert das, auf anderen kam es immer wieder zu Zugriffsverletzungen. Was ist am Code falsch? Gibt es eine bessere Möglichkeit?
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Fehler beim Öffnen mit Parameter

  Alt 26. Mai 2006, 20:08
kann es sein das Filename statisch ist ?
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#3

Re: Fehler beim Öffnen mit Parameter

  Alt 26. Mai 2006, 21:06
Hallo,

Kommt die Zugriffsverletzung in dem Programm, das ShellExecute ausführt, oder in dem anderen Programm?

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
E307

Registriert seit: 23. Feb 2006
134 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Fehler beim Öffnen mit Parameter

  Alt 27. Mai 2006, 16:09
Der Fehler tritt in dem Programm auf, das die Datei ausführt.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Fehler beim Öffnen mit Parameter

  Alt 27. Mai 2006, 16:15
Vielleicht kannst Du es mal ausprobieren, zwischen dem Shellexecute und dem Close
eine Pause/delay einzubauen.
Haben denn die Rechner, bei denen das Problem auftritt, Hyperthreading eingeschaltet?
Hyperthreading - eine CPU mit 2 cores.

Oder Du kannst mal das hier ausprobieren:

Delphi-Quellcode:
function ExecFile(filename,params:String;windowState:word):Boolean;
var
  cmdLine: String;
  SUInfo: TStartupInfo;
  ProcInfo: TProcessInformation;

begin
  CmdLine := '"' + Filename + '" ' + Params;

  FillChar(SUInfo, SizeOf(SUInfo), #0);
  with SUInfo do begin
    cb := SizeOf(SUInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := WindowState;
  end;

  try
    result := CreateProcess(NIL, PChar(CmdLine), NIL, NIL, FALSE,
                            CREATE_NEW_CONSOLE or
                            NORMAL_PRIORITY_CLASS, NIL,
                            PChar(ExtractFilePath(Filename)),
                            SUInfo, ProcInfo);
  except
     on E: Exception do
      begin
        Result:=false;
      end;
  end;
end;
Aufruf:
ExecFile(ExtractFilePath(Application.Exename)+'Vid.exe',FileName,SW_SHOW); Grüße
Klaus

[edit] code hinzugefügt [/edit]
Klaus
  Mit Zitat antworten Zitat
E307

Registriert seit: 23. Feb 2006
134 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Fehler beim Öffnen mit Parameter

  Alt 27. Mai 2006, 18:02
Zitat:
Vielleicht kannst Du es mal ausprobieren, zwischen dem Shellexecute und dem Close
eine Pause/delay einzubauen.
Das habe ich vorher schon versucht. sleep() mit verschidenen Werten hat nichts genützt.
Zitat:
Haben denn die Rechner, bei denen das Problem auftritt, Hypertrading eingeschaltet?
Was ist das? Der Fehler tritt jetzt auf allen Rechnern auf.


Der Aufruf mit CreateProcess hat auch nichts geändert.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Fehler beim Öffnen mit Parameter

  Alt 27. Mai 2006, 18:05
Kann es sein, dass die Datei die du lesen möchtest, noch geöffnet ist ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Fehler beim Öffnen mit Parameter

  Alt 27. Mai 2006, 20:04
Was für eine Fehlermeldung/Exception bekommst Du denn?
Kannst Du mit GetlastOSError etwas mehr herausbekommen?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
E307

Registriert seit: 23. Feb 2006
134 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Fehler beim Öffnen mit Parameter

  Alt 28. Mai 2006, 16:03
Eine Zugriffsverletzung -> EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 0000003C. Lesen von Adresse 0000003C
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Fehler beim Öffnen mit Parameter

  Alt 28. Mai 2006, 17:12
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  appl,params: String;
begin
  appl := 'firefox.exe';
  params := 'E:\development\html\homepage\index.html';
  ExecFile(ExtractFilepath(Application.exeName)+'..\..\..\tools\browser\Mozilla Firefox\'+appl,params,SW_SHOW);
  close;
end;
dieser Code funktionert bei mir ohne Probleme, ich weiß das hilft Dir jetzt nicht viel weiter.
Aber kann es sein, daß im onClose noch etwas passiert - das vielleicht so nicht passieren soll?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:43 Uhr.
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