View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002354 | SpeedFan | User interface | public | 2015-01-17 03:53 | 2015-06-18 17:29 |
Reporter | bugmenot | Assigned To | alfredo | ||
Priority | high | Severity | minor | Reproducibility | always |
Status | assigned | Resolution | open | ||
Platform | x86 | OS | Windows | OS Version | 7 (and others) |
Product Version | 4.50 | ||||
Summary | 0002354: SpeedFan tray icon missing after Explorer crash | ||||
Description | If Windows Explorer crashes, when it restarts, unlike the tray icons of other programs, the SpeedFan icon is not re-created, so the user must use Task Manager to kill the speedfan.exe process and re-run it to regain the icon. | ||||
Steps To Reproduce | 1. Wait for Windows Explorer to crash (or kill it yourself by killing explorer.exe or holding Ctrl+Shift while right-clicking an empty space in the Start Menu and selecting Exit Explorer. 2. Restart Explorer (eg, Task Manager->Run->explorer). 3. Observe that while the icons of other programs are restored, SpeedFan’s is not. | ||||
Tags | No tags attached. | ||||
Motherboard Model | * | ||||
Video Card Model | |||||
|
Speedfan have to use 'RegisterWindowMessage("TaskbarCreated")' and 'ChangeWindowMessageFilter' functions to get notification about taskbar (re)creation. |
|
Hopefully this can be fixed soon because it is too troublesome to manually fix. (In addition to killing speedfan.exe and re-running it, you can also use something like WinSpy++ in elevated mode to show the main window, then minimize it, and the icon will be restored; but that too is a big hassle.) Fortunately it is pretty easy to fix. As MaxusR said, SpeedFan only needs to detect the TaskbarCreated message and run its show-tray-icon routine. Here is an example from https://msdn.microsoft.com/en-us/library/windows/desktop/cc144179.aspx#Taskbar_Creation_Not LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam) { static UINT s_uTaskbarRestart; switch(uMessage) { case WM_CREATE: s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated")); break; default: if(uMessage == s_uTaskbarRestart) AddTaskbarIcons(); break; } return DefWindowProc(hWnd, uMessage, wParam, lParam); } |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-01-17 03:53 | bugmenot | New Issue | |
2015-01-17 03:53 | bugmenot | Status | new => assigned |
2015-01-17 03:53 | bugmenot | Assigned To | => alfredo |
2015-01-17 16:47 | MaxusR | Note Added: 0007699 | |
2015-06-18 17:29 | bugmenot | Note Added: 0007825 | |
2015-06-18 17:29 | bugmenot | Note Edited: 0007825 |