2010-08-12 23 views
1

我們有一個VB6應用程序,它讀取一個帶有.LIC文件擴展名的簡單文本文件。當一切工作正常時,如果該文件與可執行文件存在於同一目錄中,則會將其讀取。如果沒有,它會做其他的事情。Windows 7 - UAC - VB6 - 文本文件不能被應用程序「看到」

我有一位Windows 7客戶機的客戶,如果他右鍵單擊EXE和「以管理員身份運行」,它會「看到」LIC文件。如果他以基本用戶身份運行EXE,則不能看到LIC文件。

我已經有足夠的問題與UAC猜測UAC是從某種虛擬目錄運行應用程序,這就是爲什麼LIC文件沒有被看到。我的客戶發誓他已將UAC關閉。

任何人都有我的指針嗎?如果有一種方法可以告訴UAC「讓這個應用程序在這個目錄中執行它所需的操作」,那將是非常棒的。這是我的專業知識。我一直在谷歌搜索,直到我的手指脫落,我找不到正確的答案。

謝謝!

+0

該文件如何放置在您期待的位置?通過升級過程?此進程是否具有包含trustInfo節點的應用程序清單? 是否有兩個用戶參與(或只有一個管理員用戶使用和不使用高程)? 您確定該程序「無法看到」該文件或可能會看到一個空文件嗎? – Bob77 2010-08-13 02:27:46

回答

1

如果您認爲虛擬化正在發生(這會導致它看起來不像程序文件),給他一個名爲foo.exe.manifest的清單文件,其中foo是您的可執行文件名,並讓他把它放在同一個文件夾中作爲exe文件和.lic文件。該清單應該將所需的執行級別設置爲asInvoker。這將抑制虛擬化,因此您可以將其作爲問題的一部分排除在外。他然後可能會獲得訪問被拒絕的錯誤,但這會幫助您理清問題。

+0

我仍然在處理這個問題,但我很確定這是問題所在。儘管我不願意承認這一點,但我並不知道這一明確要求。我仍然在處理這個問題,但我很確定這是問題所在。儘管我不願意承認這一點,但我並不知道這一明確要求。我很驚訝Windows 7/Server 2008不會在添加任何沒有清單的新應用程序上提示消息框。這會更有意義。有大量的「網絡管理員」不知道這個清單文件是否需要。 – 2010-08-14 14:24:23

+0

還應該有一個「自動創建」清單實用工具,用於網絡管理員嘗試讓應用程序在這些新操作系統上運行,而不必關閉UAC以使舊版應用程序運行。無論如何,感謝凱特讓我指出了正確的方向。現在我知道谷歌的「是什麼」了,我發現了很多信息。如果我所嘗試的不起作用,我可能會與你聯繫凱特支付一些諮詢/指導。 – 2010-08-14 14:24:50

0

它也可能是權限?如果用戶未以管理員身份登錄,則您的程序可能無權讀取「.lic」文件。你有沒有檢查用戶是否可以在記事本中打開它?是否有可能你的代碼試圖用讀/寫權限打開它,這很可能會失敗?

您可能需要更改安裝,以降低應用程序安裝目錄的權限。

相關問題