Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。

JJ
Lv 7

VB6 在 Win 7 呼叫 RegQueryValueEx

=====================================================

我用VB6 在 Windows 7 Professional 的 OS 上呼叫 RegQueryValueEx

lRes = RegOpenKey(hKey, SubKey, lHandle)

lRetLen = 400

sRetVal = Space(lRetLen)

lRes = RegQueryValueEx(lHandle, ValueName, 0, REG_SZ, ByVal sRetVal, lRetLen)

我試著去讀底下裡面所有的 REG_SZ 的資料 (用 不同的 ValueName)

HKEY_LOCAL_MATHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

但是 底下的2 項卻讀不出來 (IRes = 2)

CSDVersion

ProductId

可是 當我在 Windows XP Professional 底下執行卻沒有問題

=====================================================

請問

1. 是那兒出錯了 或是我少安裝了什麼?

2. 承上 將來可能還會有什麼問題

3. 同樣的程式碼 在 XP 底下完全沒有問題 但是在 Windows 7 下 "開啟" 時出現

**************************************

Data View

Automation error

Error accessing the OLE registry

**************************************

錯誤訊息

這是那兒出錯了? 如何修正?

謝謝

更新:

謝謝 阿戊大師 的幫忙

透過compatibility 的設定是可以免除 "Automation error" 的訊息

但是 在執行 lRes = RegQueryValueEx(...) 之後

IRes 還是得到 2 的錯誤值

(sRetVal 沒有取得正確的資料)

所以 "Automation error" 並不是拿不到register資料的原因

這是我最主要的問題

還請各位大大幫忙

謝謝

2 個解答

評分
  • 9 年前
    最愛解答

    嘗試管理員權限吧

    在製成的檔案案右鍵,以管理員權限執行

    順便告訴你秘訣:

    打開的 "工程屬性" 面板中,點 "製成" 選項,在裡面的 "版本編號" 的 "檔案資訊" 中打 "update" (這裡就是關鍵)

    附註:Windows 自己會檢測文件名是否包含 Setup / Install / Update

    這些會讓製程文件自動增加權限

    資料來源: ME
  • 阿戊
    Lv 7
    9 年前

    你那個錯誤訊息不是RegQueryValueEx產生的吧...一.一"

    http://cebutechblogger.com/2009/10/windows-7-autom...

還有問題嗎?立即提問即可得到解答。