0

カスタムページがあり、プログレスバーを追加しました。これで、プログレスバーを制御する2つの機能があります。1つの機能はいくつかのサービスを停止することであり、もう1つはインストール場所からいくつかのファイルをバックアップすることです。

Function myCustomPage
    Var /GLOBAL progressBar
    Var /GLOBAL label 
    !insertmacro MUI_HEADER_TEXT "Setup is preaparing to install updates" "Please wait"
    nsDialogs::Create 1018 
    ${NSD_CreateLabel} 10 15 80% 10% ""
    Pop $label
    ${NSD_CreateProgressBar} 10 30 80% 8% ""
    Pop $progressBar

    ${NSD_CreateTimer} BackUp_Files.Callback 10
    ${NSD_CreateTimer} Stop_Services.Callback 10 
    nsDialogs::Show
FunctionEnd

Stop_Servicesコールバック関数

Function Stop_Services.Callback
    ${NSD_SetText} $label "Stopping services"
    ${NSD_KillTimer} Stop_Services.Callback
    SendMessage $progressBar ${PBM_SETRANGE32} 0 100 
    SendMessage $progressBar ${PBM_SETPOS} 25 0
    Sleep 100
    SendMessage $progressBar ${PBM_SETPOS} 25 0 
    Sleep 100
    SendMessage $progressBar ${PBM_SETPOS} 50 0 
    Sleep 100
    SendMessage $progressBar ${PBM_SETPOS} 75 0 
    Sleep 100
    SendMessage $progressBar ${PBM_SETPOS} 100 0
FuncionEnd

Backup_files.callbackの同じ種類の構造があります。結果:ラベルを見ると、「サービスの停止」と「ファイルのバックアップ」の切り替えの種類がわかります。誰かがこれを処理する方法を教えてもらえますか?最初にサービスを停止してから、バックアップファイルをコピーしたいと思います。サービスを停止した後、プログレスバーを0に設定し、ファイルのバックアップを再開する必要があります。単一のカスタムページでそれを行う必要があります。

4

1 に答える 1

1

1つのタイマーを使用するだけで、最初のタスクの最後にcall2番目のタスクが直接機能します...

于 2012-10-23T01:22:44.567 に答える