eine passendere Überschrift zu meinem Problem fiel mir nicht ein
Ich habe mich nun mal an mein 1. Projekt gewagt und einen Programminstaller erstellt. ( Bitte Nachsicht, ich bin mir sicher, das man den mit 80 % weniger Code hätte erstellen können, Bugfix dürfte seine wahre Freude darüber haben, 2000 Zeilen Code mittels Arrays in etwa 100 Zeilen zu packen, Hilfestellung durchaus willkommen )
Zu meinem Problem.
Beim Start des Programms wird das Vorhandensein diverser Software auf betreffendem PC überprüft. In Abhängigkeit dessen was gefunden wird, unterscheidet das Programm nach "nicht vorhanden", "vorhanden, aber veraltet" oder "aktuell".
Entsprechend werden Checkboxen gesetzt. Wenn "aktuell" ist die Checkbox unchecked und hidden, "nicht aktuell" = unchecked und unhidden, "fehlt" = checked.
So ist fehlende Software zum Installieren vormarkiert, bei nicht aktueller Software kann entschieden werden, ob installiert werden soll.
Wird selektierte Software installiert, wird nach Abschluss jedes installierten Programmes der Status entsprechend neu geprüft und aktualisiert.
Soweit funktioniert das auch alles.
Da eine Deinstallation seitens Programm nicht vorgesehen ist ( reicht zum Testen die Systemsteuerung ) , würde das Programm eine Deinstallation nicht bemerken, ohne das Programm neu zu starten. Daher habe ich mir hilfsweise einen Refreshbutton gemacht, welcher die Funktionen zum Prüfen des Status durchläuft.
Auch das macht er ( wenn programmtechnisch sicher nicht "optimal" gelöst ).
Nun habe ich im Testbetrieb aber festgestellt, das es zu mir nicht erklärbaren Effekten kommt, deren Ursache mir unbekannt ist. Habe ich beispielsweise selektiv ausgewählt, was er installieren soll und ich danach den Refreshbutton drücke ( was eigentlich nicht nötig wäre ), setzt er mir logischerweise wieder da einen Haken in die Checkbox, wo der Status "nicht installiert" ist, was ja auch richtig ist.
Fahre ich nun mit dem Mauszeiger über die Checkboxen, welche er nun wieder markiert hat, verschwinden diese wie von Geisterhand, ohne von mir gezielt angeklickt zu werden. Das ist ärgerlich, zumal er trotzdem die Programme installieren würde, deren Haken einfach verschwinden.
Mir geht es im Moment vorrangig darum, ob dieses Phänomen bekannt ist, oder ob ihm ggf. eine Opt-Anweisung fehlt, es ein Bug der Version ist ( mit Beta noch nicht getestet ) , es programmiertechnisches Unvermögen sein könnte, er unter manchen Unständen ein eigenständiges "MouseHover" macht, oder ob man bei Checkboxen noch irgendwelche Stati machen muss; in manchen Programmiersprachen ( FoxPro, VB, C++ etc. ) gibt es wohl das Attribut "refresh" um eine Änderung einer Checkbox zu manifestieren.
Ich hänge gleich mal den Code an, für den Spoiler dürfte er zu groß sein. Auf die Programme selbst verzichte ich dabei, das Paket hat derzeit gepackt runde 500 MB ( ich lass lediglich Flash für IE mal drauf )
Ich habe das Programm gesplittet, Hauptprogramm mit den beiden Fenstern, und die Funktionen als UDF, die Icons als DLL. Auf die zugehörigen Grafiken verzichte ich, da sie firmenspezifische Inhalte haben.
( Das Programm soll eigentlich derzeit für WinXP SP3 sein, da ich aber unter Win7 teste, hab ich die Plausiblitätsprüfung nach OS derzeit nicht aktiv )
Zusammenfassend kurze Anleitung zur Nachstellung des Problems. Aufruf des Programms, deaktiveren eines Hakens ( z.B. Adobe Reader ) , Refreshbutton drücken, Haken müßte wieder drin sein, mit der Maus über entsprechenden Checkbox fahren, Haken müßte verschwinden.