Anwendungen | | | | E.T. | Kleine Spielerei, wie File-Typen (und deren Zuordnung) ausgelesen werden können. Im Beispiel sortiere ich die registrierten Video-Typen aus.
Bei manchen Codec's, welche direkt nur einer Anwendung zugeordnet sind, hab ich leider noch keine Möglichkeit gefunden, diese als "Video" zuzuordnen :
Da es hier aber um die frei verwendbaren Formate ging, ist dies nicht ganz so relevant (der Mediaplayer kann z.B. bei mir Videos im .mpeg4 - Format nicht abspielen, zeigt nur ein leeres Fenster, während die Spiel-Zeit corre. Also wahrscheinlich kein Zugriff auf den Codec ) KompilierenMarkierenSeparierenDef Regopenkeyex(5) !"ADVAPI32","RegOpenKeyExA"
Def Regenumkey(4) !"ADVAPI32","RegEnumKeyA"
Def Regclosekey(1) !"ADVAPI32","RegCloseKey"
Def @Regenumvalue(8) !"ADVAPI32","RegEnumValueA"
$H Windows.ph
Windowstyle 8+16
Windowtitle "REGISTRIERTE VIDEO - TYPEN"
Window 600,700
CLS ~Getsyscolor(15)
Declare Ergebnis#,Open_Error&,Handle&,Zaehler%, Eintrag$
Declare Arb_Box&, V_Box&, MCI_Box&, MCI_Key$
Arb_Box& = @Create("MultiEdit",%HWnd,"",5,5,580,100)
@Create("Text",%HWnd,"Gefundene Reg.-Einträge für Video (HKEY_CLASSES_ROOT) :",5,110,500,20)
V_Box& = @Create("MultiEdit",%HWnd,"",5,130,580,200)
@Create("Text",%HWnd,"Gefundene MCI-Einträge für Video:",5,340,500,20)
MCI_Box& = @Create("MultiEdit",%HWnd,"",5,360,580,200)
Reg_0_Schluessel
MCI_Schluessel
Proc AddMultiLine
Parameters Multi&,Text$
Text$ = Text$+"\n"
var TextEnde& = Len(GetText$(Multi&))
~sendmessage(Multi&,$B1,TextEnde&,TextEnde&)
~sendmessage(Multi&,$C2,1,addr(Text$))
EndProc
Proc Reg_0_Schluessel
Dim Ergebnis#,255
'HKEY_CLASSES_ROOT = $80000000
'HKEY_CURRENT_USER = $80000001
'HKEY_LOCAL_MACHINE = $80000002
'HKEY_USERS = $80000003
'$20019 = Nur auslesen
AddMultiLine Arb_Box&,"Schlüssel öffnen..."
Open_Error&=Regopenkeyex($80000000,0,0,$20019,Addr(Handle&))
IfNot Open_Error&
AddMultiLine Arb_Box&,"O.K."
AddMultiLine Arb_Box&,"...lese Unterschlüssel aus, Moment bitte..."
Else
AddMultiLine Arb_Box&," Fehler !!!!"
waitinput
end
EndIf
Whilenot Open_Error&
Open_Error&=Regenumkey(Handle&,Zaehler%,Ergebnis#,100)
Casenot Open_Error& : Addstring String$(Ergebnis#,0)
Inc Zaehler%
Endwhile
AddMultiLine Arb_Box&,"Schlüssel schliessen..."
Regclosekey(Handle&)
Dispose Ergebnis#
AddMultiLine Arb_Box&,"gefunden: " + @str$(%GetCount) + " Einträge"
AddMultiLine Arb_Box&,"----------------------------------------"
AddMultiLine Arb_Box&,"Unterschlüssel sortieren, Moment bitte..."
AddMultiLine Arb_Box&,"----------------------------------------"
@Set("ErrorLevel", 0)
WhileLoop 0,%GetCount
Eintrag$ = @ReadIni$("HKEY_0",@ListBoxItem$(&loop),"PerceivedType")
If @Upper$(Eintrag$) = "VIDEO"
AddMultiLine V_Box&,@ListBoxItem$(&loop)
endIf
EndWhile
endProc
Proc MCI_Schluessel
Clear Open_Error&, Handle&
Dim Ergebnis#,255'möglich Länge des ausgelesenen Namens
MCI_Key$ = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions"
AddMultiLine Arb_Box&,"MCI-Schlüssel öffnen..."
Open_Error&=Regopenkeyex($80000002,Addr(MCI_Key$),0,$20019,Addr(Handle&))
IfNot Open_Error&
AddMultiLine Arb_Box&,"O.K."
AddMultiLine Arb_Box&,"...lese MCI-Unterschlüssel aus, Moment bitte..."
Else
AddMultiLine Arb_Box&," Fehler !!!!"
waitinput
end
EndIf
Declare Valuesize#,Typ#,Wert#,Buffersize#,MCI_Zaehler%
Dim Typ#,4
Dim Wert#,261
Dim Buffersize#,4
Dim Valuesize#,4
Dim Ergebnis#,261
ClearList
Whilenot Open_Error&
Long Buffersize#,0=261
Long Valuesize#,0=261
Clear Ergebnis#,Typ#,Wert#
Open_Error&=@Regenumvalue(Handle&,MCI_Zaehler%,Ergebnis#,Valuesize#,0,Typ#,Wert#,Buffersize#)
Casenot Open_Error& : Addstring String$(Ergebnis#,0)
Inc MCI_Zaehler%
Endwhile
AddMultiLine Arb_Box&,"MCI-Schlüssel schliessen..."
Regclosekey(Handle&)
Dispose Ergebnis#
Dispose Typ#
Dispose Buffersize#
Dispose Valuesize#
AddMultiLine Arb_Box&,"gefunden: " + @str$(%GetCount) + "MCI - Einträge"
AddMultiLine Arb_Box&,"----------------------------------------"
AddMultiLine Arb_Box&,"MCI-Unterschlüssel sortieren, Moment bitte..."
AddMultiLine Arb_Box&,"----------------------------------------"
@Set("ErrorLevel", 0)
WhileLoop 0,%GetCount
Eintrag$ = @ReadIni$("HKEY_2",MCI_Key$,@ListBoxItem$(&loop))
If @Instr("VIDEO",@Upper$(Eintrag$))
AddMultiLine MCI_Box&,@ListBoxItem$(&loop) + " - " + Eintrag$
endIf
EndWhile
AddMultiLine Arb_Box&,"MCI sortieren fertig ..."
endProc
WhileNot (%Key = 2) OR (%Key = 27)
wai
EndWhile
end
Vielleicht hilfts ja dem einen oder anderem |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 19.02.2011 ▲ |
| |
| | | Find ich sehr cool...
gibt bei mir aus:
Schlüssel öffnen... O.K. ...lese Unterschlüssel aus, Moment bitte... Schlüssel schliessen... gefunden: 7389 Einträge ---------------------------------------- Unterschlüssel sortieren, Moment bitte... ---------------------------------------- MCI-Schlüssel öffnen... O.K. ...lese MCI-Unterschlüssel aus, Moment bitte... MCI-Schlüssel schliessen... gefunden: 31MCI - Einträge ---------------------------------------- MCI-Unterschlüssel sortieren, Moment bitte... ---------------------------------------- MCI sortieren fertig ...
.asf .asx .avi .dvr-ms .ivr .m1v .m2v .mod .mp2 .mp2v .mp4 .mpa .mpe .mpeg .mpg .mpv2 .ram .rmm .rsml .wm .wmv .wmx .wvx
avi - avivideo aif - MPEGVideo aifc - MPEGVideo aiff - MPEGVideo asf - MPEGVideo asx - MPEGVideo au - MPEGVideo m1v - MPEGVideo m3u - MPEGVideo mp2 - MPEGVideo mp2v - MPEGVideo mp3 - MPEGVideo mpa - MPEGVideo mpe - MPEGVideo mpeg - MPEGVideo mpg - MPEGVideo mpv2 - MPEGVideo snd - MPEGVideo wax - MPEGVideo wm - MPEGVideo wma - MPEGVideo wmv - MPEGVideo wmx - MPEGVideo wpl - MPEGVideo wvx - MPEGVideo dat - MPEGVideo m2v - MPEGVideo mod - MPEGVideo |
| | | | |
| | Dieter Zornow | Bei mir werden auch Audio-File und Playlist-File gefunden. au, aif, m3u, wma, mod, ogg, usw. Der Mediaplayer kann MP4 nur abspielen, wenn dieser Codec Xvid-1.2.2-07062009.exe installiert ist. Ich habe das K-Lite Codec Pack Mega installiert, damit geht es mit vielen Playern aber nicht im Mediaplayer und nicht mit der Xmovie.dll von Thomas, beide funktionieren nur wenn Xvid installiert ist. |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 20.02.2011 ▲ |
| |
| | E.T. | Hm, warum die von dir genannten File-Typen als MPEGVideo registriert sind (bei mir und s.o. bei David ja auch), das kann wohl nur MS nicht erklären .
Was den MPlayer betrifft, dieser hat eh seine eigene Liste in der reg., was er denn so alles abspielt.
Die Xmovie.dll scheind mir aufs MCI aufzusetzen. Und da sind DivX / Xvid nicht mit registriert. Mal versuchen, diese dort "per Hand" einzutragen... |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 20.02.2011 ▲ |
| |
| | Dieter Zornow | Bin mir nicht sicher ob die Xmovie.dll auf MCI aufsetzt. Ich habe im anderen Foro gefragt was der Vorteil opposto mit MCI abspielen ist, und da wurde mir gesagt die Qualität wäre besser und die Prozessorauslastung geringer, wobei bei mir beides nicht zutrifft, die Auslastung ist gleich und auch bei der Qualität konnte ich keine Unterschiede feststellen. |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 20.02.2011 ▲ |
| |
|
Zur AnwendungTopic-Options | 10.955 Views |
ThemeninformationenDieses Thema hat 3 subscriber: |