Menu

DxWnd and Tray Icons

gho
2017-06-29
2017-07-10
1 2 > >> (Page 1 of 2)
  • gho

    gho - 2017-06-29

    As Cloudstr kept reminding me, DxWnd has a problem when running iconized on system tray and Windows XP explorer gets killed: when you restart explorer (going to taskmanager and running the new application "explorer") the DxWnd icon is lost while the process is still running, so the only way to unblock the situation is going back to taskmanager again, kill DxWnd process and start it again.
    It should be noted that the IconTray class borrowed from Chris Maunder work on codeproject has recovery actions implemented by listening to the icon tray creation event, but the whole mechanism works very well on any platform but Windows XP.
    So far, I found a very limited workaround: since DxWnd and the SystemTray class are able to detect the problem, the attached release counts how many animation cycles occur in a failure state and, after a few attempts failed on XP, restores the DxWnd window.
    Be aware that the problem still exists, and in fact if after that event you try to move DxWnd to the icon tray again the icon won't be created the same, but ... hey, Rome wasn't built in a day! Stay tuned for a better solution.

     
  • gho

    gho - 2017-06-29

    The attached exe is the replacement for v2.04.33 DxWnd GUI, as I said useful on XP only.

     
    • Anonymous

      Anonymous - 2017-06-29
       

      Last edit: Anonymous 2018-10-20
      • gho

        gho - 2017-06-29

        ... as long as you don't try to send DxWnd to the tray again!
        With this partial patch, better stop the program and start it again right away.

         
  • gho

    gho - 2017-06-29

    ghotik2002 just wrote to Chris Maunder, let's hope in some hints ..
    https://www.codeproject.com/Articles/74/Adding-Icons-to-the-System-Tray?msg=5411120#xx5411120xx

     
    • Anonymous

      Anonymous - 2017-06-29
       

      Last edit: Anonymous 2018-10-20
  • Anonymous

    Anonymous - 2017-06-29
     

    Last edit: Anonymous 2018-10-20
    • gho

      gho - 2017-06-29

      don't panic, I can see it.

       
  • gho

    gho - 2017-06-30

    Ah!! Found & fixed. It was necessary to clean up all SysTray internal stuff after a desktop creation event so that the following "Move to tray" command will do all the processing from scratch, probably including also the linkage to the new explorer process.
    At this point it was possible also to fully recover the situation rebuilding the icon in the tray, but (just for prudence) I prefer to pop DxWnd out from the tray to the screen, so that the user can decide whether to iconize it again or whatever else.
    Catch this fine new release: it was thoroughfully tested (I mean, it worked at least once ;) so I hope it will work for anyone else.

     
    • Anonymous

      Anonymous - 2017-06-30
       

      Last edit: Anonymous 2018-10-20
      • gho

        gho - 2017-06-30

        There is one single but important difference: with this version you can push DxWnd to the system tray again without losing it, with the previous one you had to exit and restart, or a new attempt to go to tray would get DxWnd lost!

         
        • Anonymous

          Anonymous - 2017-06-30
           

          Last edit: Anonymous 2018-10-20
          • gho

            gho - 2017-06-30

            It could be (and it will be) improved, so far 5 seconds is because I wait 5 failures in a loop with 1 second delay cycle. The reason why I didn't do that immediately is because this feature is useless in any platform but XP, so I didn't want to risk a pop-out from tray when not necessary, but I can do at least these things:
            1) compare the failure counts on different platforms and pop-out with a minimum but safe delay
            2) better yet, check for the OS version and tie this trick to XP only and with 0 delay
            3) try recovering the icon directly on the tray without popping out. Maybe it works.

            But for now the important thing is that IT WORKS so that it can be improved.

             

            Last edit: gho 2017-06-30
  • gho

    gho - 2017-07-03

    Improved (and final?) release.
    The jump out of iconized state is now immediate and confined for XP platform only, the behaviour for other system is kept the same, since it was already ok.
    I made also an attempt to avoid the jump out of iconized state and recover the icon in tray using the available interface, but that didn't work, so I'm afraid that for the moment things will stay this way.

     
    • Anonymous

      Anonymous - 2017-07-03
       

      Last edit: Anonymous 2018-10-20
  • Anonymous

    Anonymous - 2017-07-10
     

    Last edit: Anonymous 2018-10-20
    • gho

      gho - 2017-07-10

      Let me think about it. The fact is that current menu is static, game list is dynamic, the coding is likely to be quite different....

      P.s what about deobfuscation of Alien Shooter? I'd need help also for Fastlane Pinball.

       

      Last edit: gho 2017-07-10
      • Anonymous

        Anonymous - 2017-07-10
         

        Last edit: Anonymous 2018-10-20
        • gho

          gho - 2017-07-10

          Here the exe, just in case ....
          P.s. Alien Sghooter is not essential, since it works. But Fastlane Pinball is a pain in the neck!

           

          Last edit: gho 2017-07-10
          • Anonymous

            Anonymous - 2017-07-10
             

            Last edit: Anonymous 2018-10-20
            • Anonymous

              Anonymous - 2017-07-10
               

              Last edit: Anonymous 2018-10-20
  • gho

    gho - 2017-07-10

    No problem about AS2, it works anyway by Hot Patching.
    Fastlane instead is a litle tricky: the unpacked exe is not working, but that doesn't matter too much either: I just needed to see the full list of syscalls. The problem is that I don't see any strange syscall in the list, so I can't understand why the game keeps changing screen resolution!

     
    • Anonymous

      Anonymous - 2017-07-10
       

      Last edit: Anonymous 2018-10-20
      • gho

        gho - 2017-07-10

        Yes, the packed works and the unpacked doesn't work, also without DxWnd. It must be some UPX "dialect" not properly managed, or there must be some further anti-cheat check.
        I call "syscall" a generic function within the system libraries like ddraw.dll, gdi32.dll and so on.
        Well, enough for today, I'm going to have a good sleep, see ya tomorrow.

         
        • Anonymous

          Anonymous - 2017-07-10
           

          Last edit: Anonymous 2018-10-20
1 2 > >> (Page 1 of 2)

Log in to post a comment.

MongoDB Logo MongoDB