2013-05-02 59 views
1

我使用皮膚按鈕的SkinnedButton-v1.2.zip(23 KB) - v1.2皮膚我的安裝程序按鈕。皮膚按鈕插件問題贏在7 -64位

它的工作正常,除了Windows 7 64位,其中的按鈕不顯示圖像,既不像文字'回來,接下來,取消'它只是顯示白色按鈕。

即使沒有皮膚按鈕錯誤,但啓用了按鈕並可以單擊。

任何想法這個問題的原因是什麼?

+0

這很奇怪,你可以發佈你的腳本嗎?我實際上在Win7 x64上測試了這個(我的:)插件,沒有任何問題。 – Slappy 2013-05-02 11:37:38

+0

抱歉,由於公司項目的隱私問題,我無法分享整個腳本,但我可以告訴你我在做什麼。 – foobar 2013-05-02 12:43:42

回答

1

使用修補程序SkinnedControls插件從here解決問題。

0

有兩種可能的錯誤:

1)安裝程序的初始化函數被調用.onInit(你是「.onint」)

這意味着$ PLUGINSDIR從未初始化,文件不提取。

2)您的函數myGuiInit無處稱爲/初始化。

你應該定義符號MUI_CUSTOMFUNCTION_GUIINIT此功能,例如:

!define MUI_CUSTOMFUNCTION_GUIINIT "myGuiInit" 

最好的地方來定義,這是在腳本的開頭地方 - 附近的其他MUI_東西。

+0

哦,那些只是錯別字。我正在分享一個演示腳本,它也在使用你的皮膚按鈕插件,並且不能與Win 7 64Bit一起使用。 – foobar 2013-05-03 05:47:13

0

我調試模式運行插件,我發現存在與

SetWindowLong() and GetWindowLong() 

功能問題。

也許使用SetWindowLongPtr和GetWindowLongPtr可以解決這個問題。 它們取/返回根據編譯器設置的LONG_PTR變量。它在x86上是32位長,在x64上是64位_int64。

因此,必須修復和重建插件以支持x64機器。但是因爲這個插件實在是過時的(在這一刻,我沒有時間對新版本),請而嘗試我的其他工具/插件叫做圖形安裝程序http://www.graphical-installer.com/

我已經開發了這一方案迅速皮膚NSIS安裝程序,我希望你會喜歡它(抱歉自我促銷)。

+0

嗯,事情是,我甚至沒有在我的腳本中使用SetWindowLong()和GetWindowLong(),所以問題可能是別的。而且它不能在Windows 8 - 64位上運行。 以及我很樂意使用你的圖形安裝程序,如果它是免費的。 ;)否則無法承擔。抱歉。 – foobar 2013-05-08 06:36:09