无论如何在nsDialog显示后调用函数?

时间:2013-08-12 16:59:04

标签: nsis

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

我的情况是一个自定义页面,需要在nsDialog show之后运行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

实际上,只有当我关闭nsDialog时才会调用MyFunc

2 个答案:

答案 0 :(得分:2)

使用短暂超时nsDialogs::CreateTimer并在函数回调中终止计时器,它有点像黑客但似乎工作正常。

答案 1 :(得分:1)

nsDialog由独奏线程运行,但实际上你可以使用nsDialogs::CreateTimer来回调一个函数而不指定时间。

您可以在以下网址阅读更多相关内容:

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