Announcement

Collapse
No announcement yet.

Implementing a new screen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Implementing a new screen

    Hey all.
    I'm creating an installation and I need some help.
    When my installer starts, it also starts a silent installation of an intel SDK.
    Usually what happens is that Intel SDK installation completes a few seconds later than my own installation.

    I want to implement a dummy progress bar which will be seen before the finish screen and cover some time between my own installation's completion and that other installation. I have a dummy screen I need only some help with the actions lua code to have it appear for 30 seconds or so and then trigger the finish screen.

    How do I do that?
    Thanks!

    ~oreniko

  • #2
    Instead of showing the screen for a fixed amount of time, it would make more sense if you test if the other installer is still running, by checking the active processes. Use Screen.StartTimer() to start a timer, and every couple of seconds check if the process is still running, in the event script of the On Ctrl Message tab. Once the process is done, jump to the next screen.

    Ulrich

    Comment


    • #3
      I'm sorry, I don't understand how to check every few seconds whether the process is still working or not.
      Can you explain further please? (Thanks for answering BTW ).

      ~oreniko

      Comment


      • #4
        Have you read the explanation of the Screen.StartTimer() and the rest of the documentation, and tried to use it as explained? If so, please post your project.

        Ulrich

        Comment


        • #5
          Ok, read through the materials and now I have a different issue if anyone can help.

          I added this: Screen.StartTimer(2000);
          in the On Start of my new custom screen(which is located in the After Installing tab of screens).
          and this is my message response in the on Ctrl Message:

          Code:
          if (e_MsgID == MSGID_ONTIMER) then
             local file_to_check_for = "intel_rs_sdk_runtime_core_3.1.0.85181.exe"; 
             local processes = System.EnumerateProcesses();
             instance = 0;
             for j, file_path in pairs(processes) do
              	local file = String.SplitPath(file_path);
              	if (String.Lower(file.Filename..file.Extension) == file_to_check_for) then
                  	nstep= 10 + nstep;
          --nstep and instance are defined in on start page
                  	DlgProgressBar.SetStep(CTRL_PROGRESS_BAR_01, nstep);
                  	instance = instance + 1;
              	end
              
             
             end
          	if (instance == 0)then
          		Screen.Next();
          	end
          	end
          for some reason this code is never executed and I can't understand why.
          I mean even if it wouldn't find the name of the file because I didn't search correctly, it would still need to reach instance and see that it is 0 and jump to the next page but that doesn't happen, the screen seems static and nothing happens when you reach the screen.

          Can someone explain what am I doing wrong?

          Thanks for any help

          ~oreniko

          Comment


          • #6
            Do you have removed the default Screen.Next() from the On Finish event script? Otherwise, you may be jumping to the next screen immediately, instead of controlling the flow using the timer.

            Ulrich

            Comment


            • #7
              but that's the thing I'm not jumping to the next screen(the next screen is finish). The custom screen appears and doesn't do anything...I will see if it's there but I don't think that it being there is what's making this problem...

              ~oreniko

              Comment


              • #8
                Guys,

                I attached my suf file.

                I understood that I can get an array with the names of open processes and then go over it and search for the name of my file being installed alongside the installation itself.
                but for some reason it never reaches that point. Can someone help me out by explaining what am I doing wrong?

                Thanks

                ~Oreniko

                check.suf

                Comment


                • #9
                  In my previous replay I alerted you that you need to remove the Screen.Next() action from the On Finish script, yet clearly it is still there:

                  Click image for larger version

Name:	SCRN-2015-02-09-01.png
Views:	1
Size:	31.7 KB
ID:	284275

                  If "these actions (including jumping to the next screen) are performed right after the On Start actions" as the comment explains, your loop in the On Ctrl Message script won't have the time to finish processing. As you plan to perform the jump to the next screen in the On Ctrl Message script, you must remove the Screen.Next() action from the On Finish event. So this is clearly wrong.

                  Another problem however, which you missed to mention in your post, is that you are using a version of Setup Factory which, as I write this, is already four years old. If you check the program changelog, you will see that in release 9.0.3.0 this problem was located and fixed:
                  • Fix: Fixed a bug where Custom Progress screens were not working properly during the Before Installing and After Installing stage.

                  If you want to use a Custom Progress screen somewhere else than the While Installing phase of the setup, you need to upgrade your Setup Factory 9.

                  Ulrich

                  Comment


                  • #10
                    Ulrich,

                    Thank you for the detailed post.
                    It was very helpful! especially for someone inexperienced with Setup Factory like me
                    I will do as you wrote and if I have other problems I'll be sure to update( and I will check that I didn't forget to do stuff )

                    ~Oreniko

                    Comment

                    Working...
                    X