2

我想知道是否有任何方法可以在 nsDialog::show 之后调用函数。

我的案例是一个自定义页面,需要在 nsDialog 显示之后运行 http get 请求。

    Function customPage
        nsDialogs::Create 1018
    Pop $0

    ${NSD_CreateButton} 0 0 100% 12u Test
    Pop $BUTTON

    ${NSD_CreateText} 0 35 100% 12u hello
    Pop $EDIT

    ${NSD_CreateCheckbox} 0 -20 100% 8u Test
    Pop $CHECKBOX

    ${NSD_CreateLabel} 0 40u 75% 40u "* Type `hello there` above.$\n* Click the button.$\n* Check the checkbox.$\n* Hit the Back button."
    Pop $0

    nsDialogs::Show
    Call MyFunc 
 FunctionEnd

实际上,MyFunc只有在关闭 nsDialog 时才会调用。

4

2 回答 2

2

使用nsDialogs::CreateTimer短暂的超时并在函数回调中终止计时器,这有点小技巧,但似乎工作正常。

于 2013-08-12T17:32:36.583 回答
1

nsDialog 由单线程运行,但实际上您可以使用nsDialogs::CreateTimer回调函数而无需指定时间。

您可以在以下位置阅读更多相关信息:

http://nsis.sourceforge.net/Docs/nsDialogs/Readme.html#ref-createtimer

于 2013-08-14T07:23:19.347 回答