我使用皮膚按鈕的SkinnedButton-v1.2.zip(23 KB) - v1.2皮膚我的安裝程序按鈕。皮膚按鈕插件問題贏在7 -64位
它的工作正常,除了Windows 7 64位,其中的按鈕不顯示圖像,既不像文字'回來,接下來,取消'它只是顯示白色按鈕。
即使沒有皮膚按鈕錯誤,但啓用了按鈕並可以單擊。
任何想法這個問題的原因是什麼?
我使用皮膚按鈕的SkinnedButton-v1.2.zip(23 KB) - v1.2皮膚我的安裝程序按鈕。皮膚按鈕插件問題贏在7 -64位
它的工作正常,除了Windows 7 64位,其中的按鈕不顯示圖像,既不像文字'回來,接下來,取消'它只是顯示白色按鈕。
即使沒有皮膚按鈕錯誤,但啓用了按鈕並可以單擊。
任何想法這個問題的原因是什麼?
使用修補程序SkinnedControls插件從here解決問題。
有兩種可能的錯誤:
1)安裝程序的初始化函數被調用.onInit(你是「.onint」)
這意味着$ PLUGINSDIR從未初始化,文件不提取。
2)您的函數myGuiInit無處稱爲/初始化。
你應該定義符號MUI_CUSTOMFUNCTION_GUIINIT此功能,例如:
!define MUI_CUSTOMFUNCTION_GUIINIT "myGuiInit"
最好的地方來定義,這是在腳本的開頭地方 - 附近的其他MUI_東西。
哦,那些只是錯別字。我正在分享一個演示腳本,它也在使用你的皮膚按鈕插件,並且不能與Win 7 64Bit一起使用。 – foobar 2013-05-03 05:47:13
我調試模式運行插件,我發現存在與
SetWindowLong() and GetWindowLong()
功能問題。
也許使用SetWindowLongPtr和GetWindowLongPtr可以解決這個問題。 它們取/返回根據編譯器設置的LONG_PTR變量。它在x86上是32位長,在x64上是64位_int64。
因此,必須修復和重建插件以支持x64機器。但是因爲這個插件實在是過時的(在這一刻,我沒有時間對新版本),請而嘗試我的其他工具/插件叫做圖形安裝程序:http://www.graphical-installer.com/
我已經開發了這一方案迅速皮膚NSIS安裝程序,我希望你會喜歡它(抱歉自我促銷)。
嗯,事情是,我甚至沒有在我的腳本中使用SetWindowLong()和GetWindowLong(),所以問題可能是別的。而且它不能在Windows 8 - 64位上運行。 以及我很樂意使用你的圖形安裝程序,如果它是免費的。 ;)否則無法承擔。抱歉。 – foobar 2013-05-08 06:36:09
這很奇怪,你可以發佈你的腳本嗎?我實際上在Win7 x64上測試了這個(我的:)插件,沒有任何問題。 – Slappy 2013-05-02 11:37:38
抱歉,由於公司項目的隱私問題,我無法分享整個腳本,但我可以告訴你我在做什麼。 – foobar 2013-05-02 12:43:42