[VB] useractivity constateren tijdens afspelen MPG

Pagina: 1
Acties:

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:03

BdR

TV is gooder then books

Topicstarter
voor gevorderden.. ik probeer een screensaver te maken met Visual Basic die movies afspeelt, en die moet natuurlijk stoppen als de muis bewogen wordt of een willekeurige toets te drukken.

ik heb via de WINMM.DLL de functie om een moviefile (avi/mpg/asf etc.) in fullscreen af te spelen.
code:
1
2
3
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA"
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long,
ByVal hwndCallback As Long) As Long

en die pas ik als volgt toe
code:
1
2
3
strFileToPlay = "d:\test.mpg"
mciSendString "open " & strFileToPlay & " type MPEGVideo", 0, 0, 0
mciSendString "play " & strFileToPlay & " fullscreen", 0, 0, 0

ook heb ik via USER32.DLL een functie waarmee ik de muis cursor kan uitlezen (x en y pos in pixels)
code:
1
2
3
4
5
6
Type POINTAPI
    x As Long
    y As Long
End Type

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

die lees ik in een While-Wend-loop steeds uit om te controleren of ze gewijzigd zijn

Dit werkt allemaal goed als het filmpje in een window wordt afgespeeld (dan laat je gewoon het gedeelte " fullscreen" weg) maar als het wel fullscreen loopt kan ik de muiscursor niet meer uitlezen :{ weet iemand hoe ik dit kan oplossen.. :? zijn er bijv. DirectX DLL's die mpg's enzo kunnen afspelen o.i.d.?

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 16:17

Basszje

Reisvaap!]

Kan je dat niet afvangen met het doEvents commando :?

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • BdR
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:03

BdR

TV is gooder then books

Topicstarter
doEvents? :? ik heb even in de VB-Help gekeken, maar wordt er niet echt wijs uit, wat doet dat nou precies?

anyway ik heb et al, als hij switched naar fullscreen verspringt om 1 of andere vage reden de cursor elke keer weer eerst naar pos. 160x120 en dan naar 319x239 (log filetje bijgehouden) .. vreemd, zal wel iets met het wisselen van scherm resolutie te maken hebben..

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


Verwijderd

Op woensdag 30 januari 2002 19:34 schreef BdR het volgende:
doEvents? :? ik heb even in de VB-Help gekeken, maar wordt er niet echt wijs uit, wat doet dat nou precies?
Als je dat aanroept wordt de windows message queue afgewerkt. Dus alle messages die een muis beweging/toets aanslag/repaint willen bewerkstelligt worden behandeld.
Hierdoor heb je niet door dat je programma hard aan het denken is. Het nadeel hiervan is wel dt het enorm veel trager wordt!
Het is mogelijk om zelf een soort DoEvents te schrijven die alleen bepaalde handelingen verwerkt en dus sneller is. Als je de link in m'n sig. volgt en zoekt naar een tutorial over DoEvents moet je 'm wel kunnen vinden :)

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:03

BdR

TV is gooder then books

Topicstarter
okee, het probleem is nu, dat als ik een filmpje in fullscreen afspeel en dan iets anders doe met VB (bijv. een while..wend of for..next loop (of whatever) dan lijkt het of hij van fullscreen weer terug keert naar mn desktop. Want dan zie ik mn desktop met linksboven een zwart vakje (precies ter grootte van het filmpje) en ik hoor het geluid van het filmpje wel

dus de code is bijvoorbeeld:
code:
1
2
3
4
mciSendString "open test.mpg type MPEGVideo"
mciSendString "play test.mpg fullscreen"
For i = 1 to 250000000 'doe iets..
Next i

zal wel een bug in WINMM zijn, maar weet er iemand hoe ik hier omheen moet werken.. :?

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


  • BdR
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:03

BdR

TV is gooder then books

Topicstarter
dat vorige is een bug(?) in winXP/2000/NT want op win98 doet ie het wel goed

maar nu weer een vraagje: hoe kan ik vanuit Visual Basic het checkbox "mute all" aanvinken of uitvragen?

Dus als je naar volume control gaat (dubbel klik op loudspeaker in je systray), zit daar linkonder een checkbox "mute all". Ik kan nergens vinden hoe dit moet.. (of kan dat echt helemaal niet?)

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


Verwijderd

Hangt dat probleem niet samen met het feit dat wanneer je een screenshot maakt van een windowed player, dat je dan een zwart vak ziet waar de film hoort te zitten?

komt bij: wanneer je fullscreen afspeelt, kan je je muis toch niet zien? dus dan kan je toch ook niets anders doen met je muis? (ik heb het dan nu over de <alt><enter> fullscreen

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:03

BdR

TV is gooder then books

Topicstarter
voor wie et wat kan schelen, hier het resultaat.. :7

Afbeeldingslocatie: http://home.hetnet.nl/~bas_de_reuver/webgrafx/mss_icon.gif
MovieScreensaver (710kb) en de source (26kb) speelt mpg/avi/etc. (alles wat de Mediaplayer kan afspelen) als screensaver. Op *sommige* WindowsXP/2000 systemen werkt het niet goed, geen flauw idee waar het aan ligt :'( ik denk de Mediaplayer versie ofzoiets? :?

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider

Pagina: 1