2011-10-12 72 views
3

在此先感謝您的幫助。我主要是一個Web開發人員,但他的任務是創建一個簡單的Winforms應用程序。除了一部分外,我的應用程序已完成。此應用程序將在啓動時運行,並提示用戶輸入他們使用機器的原因。是否有一種簡單的方法可以在繼續之前強制用戶填寫此表格。基本上我想禁用所有東西(開始菜單等),直到這個表單被填寫並關閉。Winform - 啓動時強制用戶填寫表格

我可以殺死explorer.exe然後重新啓動?這對我來說似乎具有侵入性。

+1

你不能(很容易)阻止任務管理器 – SLaks

+1

你是說*有*方式嗎? –

+1

@ m.edmondson我在過去曾經有過幾種病毒,可以完全禁用任務管理器。當然非常煩人,而且非常有用戶的敵意,但是可能的。怎麼樣?不知道:) – Alex

回答

1

編寫一個自定義GINA添加一個額外的文本框到登錄屏幕可能嗎?可能不適合膽小的人!

+0

我需要找到一個自定義的GINA。任何定製的GINA。很難押韻像GINA這樣的詞。卡爾文克萊恩還挺?北卡羅來納... – Kawa

1

這是不可能的,因爲一個精明的用戶可以只打Alt鍵 + 按Ctrl +德爾殺應用程序。您無法阻止或捕獲此事件,因爲它是從安全角度設計Windows的方式。

+0

你可以理論上觀察「ctrl-alt-del」並扔掉結果。如果您還無法關閉應用程序或取消其焦點(定時器內的循環),則表單無法關閉。當然與此有關的事件在它周圍。 –

0

你可以做一個棘手的事情是這樣的:

  • 設置窗體的FormBorderProperty爲無,Opacity至1%,並WindowState爲最大化
  • 在這個形式的Load事件以生成新表格控制並顯示爲對話框。

不確定它是否適用於Windows-7,但在XP中運行良好。這不是合適的解決方案,儘管它造成了錯覺。用戶仍然可以通過按CTL + 標籤Alt鍵 + Ctrl鍵 + 德爾跳過此並終止進程。

1

而不是在登錄時運行Explorer.exe,您可以運行您自己的應用程序。本地計算機策略中的一個簡單設置用於更改此設置。

用戶完成應用程序後,可以啓動explorer.exe或將設置更改回默認設置。

Here's a small tutorial how to do this.

BTW:我沒有在任何電腦上使用它,但我所有的用戶在(終端服務)的個人資料,我將其更改爲在登錄時運行自己的應用程序。這是一個普通的.Net winforms應用程序,最初不是作爲一個shell運行的。