Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

avi video Datei abspielen lassen
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 12.12.2014, 15:49    Titel: Antworten mit Zitat

Also gut, ihr Nörgler! zwinkern

Hier eine "saubere" Fernsteuerung des VLC-Players:
Code:
#Include "windows.bi"

Declare Sub abspielen(datei As String)
Declare Sub rc(befehl As String)

Dim Shared As HWND hWndDiesesFenster, hWndRC, hWndVLC
Dim As String g, datei
Dim As ZString*100 text
Dim As STARTUPINFO siVLC
Dim As PROCESS_INFORMATION pi
Dim As WINDOWPLACEMENT wpDF, wpVLC

hWndDiesesFenster = GetForegroundWindow() 'fensterhandle ermitteln

'konsolenfenster in die obere linke ecke setzen
GetWindowPlacement(hWndDiesesFenster,@wpDF)
With wpDF.rcNormalPosition
   .right = .right - .left + 1
   .left = 1
   .bottom = .bottom - .top + 1
   .top = 1
End With
SetWindowPlacement(hWndDiesesFenster,@wpDF)

GetStartupInfo(@siVLC) 'defaultwerte holen
'neue werte setzen
text = "Fenster" 'neuer titel der rc-fensters (zum sicheren wiederfinden)
siVLC.lpTitle = @text 'neuen fenstertitel setzen
siVLC.dwFlags = STARTF_USESHOWWINDOW 'anzeigeoption freischalten
siVLC.wShowWindow = SW_HIDE 'rc-fenster verstecken

'VLC-Player mit fernsteuerung starten
CreateProcess(0,"C:\Programme\VideoVLC\vlc.exe --extraintf rc",0,0,0,0,0,0,@siVLC,@pi)

Do 'warten, bis rc-fenster gestartet ist
   Sleep 1
Loop Until FindWindow(0,"Fenster")
hWndRC = FindWindow(0,"Fenster") 'fensterhandle merken

Do 'warten, bis VLC-Player gestartet ist
   hWndVLC = FindWindow(0,"VLC media player")
   Sleep 1
Loop Until IsWindowVisible(hWndVLC)

'VLC unter konsolenfenster setzen
GetWindowPlacement(hWndVLC,@wpVLC)
With wpVLC.rcNormalPosition
   .right = .right - .left + 1
   .left = 1
   .bottom = .bottom - .top + 1 + wpDF.rcNormalPosition.bottom
   .top = 1 + wpDF.rcNormalPosition.bottom
End With
SetWindowPlacement(hWndVLC,@wpVLC)

SetForegroundWindow(hWndDiesesFenster)
Print "1 - Video 1"
Print "2 - Video 2"
Print "3 - Video 3"

Do
   g = InKey
   Select Case g
      Case "1"
         datei = "d:\videos\video1.avi"
         Exit Do
      Case "2"
         datei = "d:\videos\video2.avi"
         Exit Do
      Case "3"
         datei = "d:\videos\video3.avi"
         Exit Do   
   End Select
Loop
abspielen(datei)

Cls
Print "F1 = Pause/weiter"
Print "F2 = Beenden"

Do
   g = InKey
   Select Case g
      Case Chr(255,59) 'F1
         rc("pause") 'pause/weiter
      Case Chr(255,60) 'F2
         rc("quit") 'VLC-Player beenden
         Sleep 1000 'VLC zeit zum beenden geben
         SendMessage(hWndRC,WM_CLOSE,0,0) 'rc-fenster schließen
         End
   End Select
Loop

Sub abspielen(datei As String)
   rc("clear") 'playlist löschen
   rc("add " + datei) 'neues video in playlist schreiben
   rc("play") 'wiedergabe starten
End Sub

Sub rc(befehl As String)
   Dim As Integer x
   Dim As String b
   
   b = befehl + Chr(13) 'RETURN anhängen
   For x = 0 To Len(b) - 1 'befehl als simulierte tastendrücke an rc-fenster senden
      PostMessage(hWndRC,WM_CHAR,Cast(WPARAM,b[x]),0)
      Sleep 1
   Next
End Sub


EDIT:
Ich habe den Code noch einmal überarbeitet (Die Verwendung von TerminateProcess ist ja nicht so wirklich nett zwinkern ).

RockTheSchock hat Folgendes geschrieben:
Es wird natürlich nicht ganz einfach die lib und header datei zu erzeugen, alle Abhängigkeiten aufzulösen, aber wenn die Umgebung eingerichtet ist und es läuft, kannst du die volle Funktionalität von VLC nutzen.
Damit würde ich mir wahrscheinlich eine große Fangemeinde schaffen. grinsen Die Frage ist nur, ob sich der (Zeit-) Aufwand lohnt, da sich der VLC-Player (s.o.) ohne größere Schwierigkeiten fernsteuern lässt (obwohl: irgendwie reizvoll ist der Gedanke schon...).

Jojo hat Folgendes geschrieben:
Auch ein Kindprozess ist nicht dein Prozess
Da hast du Recht, und der Sinn dieser Restriktion ist mir (inzwischen) auch klar, das wäre ja sonst ein kaum zu schließendes Einfallstor für Schadsoftware.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kay2016



Anmeldungsdatum: 22.11.2014
Beiträge: 17

BeitragVerfasst am: 13.12.2014, 21:15    Titel: Antworten mit Zitat

Ist es normal das der VLC Player trotz Pfadangabe zu
C:\quasivideos\test => erst folgenden Pfad durchsucht: Bibliotheken\Dokumente ?
Wie kann ich es beheben ?

Der zweite Code auf dieser Seite zeigt mir nur ein schwarzes Fenster ohne Fehlermeldung, unabhängig davon ob VLC schon läuft oder nicht.


Zuletzt bearbeitet von kay2016 am 14.12.2014, 11:07, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 14.12.2014, 11:01    Titel: Antworten mit Zitat

Welches Betriebssystem hast du?

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kay2016



Anmeldungsdatum: 22.11.2014
Beiträge: 17

BeitragVerfasst am: 14.12.2014, 12:29    Titel: Antworten mit Zitat

Windows 7 64bit
mit dem ersten Code (den du ausführlich erklärt hast) öffnet sich zwar der VLC aber trotzdessen ich dem Pfad zu den Videos angepasst habe, öffnet sich wenn ich z.B. 1 wähle dann nur der Ordner Bibliotheken/Dokumente in denen man dann die Wahl bekommt ein Video zu wählen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 15.12.2014, 02:26    Titel: Antworten mit Zitat

kay2016 hat Folgendes geschrieben:
Windows 7 64bit
Das hatte ich befürchtet. grinsen

Die "Bibliotheken" sind eine Neuerung von Windows 7, und dabei kann ich dir leider nicht weiterhelfen, da ich selber (immer noch) WinXP benutze. Vielleicht weiß ja einer der anderen Experten eine Lösung.

Den Mickysoft - Entwicklern ist zwar alles zuzutrauen, aber daß Win7 eine explizite Pfadangabe schlichtweg ignoriert, kann ich mir eigentlich nicht vorstellen. Bist du ganz sicher, daß deine angegebenen Pfade samt Dateinamen und Erweiterung korrekt sind und daß die angegebenen Dateien wirklich existieren?

Wird vielleicht noch eine Message Box mit der Titelzeile "Eine oder mehrere Dateien zum Öffnen wählen" angezeigt? Das hieße nämlich, daß VLC die angegebene Datei nicht finden konnte. Du könntest vor der Do-Schleife, die die Funktionstasten abfragt, probeweise die Zeilen
Code:
#Include "file.bi"
? FileExists(datei)
einfügen. Wird dort -1 ausgegeben, existiert die Datei, bei einer 0 existiert die Datei nicht.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz