Seite 1 von 1
Closehelp() verzögert (#None_PB_Bug).
Verfasst: 07.03.2009 22:23
von Falko
Warum verzögert das Closehelp() den Programmablauf, wenn man
zuvor mit Openhelp() die geöffnete chm-File mit dessen Schließfeld
beendet hat und bedingt vor Programmende das Closehelp() einsetzt?
Könnte es sein, das die Verzögerung dadurch kommt, weil die CHM-File vorher
manuell geschlossen war, und beim closehelp() diese dann nicht gefunden wird?
Um diese Verzögerung zu vernichten lasse ich lieber das Closehelp() komplett aus PB raus.
Gruß, Falko
Verfasst: 07.03.2009 22:35
von ts-soft
> Um diese Verzögerung zu vernichten lasse ich lieber das Closehelp() komplett aus PB raus.
Dann würde ich aber auch RunProgram zum öffnen nehmen, statt OpenHelp()

Verfasst: 07.03.2009 22:57
von Falko
ts-soft hat geschrieben:> Um diese Verzögerung zu vernichten lasse ich lieber das Closehelp() komplett aus PB raus.
Dann würde ich aber auch RunProgram zum öffnen nehmen, statt OpenHelp()

Und dann Closehelp() zum beenden?
Ich vermute hinter Closehelp() einen Bug. Ohne diesen ist das beenden
des Programms genauso schnell wie RunProgram() und hinterlässt,
wie man im Taskmanager sehen kann, keine Spuren der Hilfe.
Verfasst: 07.03.2009 23:04
von ts-soft
> Und dann Closehelp() zum beenden?
Nein, aber bei Deiner Variante wird das ActiveX object nicht destroyed.
Also RunProgramm oder OpenHelp mit CloseHelp.
Das mit CloseHelp und Verzögerung ist auch eher ein Windows-Bug, oder
Antiviren/AntiTrojaner Problem
// Nachtrag:
16 ms benötigt er zum schliessen, wenn help noch offen, 0 ms wenn bereits
geschlossen
Code: Alles auswählen
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "void", #PB_Window_SystemMenu)
OpenHelp(#PB_Compiler_Home + "PureBasic.chm", "Help/CloseHelp.html")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
t1 = ElapsedMilliseconds()
CloseHelp()
t2 = ElapsedMilliseconds() - t1
MessageRequester("", Str(t2))
Verfasst: 08.03.2009 00:38
von Falko
Danke Thomas, so wie du es geschrieben hast, kommt bei
mir auch das gleiche als Ergebnis heraus.
Somit kann ich Virenscanner und Bug schon mal ausschliessen.
[Edit]
Ich hab nun das Problem in meinem grösseren Programmsource, in
Verbindung mit CloseHelp(), gefunden. Es liegt an CloseWindow(), was
nach dem CloseHelp() nicht vorhanden war.
Aber trotzdem, vielen Dank für Dein Beispiel Thomas. Somit konnte ich
den wirklichen Grund herausfinden
[/Edit]
