Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi exe startet nur auf Entwickler-PC (https://www.delphipraxis.net/151141-exe-startet-nur-auf-entwickler-pc.html)

HeikoAdams 7. Mai 2010 13:06

Re: exe startet nur auf Entwickler-PC
 
dann packe doch mal den kompletten Inhalt von FormCreate in einen Try-Except-Block und lass Dir die Exception-Meldung im Log ausgeben. Vielleicht bringt uns das auch weiter.

hirsch 7. Mai 2010 13:12

Re: exe startet nur auf Entwickler-PC
 
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, jpeg ,DBCtrls, DB, Grids, DBGrids, ComCtrls,
  ExtDlgs, Menus, Mask, DBTables, DBClient, MidasLib, ComObj,ShlObj, FileCtrl;
Das ist alles...

hirsch 7. Mai 2010 13:24

Re: exe startet nur auf Entwickler-PC
 
Delphi-Quellcode:
procedure TMenue.FormCreate(Sender: TObject);
var

IniFile, log                 : TextFile;
zeile                   : String;

label M10;
begin
  //ini Datei einlesen
  try
     b_gestartet:=False;
     if not b_gestartet then
     begin
          AssignFile(IniFile,'bilder.ini');
          Reset(IniFile);
M10:     ReadLn(IniFile,zeile);
          if copy(zeile,1,6)='[Pfad]' then
              ReadLn(IniFile,zeile)
          else
              goto M10;
          StOrdner:=copy(zeile,1,Length(zeile));
          b_Gestartet := True;
          CloseFile(IniFile);
     end;
  except
    AssignFile(log,'log.txt');
    ReWrite(log);
    WriteLn(log,'Fehler aufgetreten');
    CloseFile(log);
  end;
end;
bringt kein log...

DeddyH 7. Mai 2010 14:05

Re: exe startet nur auf Entwickler-PC
 
Mir ist da "MidasLib" aufgefallen. Hast Du die midas.dll auch mit weitergegeben?

hirsch 7. Mai 2010 14:27

Re: exe startet nur auf Entwickler-PC
 
Ja, die Midas.dll ist auf dem ZielSystem im System32-Ordner.

sirius 7. Mai 2010 15:06

Re: exe startet nur auf Entwickler-PC
 
Dann gehe mal bitte in die Projektdatei und setze vor Application.initialize ein log.

DelphiBandit 7. Mai 2010 15:49

Re: exe startet nur auf Entwickler-PC
 
Hallo,

in solch "undurchsichtigen" Fällen vertraue ich meist dem ProcessExplorer von Microsoft (ehemals SysInternals).

http://technet.microsoft.com/en-us/s.../bb896653.aspx

"Show Lower Pane" (STRG-L), dann zeigt er pro Prozess an welche Files/Registry-Keys usw. an. Allerdings müsstest Du Dein Programm dann an irgendeiner Stelle anhalten können. Früher gab es noch einen extra FileMon.exe, leider finde ich den auf der MS-Seite nicht mehr. Der protokollierte auch, wenn die Exe wieder zuging. Bei Bedarf pm, dann sende ich Dir das Teil zu.

hirsch 7. Mai 2010 16:03

Re: exe startet nur auf Entwickler-PC
 
@DelphiBandit
vielen Dank, den Filemon hab ich noch selber bei mir in den alten Downloads gefunden. Vielen Dank.

@Sirius
habe ich gemacht, auch hier wird kein Log angelegt. Der Startet das Ding einfach nicht.

Vielleicht hat auch die explorer.exe nen Schuss.
Muss ich nachher testen.

nahpets 7. Mai 2010 16:17

Re: exe startet nur auf Entwickler-PC
 
Hallo,

schau bitte mal in der Entwicklungsumgebung, ob Du irgendwelche Datenbankobjekte dort geöffnet hast (im Objektinspektor prüfen).

Wenn ja: Alles schließen und die entsprechenden Aufrufe für das Öffnen/Verbinden in das FormCreate packen.
Delphi-Quellcode:
procedure TMenue.FormCreate(Sender: TObject);
var

IniFile, log                 : TextFile;
zeile                   : String;

label M10;
begin
  // Damit hier nicht nur der letzte Fehler drinne steht, sondern ggfls. auch mehrere, bestenfalls alle ;-)
  AssignFile(log,'log.txt');
  ReWrite(log);
  //ini Datei einlesen
  try
     b_gestartet:=False;
     if not b_gestartet then
     begin
          AssignFile(IniFile,'bilder.ini');
          Reset(IniFile);
M10:     ReadLn(IniFile,zeile);
          if copy(zeile,1,6)='[Pfad]' then
              ReadLn(IniFile,zeile)
          else
              goto M10;
          StOrdner:=copy(zeile,1,Length(zeile));
          b_Gestartet := True;
          CloseFile(IniFile);
     end;
  except
    on e : Exception do begin
      WriteLn(log,e.Message); // Damit Du sehen kannst, was für ein Fehler aufgetreten ist.
    end;
  end;
  // Hier alle Datenbankkomponenten ihre Verbindungen aufbauen lassen und dann Tabellen, Abfragen... öffnen.
  // Jeweils in etwa dieser Form:
  Try
    Connection1.Connected := True;
  Except
    on e : Exception do begin
      WriteLn(Log,Connection1.Name + ': ' + e.Message);
    end;
  end;
  Try
    Table12345.Open
  Except
    on e : Exception do begin
      WriteLn(Log,Table12345.Name + ': ' + e.Message);
    end;
  end;
  ...
  CloseFile(log);
end;

hirsch 7. Mai 2010 17:57

Re: exe startet nur auf Entwickler-PC
 
Ne dumme Anfängerfrage noch:
Delphi-Quellcode:
 on e : Exception do begin
ist was?
e habe ich als
Delphi-Quellcode:
var
e                       : Exception;
deklariert.
aber das 'on' kann er garnicht, irgendwie. Was fehlt mir da?
hab ich was nicht kapiert?
aber ich danke nahpets für diesen überaus konstruktiven Beitrag.
So was in der Art wäre nun auch meine Idee gewesen, wusste aber nicht wie ich das korrekt umsetzen sollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:22 Uhr.
Seite 2 von 3     12 3      

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