2011-09-14 44 views
1

我有一個C++腳本,可在發生特定事件時鎖定窗口。鎖定窗口使用「LockWorkStation()」命令完成。當發生其他事件時,我想要做的是「解鎖」窗口。爲了爭論,讓我們假設Windows被「鎖定」。 2分鐘後我需要窗戶才能解鎖。 這是否需要對MSGINA.dll進行任何修改?或者它是一個類似於LockWorkStation()的簡單命令? 知道我已將用戶名和密碼保存在某處(當前位於美國B棒上,可用作密鑰)。C++腳本在使用「LockWorkStation()」鎖定後「解鎖」窗口

任何指導,建議或程序的方向來實現任務是高度讚賞。

Regards

+7

什麼是C++ *腳本*? – bitmask

+2

在我看來,鎖定並不意味着以編程方式退出,只能通過「實體」用戶操作退出。在這個邏輯中,應該沒有辦法做到這一點_by design_。當然,網絡上有黑客展示瞭如何使用代碼注入來實現它,但我認爲你不會得到穩定的東西(並且它可能被阻止/不能在未來版本的Windows上工作)。 –

+0

爲什麼你讓這個電臺被鎖定在第一位?真的,你在這裏逆潮而遊。 –

回答

2

沒有支持的機制來解鎖工作站。你將不得不編寫一個自定義的GINA模塊,然後以某種方式與之通信。

對於標準GINA,您可以得到最接近的是做自動登錄(例如使用Autologon tool from SysInternals)。但是,自動登錄只能在機器重新啓動後或用戶註銷後啓動,因此用戶會話將會丟失。

+0

FWIW,GINA在Vista和更高版本上不存在。 –

+0

謝謝Seva。你認爲我打算做什麼可以做憑證提供商?或同樣的問題仍然存在? – Louis

+0

大衛是對的。我錯過了自定義的GINA從Windows Vista開始存在。即使在XP及以下版本,自定義GINA可能也不是您想要的解決方案,因爲編寫自定義GINA的複雜性過高。 –