Ik probeer een klein programmatje te schrijven voor een kiosk computer, op deze computer is de website te zien van een opstelling op firefox met kiosk plugin. Omdat er vaak gebrowst wordt op deze computers is het leuk als de browser uiteindelijk weer op de startpagina gaat. Daarom heb ik de screensaver applicatie aangepast.
Deze bestaat uit twee delen, een eerste deel wat een flashfilmpje start en een tweede deel dat in de achtergrond firefox stopt en weer start met als argument de website.
Nu gaat dit op de ontwikkel computer goed, ook als ik op op de computers via remote desktop de screensaver instel en test gaat het goed: Flashfilmpje verschijnt, in de achtergrond wordt firefox gereset en als je klikt zie je dat de screensaver stopt en dat firefox netjes (fullscreen) blijft staan.
Nu is het probleem zo: als de screensaver gewoon wordt aangeroepen op de computer door de screensaver API van windows draait dit goed, maar zodra je de muis beweegt stopt de screensaver (goed) maar crashed ook firefox. Ik heb geen idee hoe dit kan. Ook omdat het op andere computers wel goed gaat en dus ook zelf via remotedesktop op die computers goed gaat.
De belangrijkste code ziet er als volgt uit, misschien dat iemand hier iets ziet waardoor het zou kunnen komen, ik kan helaas niet op de op afstand beheerde computers debuggen, maar op de lokale computer draait het zelfde os (winxp 32) en dezelfde software.
De flashfilmpjes worden trouwens niet door een externe speler afgespeelt maar in de C# applicatie dmv AxInterop.ShockwaveFlash.
Deze bestaat uit twee delen, een eerste deel wat een flashfilmpje start en een tweede deel dat in de achtergrond firefox stopt en weer start met als argument de website.
Nu gaat dit op de ontwikkel computer goed, ook als ik op op de computers via remote desktop de screensaver instel en test gaat het goed: Flashfilmpje verschijnt, in de achtergrond wordt firefox gereset en als je klikt zie je dat de screensaver stopt en dat firefox netjes (fullscreen) blijft staan.
Nu is het probleem zo: als de screensaver gewoon wordt aangeroepen op de computer door de screensaver API van windows draait dit goed, maar zodra je de muis beweegt stopt de screensaver (goed) maar crashed ook firefox. Ik heb geen idee hoe dit kan. Ook omdat het op andere computers wel goed gaat en dus ook zelf via remotedesktop op die computers goed gaat.
De belangrijkste code ziet er als volgt uit, misschien dat iemand hier iets ziet waardoor het zou kunnen komen, ik kan helaas niet op de op afstand beheerde computers debuggen, maar op de lokale computer draait het zelfde os (winxp 32) en dezelfde software.
De flashfilmpjes worden trouwens niet door een externe speler afgespeelt maar in de C# applicatie dmv AxInterop.ShockwaveFlash.
C#:
1
2
3
4
5
6
7
8
9
10
| Thread resetThread = new Thread(new ThreadStart(ResetBrowsers)); Thread playerThread = new Thread(new ThreadStart(RunFlashPlayer)); playerThread.SetApartmentState(ApartmentState.STA); playerThread.Start(); Thread.Sleep(10000); resetThread.Start(); playerThread.Join(); resetThread.Join(); |
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
| private static void ResetBrowsers() { Process[] processes = Process.GetProcessesByName("firefox"); foreach (Process p in processes) { p.Kill(); } Process firefox = new Process(); firefox.StartInfo.FileName = "firefox.exe"; firefox.StartInfo.Arguments = Settings.Default.URL; firefox.Start(); } |
C#:
1
2
3
4
5
| private static void RunFlashPlayer() { Application.Run(new frmFlashPlayer()); //deze stopt via Application.Exit(); firefox zou verder moeten blijven draaien. } |