AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Absturz beim Programmstart unter Window NT
Thema durchsuchen
Ansicht
Themen-Optionen

Absturz beim Programmstart unter Window NT

Ein Thema von mjenke · begonnen am 25. Jun 2003 · letzter Beitrag vom 26. Jun 2003
Antwort Antwort
Seite 1 von 2  1 2      
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Absturz beim Programmstart unter Window NT

  Alt 25. Jun 2003, 10:01
Hallo, alle miteinander!

Ich habe ein dringendes Problem, bei dem ich auf Eure Hilfe hoffe:
Mein Programm läuft auf Rechnern mit verschiedenen Betriebssystemen und unter verschiedenen Profilen. Auf einem XP-Rechner läuft es einwandfrei. Auf einem Windows98SE-Rechner läuft es einwandfrei. Unter NT passiert folgendes:
- Lokaler Admin: Programm läuft einwandfrei
- Benutzer mit eingeschränkten Rechten: Programmabsturz mit Dr. Watson beim Programmstart.

Also mit anderen Worten: es scheint sich wohl um eine Rechtesache zu handeln. Soweit so gut...

Das eigentliche Problem ist folgendes: Es gibt eine Methode FormCreate, die gewisse Dinge ausführt, und eine Methode FormActivate, die ebenfalls gewisse Dinge ausführen soll.

Ich habe mir Messages anzeigen lassen, um nachzuvollziehen, wie weit die Methoden durchlaufen werden, bevor es zum Absturz kommt. Das Ergebnis war wie folgt:
Die FormCreate-Methode wird reibungslos durchlaufen. Jede Anweisung wird ausgeführt, und auch die allerletzte Meldung erscheint noch. Als nächstes müsste er nun eigentlich in die FormActivate-Methode einsteigen. Als allererste Anweisung steht dort ein showMessage. Diese Meldung wird aber schon nicht mehr angezeigt, sondern Dr. Watson meldet sich zu Wort...

Der Absturz geschieht also ZWISCHEN FormCreate und FormActivate. Hat jemand eine Ahnung, woran so etwas liegen könnte?

Als weitere Info: Es gibt DBTable-Objekte, Query-Objekte etc, die allerdings zunächste nicht aktiv sind. Die werden erst zu einem späteren Zeitpunkt zur Laufzeit geöffnet. Ausserdem existiert ein Session-Objekt, das bereits zur Entwurfszeit auf Active gesetzt ist...

Wäre super, wenn jemand helfen könnte!!!


Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 25. Jun 2003, 10:21
Poste mal bitte den Quelltext aus der DPR Datei zwischen begin und end. Das könnte weiterhelfen.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#3
  Alt 25. Jun 2003, 10:33
Greifst du irgendwie auf die Registry zu?
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#4
  Alt 25. Jun 2003, 10:41
@sakura:

Hier der Quelltext aus der dpr zwischen begin und end:
Code:
begin
  Application.Initialize;
  Application.Title := 'Datenpflegeprogramm ATV-Branchenführer 2001';
  Application.CreateForm(TfrmATVMain, frmATVMain);
  Application.CreateForm(TdatModul, datModul);
  Application.CreateForm(TfrmKategorien, frmKategorien);
  Application.CreateForm(TfrmDBOptions, frmDBOptions);
  Application.CreateForm(TfrmLaender, frmLaender);
  Application.CreateForm(TdatModulAusgabe, datModulAusgabe);
  Application.CreateForm(TfrmSuchDialog, frmSuchDialog);
  Application.CreateForm(TfrmAboutBox, frmAboutBox);
  Application.CreateForm(TfrmLaufendeNummern, frmLaufendeNummern);
  Application.CreateForm(TfrmKorrekrurbelicht, frmKorrekrurbelicht);
  Application.CreateForm(TfrmQRListe, frmQRListe);
  Application.CreateForm(TfrmAdrEdit, frmAdrEdit);
  Application.CreateForm(Tform99, form99);
  Application.Run;
end.

@r_kerber:
Ja, ich greife in FormActivate auf die Registry zu. Allerdings komme ich gar nicht soweit, dass das Registry-Objekt erzeugt wird. Ich fliege vorher schon raus.
Der Beginn der FormActivate sieht folgendermassen aus:
Code:
procedure TfrmATVMain.FormActivate(Sender: TObject);
var regDBOptions : TRegistry;
begin
   showMessage('Begin Activate');    // Debug, M. Jenke, 24.06.03
   If Not isInitialized Then
Ich komme aber, wie gesagt, nicht mal bis zu showMessage...


Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 25. Jun 2003, 10:45
Zwischen dem Create und dem Activate werden alle folgenden Module und Formulare erstellt. In deren Create-Ereignissen können auch fatale Fehler auftreten.
Delphi-Quellcode:
  Application.CreateForm(TdatModul, datModul);
  Application.CreateForm(TfrmKategorien, frmKategorien);
  Application.CreateForm(TfrmDBOptions, frmDBOptions);
  Application.CreateForm(TfrmLaender, frmLaender);
  Application.CreateForm(TdatModulAusgabe, datModulAusgabe);
  Application.CreateForm(TfrmSuchDialog, frmSuchDialog);
  Application.CreateForm(TfrmAboutBox, frmAboutBox);
  Application.CreateForm(TfrmLaufendeNummern, frmLaufendeNummern);
  Application.CreateForm(TfrmKorrekrurbelicht, frmKorrekrurbelicht);
  Application.CreateForm(TfrmQRListe, frmQRListe);
  Application.CreateForm(TfrmAdrEdit, frmAdrEdit);
  Application.CreateForm(Tform99, form99);
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.106 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 25. Jun 2003, 11:24
Moin Matthias,

wenn den schon Dr. Watson kommt, dann wird dabei üblicher Weise auch eine Log Datei erstellt, und ausserdem steht auf dem Dr. Watson Fenster auch immer ein Fehlercode.
Wie die Logdatei genau heisst fällt mir gerade nicht ein. Such' am Besten mal im Systemverzeichnis (und darunter) nach *.log.
Der Name müsste zu erkennen sein.

Eventuell steht auch etwas im Eventlog.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7
  Alt 25. Jun 2003, 11:31
Schreibst du in HKLM in die Registry?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#8
  Alt 25. Jun 2003, 11:39
Ja. In HKEY_LOCAL_MACHINE/Software etc..
Aber ist das zum Zeitpunkt des Absturzes nicht gleichgültig? Da ich ja noch gar nicht auf die Registry zugreife...

Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9
  Alt 25. Jun 2003, 11:42
Bist Du Dir da sicher?. Setze doch mal einen Breakpoint an diese Stelle (unmittelbar bevor Du das Registry-Objekt erzeugst).
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10
  Alt 25. Jun 2003, 11:46
Änder das mal und schreib in HKCU. In HKLM hat nur der Admin Schreibrechte.

Was willst du denn in der Registry speichern und ist es unbedingt nötig dies in HKLM zu tun?
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 03:18 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