2012-07-10 35 views
0

我想創建一個VB.net程序,它會在用戶向用戶顯示其密碼的桌面之前提示用戶。如果密碼正確,它將登錄。如果不正確,在嘗試幾次之後,計算器將關閉。唯一的問題是啓動程序時不顯示任何圖標或任務欄。我沒有嘗試啓動菜單中的啓動文件夾,因爲它不會首先顯示桌面?另外,我希望它加載之前,桌面加載(然後登錄後,然後繼續加載桌面),所以你不能用任務管理器關閉它,或意外地最小化窗體(與Windows鍵+ D)。創建一個計算機登錄屏幕VB.net

謝謝。

P.S.我做不是關心實際的安全性,它只是一種看看誰在登錄的方法。此外,這些人將登錄到同一個Windows帳戶......它比切換用戶更快。

(我使用Visual Studio 2010速成。)

+1

我不認爲你將有多少運氣與此有關。如果您創建登錄屏幕,您將如何確保用戶在完成登錄程序後重新運行您的登錄程序?我只是使用內置的用戶管理的東西,並升級電腦更快。您的用戶也將擁有更好,更安全的體驗! – Michael 2012-07-16 20:22:39

+0

謝謝邁克爾的評論。我將在屏幕保護程序啓動時顯示我的程序。 (我已經知道了。)我只需要一種足夠早地啓動程序以使用戶登錄的方法。我的程序要做的是基本上只是改變桌面和屏幕保護程序。我打算嘗試在開始的某個時候使用啓動文件夾... – 2012-07-17 14:18:14

+0

注意:我想避免創建不同的Windows帳戶,因爲這會減慢我的計算機(因爲我們使用了切換用戶,並佔用大量內存)。我確實有一臺OK計算機 - 2GB內存(和OK proccesser),這只是我們有很多Startup事情在運行,所以可以防止事情立即開始。 (諾頓,更新,Skype,它們都是我們必需的)。由於經濟原因,我不會升級我的電腦,因爲我不擁有創建此軟件的計算機。 – 2012-07-17 14:24:47

回答

1

您可以通過在註冊表中與你的啓動程序來替換它暫時停止開放explorer.exe

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell 

因此,您將Shell = Explorer.exe更改爲Shell = C:\path\to\Myapplication.exe

更多詳細信息可查詢on MSDN(文章實際上主要關注XP Embedded,但應該在常規安裝中以相同方式工作)。

這是做什麼的,explorer.exe加載桌面和任務欄。 Windows將啓動位於我們編輯的註冊表值中的.exe文件,並加載桌面和任務欄。通過用您的程序替換explorer.exe,它會啓動您的程序insted。

在應用程序啓動後桌面將正常加載explorer.exe。 (感謝馬特確認這一點。)Process.Start("explorer.exe")將啓動explorer.exe並加載您的桌面。

如果您沒有將您的應用程序放入Windows目錄或將其添加到Path變量中,則需要完全限定位置(請填寫上面的完整位置)。在命令行

+1

啓動explorer.exe後桌面將正常加載。 – Matt 2012-07-18 10:32:13

+1

資源管理器負責任務欄和桌面圖標;沒有它你不會看到這些。雖然我無法想象這是一個明智的想法,如果你使用的應用程序實際上是一個shell ... – 2012-07-18 10:37:01

+1

對,從shell替換應用程序啓動瀏覽器是什麼我想到了。這是我能想到的唯一可靠的方法,可以防止桌面在作爲海報請求的自己的應用程序之前加載。如果它很有意義,我會讓他決定:) – 2012-07-18 11:00:26

2

程序可以通過註冊表中添加條目開始:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 

請注意,您應該是明文存儲密碼。即使你不關心實際的安全性,你的用戶也應該關心,因爲許多人使用相同的密碼來處理多種事情。

而且有很多辦法繞過這個類型的節目...

+1

值得注意的是,這個鍵存在於HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE下 - 後者將爲每個用戶運行。 – 2012-07-18 10:35:29

+0

謝謝Michael回覆。爲了安全起見,我甚至可以爲每個用戶設置一個按鈕 - 我只需要一種快速啓動程序的方法。我會嘗試你的答案和保羅的答案,如果有效的話,我會回覆你們。謝謝。 – 2012-07-18 13:13:30

1

套裝外殼:REG ADD HKLM \ SOFTWARE \微軟\的Windows NT \ CURRENTVERSION \ Winlogon中/ V殼牌/噸REG_SZ/d/F