2010-09-18 66 views
3

我需要檢測系統中是否沒有用戶活動(例如屏幕保護程序的功能) - 全部來自Web瀏覽器。檢測是否沒有來自瀏覽器的系統活動(包括瀏覽器之外的活動)

據我所知這是不可能實現的使用純JavaScript。在瀏覽器中有一個用於檢測空閒輸入的庫,但是:jquery-idletimer-plugin

對於系統空閒事件,我在考慮ActiveX控件或SilverLight。

以前有人做過這個嗎?任何建議?

UPDATE:我認爲一個合理的解決方案是在用戶的計算機上運行一個幫助器應用程序,並向瀏覽器發送空閒事件。所以,新的問題是,如何從Windows應用程序發送消息到打開的瀏覽器(基於Webkit,打開我的Web應用程序),以便從JavaScript中獲取消息?

+0

因爲這個問題*完全*不反對用戶imprivacy和跨瀏覽器不兼容。 – 2010-09-18 05:11:03

+0

Silverlight絕對不在。 ActiveX有幾乎完全的系統訪問權限,所以它可能會訣竅 – Denis 2010-09-18 05:43:53

+0

@Delan - 可能有一些......呃,狹隘的有效場景可以使用它;例如,我正在維護一個Silverlight時間跟蹤應用程序,我很想添加一個基於瀏覽器的功能,以允許用戶「啓動」一個工作項目,並且如果用戶空閒5或10分鐘。當然,這不是真的可能(除非可能在瀏覽器模式?不知道)。 – 2010-09-18 08:02:37

回答

1

如果你真的需要這一點,(我希望它的客戶,誰問這樣的功能),你應該寫自己的瀏覽器(C#允許你剛落web瀏覽器控件的窗體上只需要一點定製),並讓你的用戶使用該瀏覽器(然後你可以使用它來檢測使用操作系統功能的空閒狀態

再次這是假設你有一個客戶端,要求這個而不是一個項目,這將是在野外,否則什麼伊沃說是完全真實的,我不希望下載一個全新的瀏覽器只是運行一個簡單的網站。

+0

這似乎是一個不錯的選擇。我會去webkit,雖然 - 我不需要一個完整的瀏覽器 - 只是一個桌面應用程序,運行我的網絡應用程序,並增加了一些額外的功能。我想知道鈦是否會是一個很好的選擇。 – Muxa 2010-09-18 23:34:57

+0

我已經用一個新的想法更新了這個問題,希望能夠使系統更安全。 – Muxa 2010-09-23 07:03:11

+0

我想你誤解了我的意思。我的意思是根本不使用標準瀏覽器,而是在其他桌面應用程序中顯示所有內容,然後您可以使用空閒檢測代碼更改瀏覽器控件的HTML(如果使用C#),就像使用JavaScript完成一樣。 – 2010-09-24 14:44:58

3

不會有這樣不斷的任何可靠的方法。丹尼斯說,你不能使用Silverlight做和ActiveX只能在Internet Explorer中,所以如果這是你的應用程序的一個重要組成部分,那麼你應該最好有一些真的很好的理由我使用它,否則爲什麼我應該啓動IE瀏覽器(並且在我的情況下是一臺裝有Windows的機器)?

地獄,即使我會使用IE,爲什麼我應該打開一個網站,監視我的瀏覽器的活動OUTSIDE?誰在告訴我你沒有在同一時間記錄我的按鍵,是吧?

有在這個星球上沒有很好的理由,從瀏覽器中做這樣的事,你基本上繞開瀏覽器的安全模型摧毀你的應用程序中所有的信任。沙箱是有很好的理由,否則網上衝浪就像下載隨機文件和執行它們一樣危險...

所以,無論你想用這個來實現,請放棄它並搜索一個更好的解決方案,答:跨瀏覽器/平臺和B:不會讓你的應用程序看起來像它可以竊取我的密碼的任何一天。

+0

你使用Linux嗎? ;) – 2010-09-18 08:04:14

+0

的確,我的確,我的上網本上只安裝了Win7 Starter,而我告訴你這真是太糟糕了......但是上網本上的Ubuntu運行良好;) – 2010-09-18 08:06:19

+0

感謝您的回覆。我的確瞭解這方面的所有安全和技術含義。我的情景是一個基於網絡的時間跟蹤工具。在瀏覽器外部進行活動跟蹤是完全可選的,當然只能在IE上使用ActiveX。所以,看起來不值得去做。 – Muxa 2010-09-18 23:30:44

0

對不起這個舊後張貼,但有一種解決此問題的方法,缺點是它需要JavaScript,但也可能使用任何其他用戶端語言。

隨着JS可以將超時設置爲一個特定的時間如640000 10分鐘。然後在每次與頁面進行交互(點擊,滾動等)時取消超時並重新設置。如果用戶停止與該頁面交互10分鐘,則可以執行警報或功能。或者用ajax關閉會話,或者只是提醒一下。

當你沒有控制你的服務端會話超時,並且有一個敏感的過程正在進行時,如系統關閉會話後提交的訂單可能會損壞你的數據。你可以在ajax中創建一個提交表單的函數來保存用戶輸入的數據,而不用在空閒前提交。對於教育網站不利,只適用於需要用戶在進程啓動時輸入的網站。

希望這給出一個想法。