2010-01-09 80 views
3

假設你有一個的.wma/.wmv文件的使用權限(DRM)和要檢測:如何檢測文件

  1. 是DRM保護?
  2. (然後希望)DRM保護的細節(如許可證何時到期等)?

是否有C#/ C++ API?看來,Windows Media Player可以做到這一點 - 如果你點擊該文件的屬性...但Explorer不顯示此信息。

注意:我不相信這是一個微不足道的問題,我試過taglib並在網上搜索了大約2個小時的解決方案。

回答

3

Here。在格式SDK here

更多信息在C#中使用Format SDK:

[DllImport("WMVCore.dll", CharSet=CharSet.Unicode)] 

private static extern int WMIsContentProtected(string pwszFileName, out bool 
pfIsProtected); 
+0

這隻適用於XP :(嗯,我設法使它在Win 7上工作,但它在Win 2003上失敗了.l – 2010-01-11 14:05:12

7

對使用​​PowerShell的一個文件夾下的檢測DRM文件的方法是: -

$wmplayer = New-Object -ComObject "WMPlayer.OCX" 
ls -recurse | ? { $_.Name -like "*.wma" -and [bool]::Parse($wmplayer.newMedia($_.FullName).getItemInfo("Is_Protected")) } 
+0

這個答案結果正是我所需要的。我測試了一下讓su它可以通過管道連接到'rm',然後這樣做可以刪除我的音樂文件夾中的所有DRM-cruft:'ls -recurse | ? {$ _。Name-like「* .wma」 - and [bool] :: Parse($ wmplayer.newMedia($ _。FullName).getItemInfo(「Is_Protected」))} | rm' – sdesciencelover 2013-12-22 02:28:46

+0

哇,這是一個非常有用的迴應。它對我所有的仍然有DRM的wma文件都很有用。 – MKANET 2014-04-13 02:41:05