平時註冊ocx控件,可以以管理員身份運行cmd.exe 輸入"regsvr32 文件路徑",或者直接寫到批處理及bat文件中,以管理員身份運行。
但是當你的程序拷貝到其他電腦上時,註冊時的路徑路徑就成了問題,每次都要更改路徑終究不是一個長久之計,所以換一個思路,把bat文件和要註冊的ocx控件放在同一個文件夾下,然後文件夾中的ocx進行註冊,即
regsvr32 xxxx.ocx
但是!問題總是多的超出想象,在xp環境下按如上操作一點兒問題都沒有,可就是win7總是給我找彆扭。
以管理員身份運行的話,獲取的源文件路徑就是默認的系統目錄下的system32,當然在這個文件夾下根本就找不到這些ocx控件,如圖
經過各種站在巨人的肩膀上,我終於找到了解決辦法,就是在bat文件開頭獲取bat文件所在路徑,即
cd /d %~dp0
regsvr32 xxxx.ocx
現在,以管理員身份運行,就沒問題了,"編寫一次,到處運行"。
PS:
%i提取第i個命令選項,例如%1提取第1個option,i可以取值從1到9
%~0: 取文件名(名+擴展名)
%~f0:取全路徑
%~d0:取驅動器名
%~p0:只取路徑(不包驅動器)
%~n0:只取文件名
%~x0:只取文件擴展名
%~s0:取縮寫全路徑名
%~a0:取文件屬性
%~t0:取文件創建時間
%~z0:取文件大小
以上選項可組合使用。