在InstallShield中的MessageBox中更改“确定”按钮的区域设置

时间:2014-07-25 10:38:46

标签: installshield

我们有一个基本的MSI安装程序项目。在某个对话框中,我们对用户提供的数据进行验证,然后使用MessageBox()抛出相应的消息。

现在,当MessageBox出现时,它会显示我们想要的消息和一个OK按钮。

我们有一个问题w.r.t这个OK按钮的区域设置。在英语,法语Windows 2008机器上测试时,我们可以获得确定按钮,其中OK是英语。当我们在西班牙语Windows机器上使用相同的安装程序时,相同的OK按钮会出现西班牙语OK。

我无法弄清楚这种行为的原因是什么。任何提示/帮助都会有很大的帮助。

/ Avadhut。

1 个答案:

答案 0 :(得分:0)

从您的问题中不清楚您调用的API究竟是什么,以及确切的情况。请注意,对于几乎所有人来说,在" native"中显示OK按钮。机器的语言不会混淆,因此只会在QA过程中引起问题。

Windows的MessageBox API本地化为与Windows本身相同的区域设置。相比之下,MessageBoxEx is documented采用语言参数,虽然我看,一位评论者说它并不总是改变默认的本地化。 (我的猜测是评论者的机器上没有所要求的语言。)

如果您在MSI DLL自定义操作中显示消息,则使用MsiProcessMessageMessageBox更好,因为MsiProcessMessage会正确显示其窗口。我怀疑您正在使用ControlEvent,这在静默安装中是隐式避免的,但MsiProcessMessage也不会在静默安装期间显示其消息而不需要任何额外的工作;如果在执行序列操作中使用MessageBox,则必须手动检查UILevel。但是,从文档中不清楚MsiProcessMessage消息框上的按钮是否会被本地化。