如何在NSIS中使用try catch

时间:2010-10-27 10:21:40

标签: fonts try-catch nsis scripting-language

我在安装时在我的nsis安装程序中的几台机器上遇到了一个奇怪的错误。使用fontreg.nsh

安装字体时,它会给出“无效的win32文件句柄”

我试过谷歌但没有得到这个问题的答案。现在我想抑制这个消息,所以有没有办法压制消息或者如果可能的话建议我解决这个问题。

继承我的代码

!包含“FontReg.nsh” !包含“FontName.nsh” !包括“WinMessages.nsh”

StrCpy $ FONT_DIR $ FONTS

!insertmacro InstallTTFFont'logicri_0.TTF'   !insertmacro InstallTTFFont'logicrib.TTF'   !insertmacro InstallTTFFont'calibriz.TTF'   !insertmacro InstallTTFFont'calibrii.TTF'

SendMessage $ {HWND_BROADCAST} $ {WM_FONTCHANGE} 0 0 / TIMEOUT = 5000

请帮助其紧急

2 个答案:

答案 0 :(得分:1)

据我所知,robertinventor已经解决了这个问题(2010年3月11日23:16):

http://forums.winamp.com/showthread.php?t=209326

答案 1 :(得分:0)

在回答您的原始问题(“是否有任何方法可以抑制该消息”)时,这实际上不是一个例外,FontReg正在显示一个MessageBox。

我编辑了FontReg.nsh并替换了第84行。

旧:

MessageBox MB_OK "$R2"

新功能:

DetailPrint "[ERROR] InstallTTFFont"
DetailPrint "[ERROR]     error: $R2"
DetailPrint "[ERROR]     FontFile: ${FontFile}"
DetailPrint "[ERROR]     FontFileName: ${FontFileName}"
DetailPrint "[ERROR]     Index: ${Index}"