VB的32位程序在64位系統(tǒng)中出現(xiàn)文件和注冊表自動轉(zhuǎn)向的解決方法
通常用VB 寫的程序在32位系統(tǒng)上可以正常的運行,但到了64位系統(tǒng)中雖然可以運行但是無法修改OEM信息。經(jīng)過查找原因可以發(fā)現(xiàn),當我們在訪問文件夾"SYSTEM32"的時候系統(tǒng)會自動轉(zhuǎn)向到文件夾"SYSWOW64"下,當我們在訪問某些注冊表鍵值的時候,和文件轉(zhuǎn)向類似,系統(tǒng)也會自動地把程序的訪問轉(zhuǎn)向到Wow6432Node下面。
先來談談文件系統(tǒng)的轉(zhuǎn)向,查找了一些資料,并沒有VB相關(guān)的資料,但是可以查到2個相關(guān)函數(shù):Wow64DisableWow64FsRedirection(關(guān)閉系統(tǒng)轉(zhuǎn)向)和Wow64RevertWow64FsRedirection(打開系統(tǒng)轉(zhuǎn)向)。
VB的聲明如下:
Private Declare Function Wow64RevertWow64FsRedirection Lib "kernel32.dll" () Private Declare Function Wow64DisableWow64FsRedirection Lib "kernel32.dll" ()
然后用CALL Wow64DisableWow64FsRedirection語句來關(guān)閉文件系統(tǒng)的轉(zhuǎn)向。
再來談談注冊表項的轉(zhuǎn)向:
這個依然沒有VB方面的資料,但是知道有函數(shù)RegOpenEx(VB有這個函數(shù),用法見API瀏覽器)可以決定是否轉(zhuǎn)向,只要在函數(shù)的samDesired【Long】參數(shù)上加256(&H100)就可以訪問64位的注冊表了。由于API訪問注冊表代碼較多就不往上貼了。
相關(guān)文章
淺談如何使用vb.net從數(shù)據(jù)庫中提取數(shù)據(jù)
這篇文章主要介紹了淺談如何使用vb.net從數(shù)據(jù)庫中提取數(shù)據(jù),使用VB提取數(shù)據(jù),是先查找,做成數(shù)組,再顯示到數(shù)據(jù)里,如果感興趣可以了解一下2020-07-07VB使用shell函數(shù)打開外部exe程序的實現(xiàn)方法
這篇文章主要介紹了VB使用shell函數(shù)打開外部exe程序的實現(xiàn)方法,是非常實用的一個功能,需要的朋友可以參考下2014-07-07在VB中遍歷文件并用正則表達式完成復制及vb實現(xiàn)重命名、拷貝文件夾的方法
這篇文章主要介紹了在VB中遍歷文件并用正則表達式完成復制及vb實現(xiàn)重命名、拷貝文件夾的方法,需要的朋友可以參考下2018-12-12Windows 10 x64 安裝 Visual Basic 
這篇文章主要介紹了Windows 10 x64 安裝 Visual Basic 6.0 SP6注意事項,需要的朋友可以參考下2023-06-06