Toon posts:

[Visual Basic] .avi met mediaplayer openen

Pagina: 1
Acties:
  • 167 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hai medetweakers,

Ik zit met een klein probleempje:
Ik ben namelijk een autorun proggie aan het maken voor DivX films. Ik ken de basis van visual basic, maar ik weet totaal niet hoe ik het volgende moet doen.

Ik wil dat als je op een command button drukt er via windows mediaplayer een DivX film wordt geopend en afgespeeld. Zou iemand mij hier de code van kunnen geven?
Ik geloof dat het iets met shell was.

En is het dan ook mogelijk dat ie gelijk op volledig scherm wordt afgespeeld.

Alvast bedankt!!!

Verwijderd

Topicstarter
kan niemand mij helpen??? :'(

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21-09 21:55

Gerco

Professional Newbie

Kijk naar de ShellExecute() functie, ff zoeken op GoT, zo klaar.

edit:
Je kunt natuurlijk ook ActiveX gebruiken, maar ik weet ff niet uit mn hoofd hoe dat Mediaplayer object heet. Je kunt het ook automagisch laten afspelen door een mediaplayer control op je eigen form.


[betweter-mode]
Na slechts 10 minuten je topic omhoogschoppen is een beetje overdreven he. Je krijgt heus wel antwoord, maar de goede mensen zijn er niet altijd als JIJ ze nodig hebt. Beetje geduld hebben, ze komen vanzelf langs
[/betweter-mode]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
Met de basis bedoel ik ook egt de basis, ik snap nog niks van ActiveX en dergelijke. Dus als je dit een klein beetje uit wil leggen hoe ik dat dan moet doen graag

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21-09 21:55

Gerco

Professional Newbie

Op woensdag 19 september 2001 18:51 schreef eatmyshorts het volgende:
Met de basis bedoel ik ook egt de basis, ik snap nog niks van ActiveX en dergelijke. Dus als je dit een klein beetje uit wil leggen hoe ik dat dan moet doen graag
Dat bedoel ik... je kunt ShellExecute gebruiken. Die opent een bestand met het prog wat er bij hoort, wel zo netjes.

Gebruik de search ff en je vind wat codevoorbeelden in VB.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
Ik kom er niet helemaal uit met de search.

Zou je misschien de basis van de code kunnen geven.
Wat moet ik hier verder tussen zetten:


Private Sub Command1_Click()

End Sub

O ja de film die die moet openen is : Lethal_Weapon_4_Part_II.avi
en staat in dezelfde directory

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
In VB moet je het Shell commando gebruiken i.p.v. ShellExecute (da's Delphi). Zie ook MSDN.

Een ActiveX-control is een component (net zoals een CommandButton en TextBox). Ze hebben de extensie .ocx en zijn simpel op te roepen door op de rechtermuisknop bij de controls te kliken en dan op 'Components' of zoiets te klikken.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 14:48

mulder

ik spuug op het trottoir

Op woensdag 19 september 2001 19:36 schreef elnino het volgende:
...
In VB moet je het Shell commando gebruiken i.p.v. ShellExecute (da's Delphi). Zie ook MSDN.
...
In VB kun je ook ShellExecute gebruiken, ShellExecute is een API. Maar ik denk dat deze meneer inderdaad maar Shell moet gebruiken, voordat er ongelukken gebeuren.

oogjes open, snaveltjes dicht


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
In VB kun je ook ShellExecute gebruiken, ShellExecute is een API. Maar ik denk dat deze meneer inderdaad maar Shell moet gebruiken, voordat er ongelukken gebeuren.
API is idd niet echt bedoeld voor beginners, maar als je toch ShellExecute wil gebruiken, zet dit dan in je declarations (van een aparte module):
code:
1
2
3
4
5
Public Declare Function ShellExecute Lib "shell32.dll" 
Alias "ShellExecuteA" (ByVal hwnd As Long, 
ByVal lpOperation As String, ByVal lpFile As String, 
ByVal lpParameters As String, ByVal lpDirectory As String, 
ByVal nShowCmd As Long) As Long

(alles wel aan elkaar plakken...)

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 21-09 21:55

Gerco

Professional Newbie

Op woensdag 19 september 2001 19:36 schreef elnino het volgende:
In VB moet je het Shell commando gebruiken i.p.v.
Opzich heb je gelijk, maar er zit 1 grote MAAR aan. Met Shell() kun je geen .avi bestand 'starten', dan moet je de mediaplayer .exe opzoeken en die starten.

Wat je beter kunt doen is ShellExecute() het .avi bestand, windows gaat dan even het prog erbijzoeken wat die af moet spelen (Mediaplayer, maar kan iedere player zijn die je voor .avi gebruikt, hij pakt automagisch de goede) en laat dat prog 'em afspelen.

Voordelen:
• Automagisch het goede prog voor de file die je start.
• Je hoeft geen (ingewikkelde) commandline in elkaar te draaien, dat doet windows voor je.

Nadeel:
• Niet 100% voor beginners, maar met wat uitleg en creatief searchen komt iedereen eruit.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
En ShellExecute roep je zo aan:
code:
1
Call ShellExecute(hwnd, "Open", "bestandsnaam", "", App.Path, 1)

Natuurlijk wel eerst de declarations aanpassen, zie mijn vorige post.

Verwijderd

Topicstarter
He mensen bedankt het is me gelukt.
Joepie :)

Weet een van jullie misschien een site waar dit soort functies op staan en duidelijk worden uitgelegd wat waarvoor dient.

Want ik heb het boek Visual Basic step by step, en daar zit egt alleen de miniscule basis in, en van Shellexecute had ik bijvoorbeeld nog nooit gehoord. En ik geloof best dat er meer van dit soort geinige functies in zitten.

  • basjuh
  • Registratie: Januari 2001
  • Laatst online: 09:19

Weet t soms wel beter


Verwijderd

Topicstarter
Ojee,
het werkte toch niet helemaal. Ik snap het niet echt van die module, als ik kopieer wat elnino heeft gepost en plak geeftie een error. Maar wat bedoel je dan precies met alles een elkaar plakken????? :o

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 14:48

mulder

ik spuug op het trottoir

Allereerst: Koop een VB boek, dat hoeft niet duur te zijn.

Je moet die code in een module plakken, dwz je project bestaat uit forms + code, modules en nog wat dingen maar vergeet dat maar even.

Code in form:
Private: aan te spreken vanaf buiten: niet
en public: aan te spreken vanaf buiten: form.ProcedureNaam

Code in Module:
Private: aan te spreken vanaf buiten: niet
en public: aan te spreken vanaf buiten: ProcedureNaam

Dus in module: (is 1 regel:)
Public Declare Function ShellExecute Lib "shell32.dll"
Alias "ShellExecuteA" (ByVal hwnd As Long,
ByVal lpOperation As String, ByVal lpFile As String,
ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long

In je form:
ShellExecute(hwnd, "Open", "bestandsnaam", "", App.Path, 1)

oogjes open, snaveltjes dicht


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op donderdag 20 september 2001 17:32 schreef eatmyshorts het volgende:
Maar wat bedoel je dan precies met alles een elkaar plakken????? :o
Er één regel van maken, alles aan elkaar plakken. (Tip: Gebruik je Backspace en Delete-toets ;)). Ik heb er meerdere regels van gemaakt omdat het altijd zo irritant is als je bij een thread een scrollbar (en je dus moet scrollen) krijgt...

Tijdens dat knippen en plakken kun je foutmeldingen krijgen, dat geeft niet, als het uiteindelijke geheel maar wel aan elkaar is op één regel. Of gebruik een underscore (_). Met een underscore zeg je tegen Visual Basic dat je commando op de volgende regel verdergaat.

Dat wordt dus met die _:
code:
1
2
3
4
5
Public Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Ik raad je overigens wel aan een boek over VB te kopen als je verder ermee wilt, omdat daarin de basiszaken van een taal besproken worden.

edit:

Een boek heb je dus al, sorry verkeerd gelezen

Verwijderd

Topicstarter
Hartstikke bedankt allemaal, het werkt helemaal perfect.
Nou heb ik nog een vraagje.

Als ik dit naar een installatiebestand van de divx codec verwijst dan zegtie do you want to install AUTORUN, ipv divx. Als je dan op ok drukt dan zegtie installatie mislukt, weet iemand mischien een oplossing???

Verwijderd

Topicstarter
kan niemand mij helpen???

Verwijderd

Topicstarter
Aub, dit is het enige dat ik nog moet weten.
Via search niks gevonden en google bood ook geen uitkomst

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Dat ligt dan niet aan VB, maar aan die setup. Kijk eens hoe dat setupprogramma van de codec wordt opgestart. (Bijvoorbeeld met commandline parameters o.i.d.) Bovendien weten we ook niet welke codecsetup je gebruikt enzo...

Waar je overigens ook bij VB moet opletten is dat je als je een VB-programma op een andere computer wil afspelen er eerst bepaalde DLL's geïnstalleerd moeten worden.

Ik neem aan dat je dat laatste al wel wist, maar ik zeg het er toch maar even bij, het is een van de meeste gemaakte fouten door beginners in VB, en het scheelt een hoop werk als je dit van te voren weet...

Verwijderd

Topicstarter
ja sorry, ik was er al uit.
Ik heb ff een andere codec gebruikt die doet het wel.
En die dll's dat zit wel snor ikhad gewoon de benodigde dll's en ocx en in dezelfde map gegooid en hij deed het ook gelijk op anjder comps.
Dus klaar isie
Pagina: 1