zhongyang219 / TrafficMonitor

这是一个用于显示当前网速、CPU及内存利用率的桌面悬浮窗软件,并支持任务栏显示,支持更换皮肤。
Other
33.15k stars 3.18k forks source link

Enhancement: Display Taskbar Window on All Taskbars in All Displays, edit: Fix issue with disappearing taskbar window #1671

Open M52-A opened 10 months ago

M52-A commented 10 months ago

This pull request aims to improve the current behavior of the taskbar window display. Previously, the window was only visible on the primary display's taskbar. With this change, the window will now appear on taskbars across all displays.

By default, this feature is inactive; users can activate it by navigating to the 'Options' section and selecting the 'Taskbar Window Settings' tab within 'Display Settings,' where they can enable the 'Show Taskbar Window in All Displays' option.

Being a novice programmer, I'm aware that certain parts of the code might not be as optimized as they could be. I appreciate any guidance from experienced developers to ensure the code's efficiency and effectiveness.

Please keep in mind that this feature is a work in progress and could potentially have some bugs. Feedback and contributions are highly valued to enhance the stability and reliability of this new feature.

Thank you for your consideration.

edit:

I fixed an issue where the taskbar window would sometimes disappear

BombaxCeiba commented 10 months ago

I tried to run your code. Unfortunately, I cannot open the settings window because the program crashed. I got the stacktrace below: image Then I check your rc file. It seems that you only added UI components to the English window. But my system language is Chinese Simplified. TrafficMonitor will load IDD_TASKBAR_SETTINGS_DIALOG instead of IDD_TASKBAR_SETTINGS_DIALOG[英语(美国)]. Therefore, if the program call 'GetDlgItem(IDC_SHOW_TASKBAR_WND_IN_ALL_DISPLAYS_CHECK)', it will get 0. image I think it is necessary to add the new UI components to all the window resources shown in the figure above.

M52-A commented 10 months ago

I tried to run your code. Unfortunately, I cannot open the settings window because the program crashed. I got the stacktrace below: image Then I check your rc file. It seems that you only added UI components to the English window. But my system language is Chinese Simplified. TrafficMonitor will load IDD_TASKBAR_SETTINGS_DIALOG instead of IDD_TASKBAR_SETTINGS_DIALOG[英语(美国)]. Therefore, if the program call 'GetDlgItem(IDC_SHOW_TASKBAR_WND_IN_ALL_DISPLAYS_CHECK)', it will get 0. image I think it is necessary to add the new UI components to all the window resources shown in the figure above.

Thank you for bringing up the issue. I've fixed the issue by adding the option "Show Taskbar Window in All Displays" for Chinese (Traditional) and Chinese (Simplified) languages. In Chinese (Traditional), it's "在所有顯示器上顯示工作列視窗" and in Chinese (Simplified), it's "在所有显示器上显示任务栏窗口" Please note that I'm not fluent in Chinese (Traditional and Simplified), so I used translation tools to provide these phrases. Your help and feedback are much appreciated in making the program better.

paul1339 commented 9 months ago

Can you provide compiled binaries for your build? Also would be good if you can chose on which taskbar you want it.

maghuro commented 8 months ago

This is MUST necessary. I use a dual screen setup, and it bothers me when i'm playing a game on my 1st screen, I cant see the bar.

bcutter commented 8 months ago

So will it be merged then, some day soon? @zhongyang219

tim-99 commented 7 months ago

any updates?

devCKVargas commented 7 months ago

- Upstream from source & merged this PR

- Get the unofficial v1.85 Release from this fork

bcutter commented 7 months ago

- Upstream from source & merged this PR

- Get the unofficial v1.85 Release from this fork

Is this "just" with this PR merged or will this fork continue development and solve other things too?

devCKVargas commented 7 months ago

- Upstream from source & merged this PR

- Get the unofficial v1.85 Release from this fork

Is this "just" with this PR merged or will this fork continue development and solve other things too?

Not planning on fixing this I haven't encountered, so it'll be a fork w/ this PR merged in for now. However, I may merge some PRs until the official development resumes.

bcutter commented 7 months ago

Can't try it. Unfortunately, it get's wiped immediately from AV software like the latest 1.84.1 did.

grafik

bcutter commented 7 months ago

Tried on another system. Basically working - but after a while, TM is not shown anymore in the taskbar even it is running. Same after system reboot. That's not reliable at all, the change/update must have introduced a side effect.

grafik

grafik

(by the way: "Exit the program" will make it crash, faulting module C:\Windows\System32\ucrtbase.dll)

Therefore I downgraded back to latest 1.84.1. As I prefer having TM more or less reliable on the main screen instead of sporadically having it at all screens until it somehow crashes and I have it on no screen.

Really incredible how much issues one application can create, never experienced something similar. This project urgently needs an active maintainer. Otherwise never-ending issue creating story.

devCKVargas commented 7 months ago

Can't try it. Unfortunately, it get's wiped immediately from AV software like the latest 1.84.1 did.

graphic

I was planning on making a roll back release of 1.84 w/ this PR for you since you're having issues from AV, but there's quite a few bug fixes on Win 11 in 1.84.1.

Tried on another system. Basically working - but after a while, TM is not shown anymore in the taskbar even it is running. Same after system reboot. That's not reliable at all, the change/update must have introduced a side effect.

graphic

graphic

(by the way: "Exit the program" will make it crash, faulting module C:\Windows\System32\ucrtbase.dll)

Therefore I downgraded back to latest 1.84.1. As I prefer having TM more or less reliable on the main screen instead of sporadically having it at all screens until it somehow crashes and I have it on no screen.

Really incredible how much issues one application can create, never experienced something similar. This project urgently needs an active maintainer. Otherwise never-ending issue creating story.

To be honest, I haven't really had issues w/ TM similar to any of your issues or any other issue, except #1733 and I ran this on both latest Win10 & Win11 23H2(trying the OS and also trying to be MS' guinea pig for bit). But I re-installed Win11, tried to recreate the problem but it didn't occur. I did the same install from the same ISO, same script from my repo and latest official release & my fork worked.

BombaxCeiba commented 7 months ago

Tried on another system. Basically working - but after a while, TM is not shown anymore in the taskbar even it is running. Same after system reboot. That's not reliable at all, the change/update must have introduced a side effect.

grafik

grafik

(by the way: "Exit the program" will make it crash, faulting module C:\Windows\System32\ucrtbase.dll)

Therefore I downgraded back to latest 1.84.1. As I prefer having TM more or less reliable on the main screen instead of sporadically having it at all screens until it somehow crashes and I have it on no screen.

Really incredible how much issues one application can create, never experienced something similar. This project urgently needs an active maintainer. Otherwise never-ending issue creating story.

Can you upload "error.log". It might help me to find bugs. You can find this file in root folder of TM. If your TM put configuration at your "AppData" folder, you can find this file in "C:\Users\\AppData\Roaming\TrafficMonitor". And please check "C:\Users\\AppData\Local\CrashDumps". If there is any dmp file associated with TM, please upload it. Thank you.

bcutter commented 7 months ago

Can you upload "error.log". It might help me to find bugs. You can find this file in root folder of TM. If your TM put configuration at your "AppData" folder, you can find this file in "C:\Users\AppData\Roaming\TrafficMonitor". And please check "C:\Users\AppData\Local\CrashDumps". If there is any dmp file associated with TM, please upload it. Thank you.

  1. error.log:

2023-11-14, everything above/below can be ignored:

2023/11/12 21:14:15.901: The size of the buffer used to store connection information is not enough, the connection has been reinitialized. (1 times has been reinitialized)
2023/11/13 02:41:08.796: The size of the buffer used to store connection information is not enough, the connection has been reinitialized. (1 times has been reinitialized)
2023/11/14 19:29:53.907: ?????0????????????????,????????
2023/11/14 19:34:39.136: An exception may have occurred, the currently selected connection is inconsistent with the expected connection. The connection has been retrieved. (1 times has been reinitialized)
2023/11/14 19:43:26.911: ?????0????????????????,????????
2023/11/20 18:47:10.036: An exception may have occurred, the currently selected connection is inconsistent with the expected connection. The connection has been retrieved. (1 times has been reinitialized)
  1. Crash dump Debugged the TrafficMonitor.exe.14412.dmp. Result: buffer overflow. Details below.

KEY_VALUES_STRING: 1

    Key  : Analysis.CPU.mSec
    Value: 2203

    Key  : Analysis.Elapsed.mSec
    Value: 4114

    Key  : Analysis.IO.Other.Mb
    Value: 63

    Key  : Analysis.IO.Read.Mb
    Value: 79

    Key  : Analysis.IO.Write.Mb
    Value: 274

    Key  : Analysis.Init.CPU.mSec
    Value: 4890

    Key  : Analysis.Init.Elapsed.mSec
    Value: 384875

    Key  : Analysis.Memory.CommitPeak.Mb
    Value: 298

    Key  : CLR.BuiltBy
    Value: NET481REL1LAST_C

    Key  : CLR.Engine
    Value: CLR

    Key  : CLR.Version
    Value: 4.8.9181.0

    Key  : FailFast.Name
    Value: FATAL_APP_EXIT

    Key  : FailFast.Type
    Value: 7

    Key  : Failure.Bucket
    Value: FAIL_FAST_FATAL_APP_EXIT_c0000409_ucrtbase.dll!abort

    Key  : Failure.Hash
    Value: {e31753ac-c98a-8055-3663-47e707543d20}

    Key  : Timeline.OS.Boot.DeltaSec
    Value: 578

    Key  : Timeline.Process.Start.DeltaSec
    Value: 516

    Key  : WER.OS.Branch
    Value: ni_release

    Key  : WER.OS.Version
    Value: 10.0.22621.1

    Key  : WER.Process.Version
    Value: 3.1.0.1

FILE_IN_CAB:  TrafficMonitor.exe.14412.dmp

NTGLOBALFLAG:  0

PROCESS_BAM_CURRENT_THROTTLED: 0

PROCESS_BAM_PREVIOUS_THROTTLED: 0

APPLICATION_VERIFIER_FLAGS:  0

CONTEXT:  (.ecxr)
rax=0000000000000001 rbx=0000000000000000 rcx=0000000000000007
rdx=0000c47b56fedd0a rsi=00007ff7163c29e8 rdi=000000cc1a1ff7f8
rip=00007ffe4270f61e rsp=000000cc1a1ff3b0 rbp=000000cc1a1ff540
 r8=00007ffe42790920  r9=000000cc1a1ff328 r10=0000000000000012
r11=00007ffdc6958590 r12=0000000000000000 r13=0000000000000001
r14=0000000000008000 r15=cccccccccccccccd
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
ucrtbase!abort+0x4e:
00007ffe`4270f61e cd29            int     29h
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 00007ffe4270f61e (ucrtbase!abort+0x000000000000004e)
   ExceptionCode: c0000409 (Security check failure or stack buffer overrun)
  ExceptionFlags: 00000001
NumberParameters: 1
   Parameter[0]: 0000000000000007
Subcode: 0x7 FAST_FAIL_FATAL_APP_EXIT 

PROCESS_NAME:  TrafficMonitor.exe

ERROR_CODE: (NTSTATUS) 0xc0000409 - Das System hat in dieser Anwendung den  berlauf eines stapelbasierten Puffers ermittelt. Dieser  berlauf k nnte einem b sartigen Benutzer erm glichen, die Steuerung der Anwendung zu  bernehmen.

EXCEPTION_CODE_STR:  c0000409

EXCEPTION_PARAMETER1:  0000000000000007

FAULTING_THREAD:  00000ea8

STACK_TEXT:  
000000cc`1a1ff3b0 00007ffe`27576eba     : 00007ff7`00000003 000000cc`00000003 00000000`424d6db7 00000000`00000000 : ucrtbase!abort+0x4e
000000cc`1a1ff3e0 00007ffd`f977e926     : 00000000`00000000 00000000`00000000 00000000`00000000 000000cc`1a1ff540 : VCRUNTIME140!_purecall+0x1a
000000cc`1a1ff410 00007ff7`1637ce41     : 000001f3`f3599630 00000000`00000065 00000000`00000065 ffffffff`fb706890 : mfc140u!CSingleLock::Unlock+0x26
000000cc`1a1ff440 000001f3`f3599630     : 00000000`00000065 00000000`00000065 ffffffff`fb706890 000000cc`1a0ff290 : TrafficMonitor+0x6ce41
000000cc`1a1ff448 00000000`00000065     : 00000000`00000065 ffffffff`fb706890 000000cc`1a0ff290 00000000`00000000 : 0x000001f3`f3599630
000000cc`1a1ff450 00000000`00000065     : ffffffff`fb706890 000000cc`1a0ff290 00000000`00000000 00560045`0044005c : 0x65
000000cc`1a1ff458 ffffffff`fb706890     : 000000cc`1a0ff290 00000000`00000000 00560045`0044005c 005c0045`00430049 : 0x65
000000cc`1a1ff460 000000cc`1a0ff290     : 00000000`00000000 00560045`0044005c 005c0045`00430049 00490050`00430054 : 0xffffffff`fb706890
000000cc`1a1ff468 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x000000cc`1a0ff290

STACK_COMMAND:  ~7s ; .cxr ; kb

SYMBOL_NAME:  ucrtbase!abort+4e

MODULE_NAME: ucrtbase

IMAGE_NAME:  ucrtbase.dll

FAILURE_BUCKET_ID:  FAIL_FAST_FATAL_APP_EXIT_c0000409_ucrtbase.dll!abort

OS_VERSION:  10.0.22621.1

BUILDLAB_STR:  ni_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

IMAGE_VERSION:  10.0.22621.2506

FAILURE_ID_HASH:  {e31753ac-c98a-8055-3663-47e707543d20}

Followup:     MachineOwner
---------
devCKVargas commented 6 months ago

@M52-A thanks for the fix! 🔥

tim-99 commented 6 months ago

wow cool, is there a release rdy to download yet?

bcutter commented 6 months ago

wow cool, is there a release rdy to download yet?

Proof me wrong, but:

No of course not. The maintainer seems to be literally unavailable. No one can approve PRs, so no new releases. Basically some kind of great but dead piece of software.