廢話不說。解決win7運行批處理出錯不能註冊dll等問題。
1.在批處理的第一行加入:cd /d %~dp0 然後在批處理上右鍵選擇使用管理員權限運行。
2.右鍵工作列,選擇資源管理員,進程選項卡,顯示所有使用者的進程,結束explorer,檔案-建立任務 explorer,此時選中“利用管理特權建立此任務".案頭顯示完成後就可以直接雙擊批處理運行了。
3.使用第三方提權工具,例如elevate ,用法elevate -c regsvr32 demo_doreg.dll
這種方法需要在每個提權的命令前都要加上elevate -c ,這種第三方工具適合於1個或者少個需要提權的情況。
http://code.kliu.org/misc
4.使用bat to exe converter 1.51把批處理轉換為exe,在轉換的時候有選項可以選擇 admin 許可權。使用此軟體時最好關掉360和其他殺軟,因為軟體好像要upx加殼。
http://www.softpedia.com/get/System/File-Management/Batch-To-Exe-Converter.shtml
1和4 兩項適合分發給其他人員部署,第2條還是自己保留著當壓箱底的吧。
--------------------------------------------------------------
win7 使用批處理註冊dll可能會出現如下問題。
1. 模組 已載入,但對dllregisterServer的調用失敗,錯誤碼為0x80040201
原因:使用管理員權限才能註冊dll
2. 右鍵使用管理員 可能會出現如下錯誤:
模組 載入失敗。請確保該二進位儲存在指定的路徑中,或者調試它以檢查該二進位或相關的 .dll檔案是否有問題。 找不到指定的模組。
原因:win7下管理員的命令列(批處理)預設的是system32檔案夾。
解決方案:按照文章開頭的第一條解決即可。
當然也可使用2、3、4等方案解決。