MediaInfo.dll und XProfan

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Und nochmals danke. Kannst du eventuell noch bei "Get" weiterhelfen?
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Ich habs jetzt erstmal so gelöst, dass der String entsprechend nach der gewünschten Information zerpflückt wird. Ist relativ langsam, aber es geht. :thumbsup:
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Für alle, die brennend daran interessier sind was ich eigentlich zusammenschuster:
      Damit ich schnell weiß welcher Film wo ist und in welcher Qualität. Das Programm ist aber wirklich nur schnell zusammengekloppt. Die Filterfunktion ist nicht besonders schnell. MediaInfo.dll im Programmordner nicht vergessen.

      Erklärung:
      - "Ordner" verwaltet die Ordner, die durchsucht werden
      - "Einlesen" liest die Ordner ein
      - "Speichern" speichert das Ergebnis in einer Textdatei ab
      - "Laden" liest die Textdatei wieder ein, wenn man nicht alle einlesen will sondern auf ein älteres Ergebnis zurückgreifen will.

      Quellcode

      1. $H D:\XProfan\XProfan\INCLUDE\windows.ph
      2. Def $Ver "1.0"
      3. declare liste&,l2&,neu&,suche&,ende%,ende&,dll&,handle&,log%,save&,load&,txt&,fldr&,ordnr&,del&,suche$,st&,foc%
      4. proc AddFilStr
      5. Parameters p$
      6. AddString(liste&,p$)
      7. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(p$,1,"|"))):AddString(l2&,p$)
      8. endproc
      9. proc loadordner
      10. Parameters r&
      11. declare o$,o&,p$
      12. Clearlist r&
      13. o$=$ProgDir+"ordner.txt"
      14. if FileExists(o$)
      15. if FileSize(o$)>0
      16. o&=Assign(o$)
      17. Reset #o&
      18. whilenot EOF(#o&)
      19. Input #o&,p$
      20. AddString(r&,p$)
      21. endwhile
      22. Close #o&
      23. Assign #o&,""
      24. endif
      25. endif
      26. endproc
      27. proc ordner
      28. declare w&,l&,a&,d&,o&,e&,e%,o$,h&,t$
      29. w&=Create("Dialog",%hWnd,"Ordner verwalten",600,300,416,400)
      30. l&=Create("Listbox",w&,1,8,8,284,352)
      31. a&=Create("Button",w&,"Hinzufügen",300,8,96,24)
      32. d&=Create("Button",w&,"Löschen",300,40,96,24)
      33. o&=Create("Button",w&,"Speichern",300,304,96,24)
      34. e&=Create("Button",w&,"Abbrechen",300,336,96,24)
      35. loadordner l&
      36. whilenot e%
      37. EnableWindow d&,GetCurSel(l&)<>-1
      38. waitinput
      39. if Clicked(a&)
      40. o$=ChooseDir$("Verzeichnis wählen:")
      41. case o$<>"":AddString(l&,o$)
      42. elseif Clicked(d&)
      43. DeleteString(l&,GetCurSel(l&))
      44. elseif Clicked(o&)
      45. h&=Assign($ProgDir+"Ordner.txt")
      46. Rewrite #h&
      47. whileloop 0,GetCount(l&)-1
      48. t$=GetString$(l&,&Loop)
      49. case t$<>"":Print #h&,t$
      50. endwhile
      51. Close #h&
      52. Assign #h&,""
      53. Inc e%
      54. elseif Clicked(e&)
      55. Inc e%
      56. endif
      57. endwhile
      58. loadordner ordnr&
      59. DestroyWindow(w&)
      60. endproc
      61. proc ConvertBytes$
      62. Parameters d!
      63. declare r$
      64. log%=0
      65. while d!>1024
      66. d!=d!/1024
      67. Inc log%
      68. endwhile
      69. r$=Str$(d!)
      70. r$=Left$(r$,InStr(".",r$)+2)
      71. Return r$
      72. endproc
      73. proc getinfo
      74. Parameters p$,info$,section$,cut$
      75. if section$<>""
      76. p$=Del$(p$,1,Instr(section$+"\n",p$))
      77. endif
      78. p$=Del$(p$,1,InStr(info$,p$))
      79. p$=Del$(p$,1,InStr(":",p$)+1)
      80. p$=Left$(p$,InStr("\n",p$))
      81. case cut$<>"":p$=Translate$(p$,cut$,"")
      82. Return p$
      83. endproc
      84. Proc Search
      85. declare s$,fold&,d$,p$,f$
      86. Clearlist liste&
      87. Clearlist l2&
      88. whileloop 0,GetCount(ordnr&)-1
      89. fold&=&Loop
      90. d$=GetString$(ordnr&,fold&)
      91. ChDir d$
      92. s$=FindFirst$("*.*")
      93. whilenot %IOResult' OR (GetCount(liste&)>30)
      94. if FileExists(d$+s$)
      95. AddString(liste&,s$+"|"+d$)
      96. endif
      97. s$=FindNext$()
      98. endwhile
      99. endwhile
      100. whileloop 0,GetCount(liste&)-1
      101. s$=GetText$(liste&,&Loop,0)
      102. d$=GetText$(liste&,&Loop,1)
      103. f$=d$+s$
      104. MI_MediaInfoA_Open(handle&,f$)
      105. p$=String$(MI_MediaInfoA_Inform(handle&,0),0)
      106. case (suche$="") OR InStr(Lower$(suche$),Lower$(s$)):AddString(l2&,s$+"|"+d$+"|"+ConvertBytes$(FileSize(f$))+" "+Mid$("kMG",log%,1)+"B"+"|"+GetInfo(p$,"Duration")+"|"+GetInfo(p$,"Format","Video")+"|"+Translate$(GetInfo(p$,+"Width","Video","pixels")+"*"+GetInfo(p$,"Height","Video","pixels")," ","")+"|"+GetInfo(p$,"Bit rate ","Video"," ")+"|"+GetInfo(p$,"Format","Audio")+"|"+GetInfo(p$,"Bit rate ","Audio"," "))
      107. MI_MediaInfoA_Close(handle&)
      108. SetText st&,"Einlesen: Datei "+Str$(&Loop)+"/"+Str$(GetCount(liste&))+" ("+Format$("##0.00",100*&Loop/GetCount(liste&))+"%)"
      109. endwhile
      110. endproc
      111. proc load
      112. declare l&,t$
      113. if FileExists($ProgDir+"Filmliste.txt")
      114. l&=Assign($ProgDir+"Filmliste.txt")
      115. Reset #l&
      116. Whilenot EOF(#l&)
      117. Input #l&,t$
      118. AddFilStr(t$)
      119. endwhile
      120. Close #l&
      121. Assign #l&,""
      122. endif
      123. endproc
      124. proc save
      125. declare l&,t$
      126. l&=Assign($ProgDir+"Filmliste.txt")
      127. Rewrite #l&
      128. Whileloop 0,GetCount(liste&)-1
      129. Print #l&,GetString$(liste&,&Loop)
      130. endwhile
      131. Close #l&
      132. Assign #l&,""
      133. endproc
      134. proc enable
      135. Parameters d%,p$
      136. EnableWindow neu&,(GetCount(ordnr&)<>0) AND d%
      137. EnableWindow fldr&,d%
      138. EnableWindow load&,FileExists($ProgDir+"Filmliste.txt") AND d%
      139. EnableWindow save&,d%
      140. EnableWindow suche&,d%
      141. EnableWindow ende&,d%
      142. EnableWindow liste&,d%
      143. case p$<>"":SetText st&,p$
      144. endproc
      145. proc einlesen
      146. declare p$
      147. enable 0,"Filter anwenden..."
      148. Clearlist l2&
      149. whileloop 0,GetCount(liste&)-1
      150. p$=GetString$(liste&,&Loop)
      151. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(p$,1,"|"))):AddString(l2&,p$)
      152. endwhile
      153. endproc
      154. WindowStyle 282
      155. WindowTitle "Mediathek "+$Ver
      156. window 200,100-1492,804
      157. cls ~GetSysColor(15)
      158. neu&=Create("Button",%hWnd,"Einlesen",8,8,96,24)
      159. fldr&=Create("Button",%hWnd,"Ordner",112,8,96,24)
      160. load&=Create("Button",%hWnd,"Laden",216,8,96,24)
      161. save&=Create("Button",%hWnd,"Speichern",320,8,96,24)
      162. Create("Text",%hWnd,"Filter:",424,12,44,24)
      163. suche&=Create("Edit",%hWnd,"",468,8,240,24)
      164. del&=Create("Button",%hWnd,"X",708,8,24,24)
      165. ende&=Create("Button",%hWnd,"Beenden",1380,8,96,24)
      166. st&=Create("StatusWindow",%hWnd,"Laden...")
      167. ordnr&=Create("List",1)
      168. loadordner ordnr&
      169. liste&=Create("Grid",9,1)
      170. l2&=Create("Gridbox",%hWnd,"Dateiname;0;500;Pfad;0;200;Größe;1;80;Länge;1;80;Codec;0;100;Auflösung;0;80;Bitrate;1;72;Audiocodec;0;100;Bitrate;1;72",0,8,40,1468,700)
      171. dll&=Importdll($ProgDir+"MediaInfo.dll","MI_")
      172. handle&=MI_MediaInfoA_New()
      173. Usermessages 16
      174. whilenot ende%
      175. enable 1,"Bereit..."
      176. case foc%:SetFocus(suche&)
      177. waitinput
      178. foc%=GetFocus(suche&)
      179. if Clicked(ende&) OR (%UMessage=16) OR MenuItem(4000)
      180. Inc ende%
      181. elseif Clicked(del&)
      182. SetText suche&,""
      183. suche$=""
      184. einlesen
      185. Inc foc%
      186. elseif GetFocus(suche&)
      187. if suche$<>GetText$(suche&)
      188. suche$=GetText$(suche&)
      189. einlesen
      190. endif
      191. elseif Clicked(neu&)
      192. enable 0,"Einlesen..."
      193. Search
      194. elseif Clicked(save&)
      195. enable 0,"Speichern..."
      196. save
      197. elseif Clicked(load&)
      198. enable 0,"Laden..."
      199. Clearlist liste&
      200. Clearlist l2&
      201. load
      202. elseif Clicked(fldr&)
      203. ordner
      204. endif
      205. endwhile
      206. MI_MediaInfoA_Delete(handle&)
      207. FreeDLL dll&
      208. progend
      Alles anzeigen
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Deutlich verbesserte Version, aber immer noch schmucklos. Ist halt funktional.

      Quellcode

      1. $H D:\XProfan\XProfan\INCLUDE\windows.ph
      2. Def $Ver "1.3"
      3. declare spl%,cb&,liste&,l2&,neu&,suche&,ende%,ende&,dll&,handle&,log%,save&,load&,txt&,fldr&,ordnr&,del&,suche$,st&,foc%,tl&,fn$,m$,n$,m&
      4. proc AddFilStr
      5. Parameters p$
      6. AddString(liste&,p$)
      7. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(p$,spl%,"|"))):AddString(l2&,p$)
      8. endproc
      9. proc loadordner
      10. Parameters r&
      11. declare o$,o&,p$
      12. Clearlist r&
      13. o$=$ProgDir+"ordner.txt"
      14. if FileExists(o$)
      15. if FileSize(o$)>0
      16. o&=Assign(o$)
      17. Reset #o&
      18. whilenot EOF(#o&)
      19. Input #o&,p$
      20. AddString(r&,p$)
      21. endwhile
      22. Close #o&
      23. Assign #o&,""
      24. endif
      25. endif
      26. endproc
      27. proc ordner
      28. declare w&,l&,a&,d&,o&,e&,e%,o$,h&,t$
      29. w&=Create("Dialog",%hWnd,"Ordner verwalten",600,300,416,400)
      30. l&=Create("Listbox",w&,1,8,8,284,352)
      31. a&=Create("Button",w&,"Hinzufügen",300,8,96,24)
      32. d&=Create("Button",w&,"Löschen",300,40,96,24)
      33. o&=Create("Button",w&,"Speichern",300,304,96,24)
      34. e&=Create("Button",w&,"Abbrechen",300,336,96,24)
      35. loadordner l&
      36. whilenot e%
      37. EnableWindow d&,GetCurSel(l&)<>-1
      38. waitinput
      39. if Clicked(a&)
      40. o$=ChooseDir$("Verzeichnis wählen:")
      41. case o$<>"":AddString(l&,o$)
      42. elseif Clicked(d&)
      43. DeleteString(l&,GetCurSel(l&))
      44. elseif Clicked(o&)
      45. h&=Assign($ProgDir+"Ordner.txt")
      46. Rewrite #h&
      47. whileloop 0,GetCount(l&)-1
      48. t$=GetString$(l&,&Loop)
      49. case t$<>"":Print #h&,t$
      50. endwhile
      51. Close #h&
      52. Assign #h&,""
      53. Inc e%
      54. elseif Clicked(e&)
      55. Inc e%
      56. endif
      57. endwhile
      58. loadordner ordnr&
      59. DestroyWindow(w&)
      60. endproc
      61. proc ConvertBytes$
      62. Parameters d!
      63. declare r$
      64. log%=0
      65. while d!>1024
      66. d!=d!/1024
      67. Inc log%
      68. endwhile
      69. r$=Str$(d!)
      70. r$=Left$(r$,InStr(".",r$)+2)
      71. Return r$
      72. endproc
      73. proc getinfo
      74. Parameters p$,info$,section$,cut$
      75. if section$<>""
      76. p$=Del$(p$,1,Instr(section$+"\n",p$))
      77. endif
      78. p$=Del$(p$,1,InStr(info$,p$))
      79. p$=Del$(p$,1,InStr(":",p$)+1)
      80. p$=Left$(p$,InStr("\n",p$))
      81. p$=Trim$(p$)
      82. case cut$<>"":p$=Translate$(p$,cut$,"")
      83. Return p$
      84. endproc
      85. Proc Search
      86. declare s$,fold&,d$,p$,f$,t$,tick&
      87. Clearlist liste&
      88. Clearlist l2&
      89. Clearlist tl&
      90. whileloop 0,GetCount(ordnr&)-1
      91. fold&=&Loop
      92. d$=GetString$(ordnr&,fold&)
      93. if DirExists(d$)
      94. s$=FindFirst$(d$+"*.*")
      95. whilenot %IOResult
      96. if FileExists(d$+s$)
      97. AddString(tl&,s$+"|"+d$)
      98. endif
      99. s$=FindNext$()
      100. endwhile
      101. endif
      102. endwhile
      103. tick&=&GetTickCount
      104. whileloop 0,GetCount(tl&)-1
      105. s$=GetText$(tl&,&Loop,0)
      106. d$=GetText$(tl&,&Loop,1)
      107. f$=d$+s$
      108. MI_MediaInfoA_Open(handle&,f$)
      109. p$=String$(MI_MediaInfoA_Inform(handle&,0),0)
      110. t$=s$+"|"+d$+"|"+ConvertBytes$(FileSize(f$))+" "+Mid$("kMG",log%,1)+"B"+"|"+GetInfo(p$,"Duration")+"|"+GetInfo(p$,"Format","Video")+"|"+Translate$(GetInfo(p$,+"Width","Video","pixels")+"*"+GetInfo(p$,"Height","Video","pixels")," ","")+"|"+GetInfo(p$,"Bit rate ","Video"," ")+"|"+GetInfo(p$,"Format","Audio")+"|"+GetInfo(p$,"Bit rate ","Audio"," ")+"|"+SubStr$(GetInfo(p$,"Channel(s)","Audio"),1," ")
      111. AddString(liste&,t$)
      112. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(t$,spl%,"|"))):AddString(l2&,t$)
      113. MI_MediaInfoA_Close(handle&)
      114. SetText st&,"Einlesen: Datei "+Str$(Int(&Loop+1))+"/"+Str$(GetCount(tl&))+" ("+Format$("##0.00",100*&Loop/GetCount(tl&))+"%, Restzeit: "+Str$(Int((&GetTickCount-tick&)/(&Loop+1)*(GetCount(tl&)-&Loop-1)/1000))+" Sekunden)"
      115. endwhile
      116. endproc
      117. proc load
      118. Parameters f$
      119. declare l&,t$
      120. l&=Assign(f$)
      121. Reset #l&
      122. Whilenot EOF(#l&)
      123. Input #l&,t$
      124. AddFilStr(t$)
      125. endwhile
      126. Close #l&
      127. Assign #l&,""
      128. endproc
      129. proc save
      130. Parameters f$
      131. declare l&,t$
      132. l&=Assign(f$)
      133. Rewrite #l&
      134. Whileloop 0,GetCount(liste&)-1
      135. Print #l&,GetString$(liste&,&Loop)
      136. endwhile
      137. Close #l&
      138. Assign #l&,""
      139. endproc
      140. proc enable
      141. Parameters d%,p$
      142. EnableWindow neu&,(GetCount(ordnr&)<>0) AND d%
      143. EnableWindow fldr&,d%
      144. EnableWindow load&,FileExists($ProgDir+"Filmliste.txt") AND d%
      145. EnableWindow save&,d% AND GetCount(l2&)<>0
      146. EnableWindow suche&,d%
      147. EnableWindow ende&,d%
      148. EnableWindow liste&,d%
      149. EnableWindow del&,d% AND (GetText$(suche&)<>"")
      150. EnableWindow cb&,d%
      151. case p$<>"":SetText st&,p$
      152. endproc
      153. proc einlesen
      154. declare p$
      155. enable 0,"Filter anwenden..."
      156. Clearlist l2&
      157. whileloop 0,GetCount(liste&)-1
      158. p$=GetString$(liste&,&Loop)
      159. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(p$,spl%,"|"))):AddString(l2&,p$)
      160. endwhile
      161. endproc
      162. WindowStyle 282
      163. WindowTitle "Mediathek "+$Ver
      164. window 200,100-1492,804
      165. cls ~GetSysColor(15)
      166. neu&=Create("Button",%hWnd,"Generieren",8,8,96,24)
      167. fldr&=Create("Button",%hWnd,"Ordner",112,8,96,24)
      168. load&=Create("Button",%hWnd,"Laden",216,8,96,24)
      169. save&=Create("Button",%hWnd,"Speichern",320,8,96,24)
      170. Create("Text",%hWnd,"Filter:",424,12,44,24)
      171. suche&=Create("Edit",%hWnd,"",596,8,240,24)
      172. del&=Create("Button",%hWnd,"X",836,8,24,24)
      173. cb&=Create("ChoiceBox",%hWnd,0,468,8,128,200)
      174. AddString(cb&,"Dateiname")
      175. AddString(cb&,"Pfad")
      176. AddString(cb&,"Dateigröße")
      177. AddString(cb&,"Filmlänge")
      178. AddString(cb&,"Videocodec")
      179. AddString(cb&,"Videoauflösung")
      180. AddString(cb&,"Videobitrate")
      181. AddString(cb&,"Audiocodec")
      182. AddString(cb&,"Audiobitrate")
      183. AddString(cb&,"Anzahl Kanäle")
      184. sendmessage(cb&,$14E,0,0)
      185. spl%=1
      186. ende&=Create("Button",%hWnd,"Beenden",1380,8,96,24)
      187. st&=Create("StatusWindow",%hWnd,"Laden...")
      188. ordnr&=Create("List",1)
      189. loadordner ordnr&
      190. liste&=Create("Grid",GetCount(cb&),1)
      191. tl&=Create("Grid",2,1)
      192. l2&=Create("Gridbox",%hWnd,"Dateiname;0;500;Pfad;0;200;Größe;1;80;Länge;1;72;Codec;0;100;Auflösung;0;80;Bitrate;1;72;Audiocodec;0;100;Bitrate;1;72;Kanäle;2;56",0,8,40,1468,700)
      193. enable 0
      194. dll&=Importdll($ProgDir+"MediaInfo.dll","MI_")
      195. handle&=MI_MediaInfoA_New()
      196. Usermessages 16
      197. fn$=$ProgDir+"autoload.mil"
      198. if %PCount>1
      199. case FileExists(Par$(1)):fn$=Par$(1)
      200. endif
      201. case FileExists(fn$):load fn$
      202. whilenot ende%
      203. enable 1,"Bereit...("+Str$(GetCount(l2&))+" Ergebnisse)"
      204. case foc%:SetFocus(suche&)
      205. waitinput
      206. foc%=GetFocus(suche&)
      207. spl%=GetCurSel(cb&)+1
      208. if GetFocus(l2&) AND (%LastMessage=515)
      209. m$=GetText$(l2&,GetCurSel(l2&),1)+GetText$(l2&,GetCurSel(l2&),0)
      210. if FileExists(m$)
      211. MI_MediaInfoA_Open(handle&,m$)
      212. n$=String$(MI_MediaInfoA_Inform(handle&,0),0)
      213. Messagebox(n$,m$,0)
      214. MI_MediaInfoA_Close(handle&)
      215. else
      216. Messagebox("Zusammenfassung kann nicht angezeigt werden, da die Datei nicht verfügbar ist.","Zusammenfassung nicht möglich",16)
      217. endif
      218. elseif Clicked(ende&) OR (%UMessage=16) OR MenuItem(4000)
      219. Inc ende%
      220. elseif Clicked(del&)
      221. SetText suche&,""
      222. suche$=""
      223. einlesen
      224. Inc foc%
      225. elseif GetFocus(suche&)
      226. if suche$<>GetText$(suche&)
      227. suche$=GetText$(suche&)
      228. einlesen
      229. endif
      230. elseif Clicked(neu&)
      231. enable 0,"Einlesen..."
      232. Search
      233. elseif Clicked(save&)
      234. fn$=SaveFile$(%hWnd,"Speichern","MediaInfo-Listen|*.mil|Alle Dateien|*.*",1)
      235. if fn$<>""
      236. enable 0,"Speichern..."
      237. save fn$
      238. endif
      239. elseif Clicked(load&)
      240. fn$=LoadFile$(%hWnd,"Datei laden","MediaInfo-Listen|*.mil|Alle Dateien|*.*")
      241. if FileExists(fn$)
      242. enable 0,"Laden..."
      243. Clearlist liste&
      244. Clearlist l2&
      245. load fn$
      246. endif
      247. elseif Clicked(fldr&)
      248. ordner
      249. endif
      250. endwhile
      251. MI_MediaInfoA_Delete(handle&)
      252. FreeDLL dll&
      253. progend
      Alles anzeigen
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Deutlich einfacher wirds natürlich, wenn ich die Informationen gezielt auslesen kann und mich nicht durch die entstehende riesige "Textdatei" wühlen muss.
      Dazu gibt's die Funktion "Get". Kann mir irgendjemand helfen, wie ich die einsetzen muss? Ich hab schon einiges rausgefunden, aber es stürzt wieder mal ab. :pfeifend:
      An die Funktion werden diverse Parameter übergeben, die angeben was ausgelesen wird (siehe Header-Datei, wie in XProfan). Aber so richtig werde ich nicht schlau draus.

      Edit: Ah Mist, ich glaube ich muss noch so einen hässlichen Buffer erzeugen... X/
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Mittels MediaInfo_Count_Get(handle,parameter,-1) lässt sich die Anzahl der jeweiligen Streams ermitteln, wobei "parameter" folgendes sein kann:

      0 = Stream_General
      1 = Stream_Video
      2 = Stream_Audio
      3 = Stream_Text
      4 = Stream_Other
      5 = Stream_Image
      6 = Stream_Menu
      7 = Stream_Max


      Leider hilft mir das auch noch nicht so richtig weiter. Gut, ich kann jetzt die Anzahl der jeweiligen Streams ermitteln, aber immer noch nicht einzelne Parameter.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Also wenn sich noch jemand findet, der mir helfen kann, das wäre echt super. Ich suche immer noch eine Möglichkeit einzelen Informationen per "GET" auszulesen.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Version 1.5, hauptsächlich Fehlerbehebungen und eine rudimentäre Abfrage, ob die zu bearbeitende Datei überhaupt ein Film ist.

      Quellcode

      1. $H D:\XProfan\XProfan\INCLUDE\windows.ph
      2. Def $Ver "1.5"
      3. declare spl%,cb&,liste&,l2&,neu&,suche&,ende%,ende&,dll&,handle&,log%,save&,load&,txt&,fldr&,ordnr&,del&,suche$,st&,foc%,tl&,fn$,m$,n$,m&
      4. proc AddFilStr
      5. Parameters p$
      6. AddString(liste&,p$)
      7. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(p$,spl%,"|"))):AddString(l2&,p$)
      8. endproc
      9. proc loadordner
      10. Parameters r&
      11. declare o$,o&,p$
      12. Clearlist r&
      13. o$=$ProgDir+"ordner.txt"
      14. if FileExists(o$)
      15. if FileSize(o$)>0
      16. o&=Assign(o$)
      17. Reset #o&
      18. whilenot EOF(#o&)
      19. Input #o&,p$
      20. AddString(r&,p$)
      21. endwhile
      22. Close #o&
      23. Assign #o&,""
      24. endif
      25. endif
      26. endproc
      27. proc ordner
      28. declare w&,l&,a&,d&,o&,e&,e%,o$,h&,t$
      29. w&=Create("Dialog",%hWnd,"Ordner verwalten",600,300,416,400)
      30. l&=Create("Listbox",w&,1,8,8,284,352)
      31. a&=Create("Button",w&,"Hinzufügen",300,8,96,24)
      32. d&=Create("Button",w&,"Löschen",300,40,96,24)
      33. o&=Create("Button",w&,"Speichern",300,304,96,24)
      34. e&=Create("Button",w&,"Abbrechen",300,336,96,24)
      35. loadordner l&
      36. whilenot e%
      37. EnableWindow d&,GetCurSel(l&)<>-1
      38. waitinput
      39. if Clicked(a&)
      40. o$=ChooseDir$("Verzeichnis wählen:")
      41. case o$<>"":AddString(l&,o$)
      42. elseif Clicked(d&)
      43. DeleteString(l&,GetCurSel(l&))
      44. elseif Clicked(o&)
      45. h&=Assign($ProgDir+"Ordner.txt")
      46. Rewrite #h&
      47. whileloop 0,GetCount(l&)-1
      48. t$=GetString$(l&,&Loop)
      49. case t$<>"":Print #h&,t$
      50. endwhile
      51. Close #h&
      52. Assign #h&,""
      53. Inc e%
      54. elseif Clicked(e&)
      55. Inc e%
      56. endif
      57. endwhile
      58. loadordner ordnr&
      59. DestroyWindow(w&)
      60. endproc
      61. proc ConvertBytes$
      62. Parameters d!
      63. declare r$
      64. log%=0
      65. while d!>1024
      66. d!=d!/1024
      67. Inc log%
      68. endwhile
      69. r$=Str$(d!)
      70. r$=Left$(r$,InStr(".",r$)+2)
      71. Return r$
      72. endproc
      73. proc getinfo
      74. Parameters p$,info$,section$,cut$
      75. if section$<>""
      76. casenot InStr("\n"+section$+"\n",p$):section$=section$+" #1"
      77. p$=Del$(p$,1,Instr("\n"+section$+"\n",p$))
      78. endif
      79. p$=Del$(p$,1,InStr(info$,p$))
      80. p$=Del$(p$,1,InStr(":",p$)+1)
      81. p$=Trim$(Left$(p$,InStr("\n",p$)))
      82. case cut$<>"":p$=Translate$(p$,cut$,"")
      83. Return p$
      84. endproc
      85. Proc Search
      86. declare s$,fold&,d$,p$,f$,t$,tick&,vb$,ab$
      87. Clearlist liste&
      88. Clearlist l2&
      89. Clearlist tl&
      90. whileloop 0,GetCount(ordnr&)-1
      91. fold&=&Loop
      92. d$=GetString$(ordnr&,fold&)
      93. if DirExists(d$)
      94. s$=FindFirst$(d$+"*.*")
      95. whilenot %IOResult
      96. if FileExists(d$+s$)
      97. AddString(tl&,s$+"|"+d$)
      98. endif
      99. s$=FindNext$()
      100. endwhile
      101. endif
      102. endwhile
      103. tick&=&GetTickCount
      104. whileloop 0,GetCount(tl&)-1
      105. s$=GetText$(tl&,&Loop,0)
      106. d$=GetText$(tl&,&Loop,1)
      107. f$=d$+s$
      108. MI_MediaInfoA_Open(handle&,f$)
      109. p$=String$(MI_MediaInfoA_Inform(handle&,0),0)
      110. ifnot vc%
      111. t$=s$+"|"+d$+"|"+ConvertBytes$(FileSize(f$))+" "+Mid$("kMG",log%,1)+"B"+"|N/A|N/A|N/A|N/A|N/A|N/A|N/A"
      112. else
      113. vb$=GetInfo(p$,"it rate ","Video"," ",vc%)
      114. casenot InStr("/s",vb$):vb$="N/A"
      115. ab$=GetInfo(p$,"Bit rate ","Audio"," ",ac%)
      116. casenot InStr("/s",ab$):ab$="N/A"
      117. t$=s$+"|"+d$+"|"+ConvertBytes$(FileSize(f$))+" "+Mid$("kMG",log%,1)+"B"+"|"+GetInfo(p$,"Duration")+"|"+GetInfo(p$,"Format","Video","")+"|"+Translate$(GetInfo(p$,+"Width","Video","pixels")+"*"+GetInfo(p$,"Height","Video","pixels")," ","")+"|"+vb$+"|"+GetInfo(p$,"Format","Audio","")+"|"+ab$+"|"+SubStr$(GetInfo(p$,"Channel(s)","Audio",""),1," ")
      118. endif
      119. AddString(liste&,t$)
      120. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(t$,spl%,"|"))):AddString(l2&,t$)
      121. MI_MediaInfoA_Close(handle&)
      122. SetText st&,"Einlesen: Datei "+Str$(Int(&Loop+1))+"/"+Str$(GetCount(tl&))+" ("+Format$("##0.00",100*&Loop/GetCount(tl&))+"%, Restzeit: "+Str$(Int((&GetTickCount-tick&)/(&Loop+1)*(GetCount(tl&)-&Loop-1)/1000))+" Sekunden)"
      123. endwhile
      124. endproc
      125. proc load
      126. Parameters f$
      127. declare l&,t$
      128. l&=Assign(f$)
      129. Reset #l&
      130. Whilenot EOF(#l&)
      131. Input #l&,t$
      132. AddFilStr(t$)
      133. endwhile
      134. Close #l&
      135. Assign #l&,""
      136. endproc
      137. proc save
      138. Parameters f$
      139. declare l&,t$
      140. l&=Assign(f$)
      141. Rewrite #l&
      142. Whileloop 0,GetCount(liste&)-1
      143. Print #l&,GetString$(liste&,&Loop)
      144. endwhile
      145. Close #l&
      146. Assign #l&,""
      147. endproc
      148. proc enable
      149. Parameters d%,p$
      150. EnableWindow neu&,(GetCount(ordnr&)<>0) AND d%
      151. EnableWindow fldr&,d%
      152. EnableWindow load&,FileExists($ProgDir+"Filmliste.txt") AND d%
      153. EnableWindow save&,d% AND GetCount(l2&)<>0
      154. EnableWindow suche&,d%
      155. EnableWindow ende&,d%
      156. EnableWindow liste&,d%
      157. EnableWindow del&,d% AND (GetText$(suche&)<>"")
      158. EnableWindow cb&,d%
      159. case p$<>"":SetText st&,p$
      160. endproc
      161. proc einlesen
      162. declare p$
      163. enable 0,"Filter anwenden..."
      164. Clearlist l2&
      165. whileloop 0,GetCount(liste&)-1
      166. p$=GetString$(liste&,&Loop)
      167. case (suche$="") OR InStr(suche$,Lower$(SubStr$(p$,spl%,"|"))):AddString(l2&,p$)
      168. endwhile
      169. endproc
      170. subclassproc
      171. if Subclassmessage(l2&,515)
      172. m$=GetText$(l2&,GetCurSel(l2&),1)+GetText$(l2&,GetCurSel(l2&),0)
      173. if FileExists(m$)
      174. MI_MediaInfoA_Open(handle&,m$)
      175. n$=String$(MI_MediaInfoA_Inform(handle&,0),0)
      176. Messagebox(n$,m$,0)
      177. MI_MediaInfoA_Close(handle&)
      178. else
      179. Messagebox("Zusammenfassung kann nicht angezeigt werden, da die Datei nicht verfügbar ist.","Zusammenfassung nicht möglich",16)
      180. endif
      181. Set("WinProc",0)
      182. endif
      183. endproc
      184. WindowStyle 282
      185. WindowTitle "Mediathek "+$Ver
      186. window 200,100-1492,804
      187. cls ~GetSysColor(15)
      188. neu&=Create("Button",%hWnd,"Generieren",8,8,96,24)
      189. fldr&=Create("Button",%hWnd,"Ordner",112,8,96,24)
      190. load&=Create("Button",%hWnd,"Laden",216,8,96,24)
      191. save&=Create("Button",%hWnd,"Speichern",320,8,96,24)
      192. Create("Text",%hWnd,"Filter:",424,12,44,24)
      193. suche&=Create("Edit",%hWnd,"",596,8,240,24)
      194. del&=Create("Button",%hWnd,"X",836,8,24,24)
      195. cb&=Create("ChoiceBox",%hWnd,0,468,8,128,200)
      196. AddString(cb&,"Dateiname")
      197. AddString(cb&,"Pfad")
      198. AddString(cb&,"Dateigröße")
      199. AddString(cb&,"Filmlänge")
      200. AddString(cb&,"Videocodec")
      201. AddString(cb&,"Videoauflösung")
      202. AddString(cb&,"Videobitrate")
      203. AddString(cb&,"Audiocodec")
      204. AddString(cb&,"Audiobitrate")
      205. AddString(cb&,"Anzahl Kanäle")
      206. sendmessage(cb&,$14E,0,0)
      207. spl%=1
      208. ende&=Create("Button",%hWnd,"Beenden",1380,8,96,24)
      209. st&=Create("StatusWindow",%hWnd,"Laden...")
      210. ordnr&=Create("List",1)
      211. loadordner ordnr&
      212. liste&=Create("Grid",GetCount(cb&),1)
      213. tl&=Create("Grid",2,1)
      214. l2&=Create("Gridbox",%hWnd,"Dateiname;0;500;Pfad;0;200;Größe;1;80;Länge;1;72;Codec;0;100;Auflösung;0;80;Bitrate;1;72;Audiocodec;0;100;Bitrate;1;72;Kanäle;2;56",0,8,40,1468,700)
      215. enable 0
      216. UserMessages 16
      217. dll&=Importdll($ProgDir+"MediaInfo.dll","MI_")
      218. handle&=MI_MediaInfoA_New()
      219. fn$=$ProgDir+"autoload.mil"
      220. if %PCount>1
      221. case FileExists(Par$(1)):fn$=Par$(1)
      222. endif
      223. case FileExists(fn$):load fn$
      224. SubClass l2&,1
      225. whilenot ende%
      226. enable 1,"Bereit...("+Str$(GetCount(l2&))+" Ergebnisse)"
      227. case foc%:SetFocus(suche&)
      228. waitinput
      229. foc%=GetFocus(suche&)
      230. spl%=GetCurSel(cb&)+1
      231. if Clicked(ende&) OR (%UMessage=16) OR MenuItem(4000)
      232. Inc ende%
      233. elseif Clicked(del&)
      234. SetText suche&,""
      235. suche$=""
      236. einlesen
      237. Inc foc%
      238. sendmessage(suche&,$B9,0,0)
      239. elseif sendmessage(suche&,$B8,0,0)
      240. suche$=Lower$(GetText$(suche&))
      241. einlesen
      242. sendmessage(suche&,$B9,0,0)
      243. elseif Clicked(neu&)
      244. enable 0,"Einlesen..."
      245. Search
      246. elseif Clicked(save&)
      247. fn$=SaveFile$(%hWnd,"Speichern","MediaInfo-Listen|*.mil|Alle Dateien|*.*",1)
      248. if fn$<>""
      249. enable 0,"Speichern..."
      250. save fn$
      251. endif
      252. elseif Clicked(load&)
      253. fn$=LoadFile$(%hWnd,"Datei laden","MediaInfo-Listen|*.mil|Alle Dateien|*.*")
      254. if FileExists(fn$)
      255. enable 0,"Laden..."
      256. Clearlist liste&
      257. Clearlist l2&
      258. load fn$
      259. endif
      260. elseif Clicked(fldr&)
      261. ordner
      262. endif
      263. endwhile
      264. SubClass l2&,0
      265. SubClass %hWnd,0
      266. MI_MediaInfoA_Delete(handle&)
      267. FreeDLL dll&
      268. progend
      Alles anzeigen
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Da ich hier keine Beiträge bearbeiten kann: Kleines Update, es hatten sich einige Relikte eingeschlichen.

      Quellcode

      1. $H D:\XProfan\XProfan\INCLUDE\windows.ph
      2. Def $Ver "1.5.1"
      3. declare spl%,cb&,liste&,l2&,neu&,suche&,ende%,ende&,dll&,handle&,log%,save&,load&,txt&,fldr&,ordnr&,del&,suche$,st&,foc%,tl&,fn$,m$,n$,m&,hilf%
      4. proc AddFilStr
      5. Parameters p$
      6. AddString(liste&,p$)
      7. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(p$,spl%,"|"))):AddString(l2&,p$)
      8. endproc
      9. proc loadordner
      10. Parameters r&
      11. declare o$,o&,p$
      12. Clearlist r&
      13. o$=$ProgDir+"ordner.txt"
      14. if FileExists(o$)
      15. if FileSize(o$)>0
      16. o&=Assign(o$)
      17. Reset #o&
      18. whilenot EOF(#o&)
      19. Input #o&,p$
      20. AddString(r&,p$)
      21. endwhile
      22. Close #o&
      23. Assign #o&,""
      24. endif
      25. endif
      26. endproc
      27. proc ordner
      28. declare w&,l&,a&,d&,o&,e&,e%,o$,h&,t$
      29. w&=Create("Dialog",%hWnd,"Ordner verwalten",600,300,416,400)
      30. l&=Create("Listbox",w&,1,8,8,284,352)
      31. a&=Create("Button",w&,"Hinzufügen",300,8,96,24)
      32. d&=Create("Button",w&,"Löschen",300,40,96,24)
      33. o&=Create("Button",w&,"Speichern",300,304,96,24)
      34. e&=Create("Button",w&,"Abbrechen",300,336,96,24)
      35. loadordner l&
      36. whilenot e%
      37. EnableWindow d&,GetCurSel(l&)<>-1
      38. waitinput
      39. if Clicked(a&)
      40. o$=ChooseDir$("Verzeichnis wählen:")
      41. case o$<>"":AddString(l&,o$)
      42. elseif Clicked(d&)
      43. DeleteString(l&,GetCurSel(l&))
      44. elseif Clicked(o&)
      45. h&=Assign($ProgDir+"Ordner.txt")
      46. Rewrite #h&
      47. whileloop 0,GetCount(l&)-1
      48. t$=GetString$(l&,&Loop)
      49. case t$<>"":Print #h&,t$
      50. endwhile
      51. Close #h&
      52. Assign #h&,""
      53. Inc e%
      54. elseif Clicked(e&)
      55. Inc e%
      56. endif
      57. endwhile
      58. loadordner ordnr&
      59. DestroyWindow(w&)
      60. endproc
      61. proc ConvertBytes$
      62. Parameters d!
      63. declare r$
      64. log%=0
      65. while d!>1024
      66. d!=d!/1024
      67. Inc log%
      68. endwhile
      69. r$=Str$(d!)
      70. r$=Left$(r$,InStr(".",r$)+2)
      71. Return r$
      72. endproc
      73. proc getinfo
      74. Parameters p$,info$,section$,cut$
      75. if section$<>""
      76. casenot InStr("\n"+section$+"\n",p$):section$=section$+" #1"
      77. casenot InStr("\n"+section$+"\n",p$):Return "N/A"
      78. p$=Del$(p$,1,Instr("\n"+section$+"\n",p$))
      79. endif
      80. p$=Del$(p$,1,InStr(info$,p$))
      81. p$=Del$(p$,1,InStr(":",p$)+1)
      82. p$=Trim$(Left$(p$,InStr("\n",p$)))
      83. case cut$<>"":p$=Translate$(p$,cut$,"")
      84. Return p$
      85. endproc
      86. Proc Search
      87. declare s$,fold&,d$,p$,f$,t$,tick&,vb$,ab$
      88. Clearlist liste&
      89. Clearlist l2&
      90. Clearlist tl&
      91. whileloop 0,GetCount(ordnr&)-1
      92. fold&=&Loop
      93. d$=GetString$(ordnr&,fold&)
      94. if DirExists(d$)
      95. s$=FindFirst$(d$+"*.*")
      96. whilenot %IOResult
      97. if FileExists(d$+s$)
      98. AddString(tl&,s$+"|"+d$)
      99. endif
      100. s$=FindNext$()
      101. endwhile
      102. endif
      103. endwhile
      104. tick&=&GetTickCount
      105. whileloop 0,GetCount(tl&)-1
      106. s$=GetText$(tl&,&Loop,0)
      107. d$=GetText$(tl&,&Loop,1)
      108. f$=d$+s$
      109. MI_MediaInfoA_Open(handle&,f$)
      110. p$=String$(MI_MediaInfoA_Inform(handle&,0),0)
      111. ifnot InStr("\nVideo\n",p$)
      112. t$=s$+"|"+d$+"|"+ConvertBytes$(FileSize(f$))+" "+Mid$("kMG",log%,1)+"B"+"|N/A|N/A|N/A|N/A|N/A|N/A|N/A"
      113. else
      114. vb$=GetInfo(p$,"it rate ","Video"," ")
      115. casenot InStr("/s",vb$):vb$="N/A"
      116. ab$=GetInfo(p$,"Bit rate ","Audio"," ")
      117. casenot InStr("/s",ab$):ab$="N/A"
      118. t$=s$+"|"+d$+"|"+ConvertBytes$(FileSize(f$))+" "+Mid$("kMG",log%,1)+"B"+"|"+GetInfo(p$,"Duration")+"|"+GetInfo(p$,"Format","Video","")+"|"+Translate$(GetInfo(p$,+"Width","Video","pixels")+"*"+GetInfo(p$,"Height","Video","pixels")," ","")+"|"+vb$+"|"+GetInfo(p$,"Format","Audio","")+"|"+ab$+"|"+SubStr$(GetInfo(p$,"Channel(s)","Audio",""),1," ")
      119. endif
      120. AddString(liste&,t$)
      121. case (suche$="") OR InStr(Lower$(suche$),Lower$(SubStr$(t$,spl%,"|"))):AddString(l2&,t$)
      122. MI_MediaInfoA_Close(handle&)
      123. SetText st&,"Einlesen: Datei "+Str$(Int(&Loop+1))+"/"+Str$(GetCount(tl&))+" ("+Format$("##0.00",100*&Loop/GetCount(tl&))+"%, Restzeit: "+Str$(Int((&GetTickCount-tick&)/(&Loop+1)*(GetCount(tl&)-&Loop-1)/1000))+" Sekunden)"
      124. endwhile
      125. endproc
      126. proc load
      127. Parameters f$
      128. declare l&,t$
      129. l&=Assign(f$)
      130. Reset #l&
      131. Whilenot EOF(#l&)
      132. Input #l&,t$
      133. AddFilStr(t$)
      134. endwhile
      135. Close #l&
      136. Assign #l&,""
      137. endproc
      138. proc save
      139. Parameters f$
      140. declare l&,t$
      141. l&=Assign(f$)
      142. Rewrite #l&
      143. Whileloop 0,GetCount(liste&)-1
      144. Print #l&,GetString$(liste&,&Loop)
      145. endwhile
      146. Close #l&
      147. Assign #l&,""
      148. endproc
      149. proc enable
      150. Parameters d%,p$
      151. EnableWindow neu&,(GetCount(ordnr&)<>0) AND d%
      152. EnableWindow fldr&,d%
      153. EnableWindow load&,FileExists($ProgDir+"Filmliste.txt") AND d%
      154. EnableWindow save&,d% AND GetCount(l2&)<>0
      155. EnableWindow suche&,d%
      156. EnableWindow ende&,d%
      157. EnableWindow liste&,d%
      158. EnableWindow del&,d% AND (GetText$(suche&)<>"")
      159. EnableWindow cb&,d%
      160. case p$<>"":SetText st&,p$
      161. endproc
      162. proc einlesen
      163. declare p$
      164. enable 0,"Filter anwenden..."
      165. Clearlist l2&
      166. whileloop 0,GetCount(liste&)-1
      167. p$=GetString$(liste&,&Loop)
      168. case (suche$="") OR InStr(suche$,Lower$(SubStr$(p$,spl%,"|"))):AddString(l2&,p$)
      169. endwhile
      170. endproc
      171. subclassproc
      172. if Subclassmessage(l2&,515)
      173. m$=GetText$(l2&,GetCurSel(l2&),1)+GetText$(l2&,GetCurSel(l2&),0)
      174. if FileExists(m$)
      175. MI_MediaInfoA_Open(handle&,m$)
      176. n$=String$(MI_MediaInfoA_Inform(handle&,0),0)
      177. MI_MediaInfoA_Close(handle&)
      178. Messagebox(n$,m$,0)
      179. else
      180. Messagebox("Zusammenfassung kann nicht angezeigt werden, da die Datei nicht verfügbar ist.","Zusammenfassung nicht möglich",16)
      181. endif
      182. Set("WinProc",0)
      183. endif
      184. endproc
      185. WindowStyle 282
      186. WindowTitle "Mediathek "+$Ver
      187. window 200,100-1492,804
      188. cls ~GetSysColor(15)
      189. neu&=Create("Button",%hWnd,"Generieren",8,8,96,24)
      190. fldr&=Create("Button",%hWnd,"Ordner",112,8,96,24)
      191. load&=Create("Button",%hWnd,"Laden",216,8,96,24)
      192. save&=Create("Button",%hWnd,"Speichern",320,8,96,24)
      193. Create("Text",%hWnd,"Filter:",424,12,44,24)
      194. suche&=Create("Edit",%hWnd,"",596,8,240,24)
      195. del&=Create("Button",%hWnd,"X",836,8,24,24)
      196. cb&=Create("ChoiceBox",%hWnd,0,468,8,128,200)
      197. AddString(cb&,"Dateiname")
      198. AddString(cb&,"Pfad")
      199. AddString(cb&,"Dateigröße")
      200. AddString(cb&,"Filmlänge")
      201. AddString(cb&,"Videocodec")
      202. AddString(cb&,"Videoauflösung")
      203. AddString(cb&,"Videobitrate")
      204. AddString(cb&,"Audiocodec")
      205. AddString(cb&,"Audiobitrate")
      206. AddString(cb&,"Anzahl Kanäle")
      207. sendmessage(cb&,$14E,0,0)
      208. spl%=1
      209. ende&=Create("Button",%hWnd,"Beenden",1380,8,96,24)
      210. st&=Create("StatusWindow",%hWnd,"Laden...")
      211. ordnr&=Create("List",1)
      212. loadordner ordnr&
      213. liste&=Create("Grid",GetCount(cb&),1)
      214. tl&=Create("Grid",2,1)
      215. l2&=Create("Gridbox",%hWnd,"Dateiname;0;500;Pfad;0;200;Größe;1;80;Länge;1;72;Codec;0;100;Auflösung;0;80;Bitrate;1;72;Audiocodec;0;100;Bitrate;1;72;Kanäle;2;56",0,8,40,1468,700)
      216. enable 0
      217. UserMessages 16
      218. dll&=Importdll($ProgDir+"MediaInfo.dll","MI_")
      219. handle&=MI_MediaInfoA_New()
      220. fn$=$ProgDir+"autoload.mil"
      221. if %PCount>1
      222. case FileExists(Par$(1)):fn$=Par$(1)
      223. endif
      224. case FileExists(fn$):load fn$
      225. SubClass l2&,1
      226. whilenot ende%
      227. enable 1,"Bereit...("+Str$(GetCount(l2&))+" Ergebnisse)"
      228. case foc%:SetFocus(suche&)
      229. Clear hilf%
      230. waitinput
      231. foc%=GetFocus(suche&)
      232. spl%=GetCurSel(cb&)+1
      233. if Clicked(ende&) OR (%UMessage=16) OR MenuItem(4000)
      234. Inc ende%
      235. elseif Clicked(del&)
      236. SetText suche&,""
      237. suche$=""
      238. einlesen
      239. Inc foc%
      240. sendmessage(suche&,$B9,0,0)
      241. elseif sendmessage(suche&,$B8,0,0)
      242. suche$=Lower$(GetText$(suche&))
      243. einlesen
      244. sendmessage(suche&,$B9,0,0)
      245. elseif Clicked(neu&)
      246. enable 0,"Einlesen..."
      247. Search
      248. elseif Clicked(save&)
      249. fn$=SaveFile$(%hWnd,"Speichern","MediaInfo-Listen|*.mil|Alle Dateien|*.*",1)
      250. if fn$<>""
      251. enable 0,"Speichern..."
      252. save fn$
      253. endif
      254. elseif Clicked(load&)
      255. fn$=LoadFile$(%hWnd,"Datei laden","MediaInfo-Listen|*.mil|Alle Dateien|*.*")
      256. if FileExists(fn$)
      257. enable 0,"Laden..."
      258. Clearlist liste&
      259. Clearlist l2&
      260. load fn$
      261. endif
      262. elseif Clicked(fldr&)
      263. ordner
      264. endif
      265. endwhile
      266. SubClass l2&,0
      267. SubClass %hWnd,0
      268. MI_MediaInfoA_Delete(handle&)
      269. FreeDLL dll&
      270. progend
      Alles anzeigen
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Version 1.7 (Rechtsklick-Menü, Fenster größenveränderbar, wennd as Fenster minimiert wird kann es wieder vergößert werden).

      Leider ist der Quelltext zu groß um ihn hier hochzuladen. Kann ich irgendwie Zips anhängen oder so?
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Volkmar schrieb:

      Dateianhänge funktionieren hier nicht. Du kannst die Datei bei Workupload hochladen und den Link hier posten.

      Gruß Volkmar
      Oh ok. Womit verdienen die ihr Geld? :8O: Kostenloser Service ohne Anmeldung macht mich immer skeptisch.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 7 8GB/256GB
      jacdelad.bplaced.net
    • Und die Mehrheit will sich nirgendwo anmelden ;-) Du kannst ja auch einen anderen Dienst verwenden, wo Du hier einen Link posten kannst. Oder wenn der Quelltext nicht zu lang ist, auch auf 2 Beiträge aufteilen. Das war jetzt nur der Standardvorschlag, der auch immer im Virenbereich für Logs gegeben wird, wenn die zu lang sind.

      Gruß Volkmar