我知道如何防止用户在WP8.1上执行屏幕捕获现在我想允许屏幕捕获并跟踪谁这样做。
这是我到目前为止所尝试过的。
public async Task StartScreenshotDetection()
{
try
{
var picturesLibrary = Windows.Storage.KnownFolders.PicturesLibrary;
string picsPath = picturesLibrary.Path;
StorageFolder screenshotsLibrary = await picturesLibrary.GetFolderAsync("Screenshots");
String[] types = { ".png" };
var options = new Windows.Storage.Search.QueryOptions(Windows.Storage.Search.CommonFileQuery.DefaultQuery, types);
if (screenshotsLibrary.AreQueryOptionsSupported(options))
{
var query = screenshotsLibrary.CreateFileQueryWithOptions(options);
query.ContentsChanged += QueryContentsChanged; //subscription
var throwawayResult = await query.GetFilesAsync(); // needed to get events to fire
int a = 1;
}
}
catch (Exception ex)
{
int b = 1;
}
}
void QueryContentsChanged(Windows.Storage.Search.IStorageQueryResultBase sender, object args)
{
var a = 1;
// handle changes
}
我遇到的问题是创建一个新的QueryOptions会抛出未实现的异常。文档似乎暗示支持WP8.1。
还有另一种检测屏幕截图的方法吗?感谢您的帮助。
答案 0 :(得分:0)
Windows Phone 8.x具有查询API的非常基本的实现,并且不支持更改通知。无法知道捕获已经发生。即使查询API有效,它也可能不是一个好的解决方案,因为还有其他原因导致图片显示在那里(例如,从OneDrive同步)会触发您的事件处理程序。