Unbekannter Fehler

06/05/2009 - 15:47 von Jochen | Report spam
Liebe Leute,

mich treibt ein "unbekannter Fehler" um, der meine VB6-Anwendung
(www.a-jur.de) auf einigen Rechnern zum Absturz bringt, bevor
überhaupt mein Programmcode erreicht wird. Ich kann ihn also weder an
einer Anweisung festmachen noch abfangen.

Es scheint sich um ein Rechteproblem zu handeln. Führt man die
Anwendung einmal unter Admin-Rechten aus, kommen die nàchsten Starts
ohne Admin-Rechte aus.Bei einigen Rechnern ist diese Prozedur nach
jedem Rechnerstart, bei anderen Rechnern "nur" nach jedem
Programmupdate zu widerholen. Sehr làstig.

Es tritt aber nur vereinzelt auf. Auf den meisten (vielen hundert)
Rechnern làsst sich das Programm ohne weiteres starten.

Kann es damit zusammenhàngen, dass eines der Klassenmodule als "6-
GlobalMultiUse" konfiguriert ist (weil ich aus Word-VBA darauf
zugreifen muss) und die damit einhergehende Selbstregistrierung als
ActiveX-Server besondere Rechte erfordert?

In der Registry spreche ich ansonsten nur HKEY_CURRENT_USER an, aber,
wie gesagt, bisdahin gelangt die Ausführung ja nicht einmal.

Wàre für jeden Tipp dankbar!
Jochen
 

Lesen sie die antworten

#1 Thorsten Doerfler
06/05/2009 - 16:24 | Warnen spam
Jochen schrieb:
mich treibt ein "unbekannter Fehler" um, der meine VB6-Anwendung
(www.a-jur.de) auf einigen Rechnern zum Absturz bringt, bevor
überhaupt mein Programmcode erreicht wird. Ich kann ihn also weder an
einer Anweisung festmachen noch abfangen.

Es scheint sich um ein Rechteproblem zu handeln. Führt man die
Anwendung einmal unter Admin-Rechten aus, kommen die nàchsten Starts
ohne Admin-Rechte aus.Bei einigen Rechnern ist diese Prozedur nach
jedem Rechnerstart, bei anderen Rechnern "nur" nach jedem
Programmupdate zu widerholen. Sehr làstig.



Die Sache beim Programmupdate kannst Du vermeiden, indem Du die
Binàrkompatibilitàt Deiner Komponenten einhàltst. Einzustellen unter
Projekt => Eigenschaften > Komponente. Als Referenz verwendest Du hier
eine Kopie Deiner Release Version.

Hast Du keine Kompatibilitàt eingestellt, wird bei jedem Erstellen eine
neue Schnittstelle generiert, die natürlich auf dem Clientrechner spàter
wieder registriert werden möchte.

Es tritt aber nur vereinzelt auf. Auf den meisten (vielen hundert)
Rechnern làsst sich das Programm ohne weiteres starten.



Dort werden die User dann wohl stàndig als Admin unterwegs sein.

Kann es damit zusammenhàngen, dass eines der Klassenmodule als "6-
GlobalMultiUse" konfiguriert ist



Nein, das ist dafür nicht ausschlaggebend.

(weil ich aus Word-VBA darauf
zugreifen muss)



Dafür müsste es nicht GlobalMultiUse sein.

und die damit einhergehende Selbstregistrierung als
ActiveX-Server besondere Rechte erfordert?



Die Registrierung sàmtlicher COM Komponenten erfordert
Adminberechtigungen. Normalerweise sollte Dein Setup bereits dafür
sorgen, dass alle Komponenten ordnungsgemàß registriert werden.
Idealerweise wird Dein Setup natürlich als Administrator ausgeführt.
Beim Update das gleiche Vorgehen, es sei denn Du bewahrst die
Kompatibilitàt der einzelnen Releases.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen