開發環境:win7 64位
開發工具:VS2010
開發背景:AxtiveX插件(DLL項目) 宿主為浏覽器
問題描述:
在使用C++代碼獲取硬盤序列號的時候,使用到了CreateFile函數。主要用到了CreateFile、DeviceIoControl函數。把關鍵代碼提取到一個Win32工程下時:
問題1:生成的exe程序,可以在本機直接雙擊運行獲取到序列號,但是在別的機器就需要使用管理員權限(XP系統除外),是為什麼?
問題2:如果是exe程序: 可以設置UAC的執行級別為administrator,或者右鍵使用管理員權限運行,獲取序列號。但是如果要在DLL工程中怎麼辦? (**現在的目的就是想如何在代碼裡實現普通用戶操作驅動器的問題(不考慮XP)?**)
說明:
嘗試使用過 http://bbs.csdn.net/topics/250018148 的解決方案沒有解決問題,也嘗試在代碼裡提權(AdjustTokenPrivileges),也沒有解決問題。
所以,思路要變化,為什銀行的支付插件、QQ的檢測登陸插件都有一個promt(提示)?
你在這個安全規范的約束內做事,而不是去打破這個規范.
關於你要實現的問題,如果你是針對集團、公司開發ActiveX,請了解GroupPolicy和AxIs.
如果你針對個人,那就參考1、2樓.