2015-07-21 78 views
0

我知道如何防止用戶在WP8.1上執行屏幕捕獲現在我想允許屏幕捕獲並跟蹤誰在做這件事。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

Windows Phone 8.x具有查詢API的非常基本的實現,並且不支持更改通知。沒有辦法知道捕獲已經發生。即使查詢API工作,也可能不是一個好的解決方案,因爲還有其他原因可能會導致圖片在那裏顯示(例如,從OneDrive同步),從​​而觸發您的事件處理程序。

+0

謝謝@Peter。怎麼樣與Windows 10相同的問題任何方式來檢測屏幕捕獲已發生? –

+0

Storage API支持更好,但不是很有用。沒有新的API可以提供我在10年以前知道的通知。 –