【问题标题】:How to detect the usage rights (DRM) of a file如何检测文件的使用权限 (DRM)
【发布时间】:2010-01-09 18:16:11
【问题描述】:

假设你有一个 .wma / .wmv 文件并且你想检测:

  1. 是否受 DRM 保护?
  2. (希望如此)DRM 保护的详细信息(例如许可证何时到期等)?

有 C# / C++ api 吗?似乎 Windows Media Player 可以做到这一点 - 如果您单击该文件的属性...但资源管理器不显示此信息。

注意:我不相信这是一个微不足道的问题,我已经尝试了 taglib 并在网上搜索了大约 2 个小时的解决方案。

【问题讨论】:

    标签: .net encryption encoding drm wma


    【解决方案1】:

    使用 Powershell 检测文件夹下 DRM 文件的一种方法是:-

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

    【讨论】:

    • 这个答案原来正是我所需要的。我对其进行了一些测试以确保它可以通过管道传输到rm,然后这样做以删除我的音乐文件夹中的所有 DRM-cruft:ls -recurse | ? { $_.Name -like "*.wma" -and [bool]::Parse($wmplayer.newMedia($_.FullName).getItemInfo("Is_Protected")) } | rm
    • 哇,这是一个非常有用的响应。它对我所有仍然具有 DRM 的 wma 文件都很有效。
    【解决方案2】:

    来自Here。有关格式 SDK 的更多信息here

    在 c# 中使用格式 SDK:

    [DllImport("WMVCore.dll", CharSet=CharSet.Unicode)]
    
    private static extern int WMIsContentProtected(string pwszFileName, out bool 
    pfIsProtected);
    

    【讨论】:

    • 这只适用于 XP :( 好吧,我确实设法让它在 Win 7 上工作,但在 Win 2003.l 上确实失败了。l
    猜你喜欢
    • 2012-06-20
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 2020-03-08
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多