Crash on sending WM_USER+51 with wParam=1003

Please report only one bug per message!

Moderators: Stefan2, white, sheep, Hacker

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 37417
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2011-10-16, 14:10 UTC

What happens when you choose this menu item
- by mouse?
- by keyboard?

Make sure the cursor is standing on a file before opening the menu.
Author of Total Commander
http://www.ghisler.com

User avatar
MVV
Power Member
Power Member
Posts: 8276
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV » 2011-10-25, 06:08 UTC

Same result for both mouse click and Enter keypress. Directory hotlist blinks and closes, context menu doesn't popup at all.

I call TcMenuPopup.exe via buttonbar button with MNU file as parameter.

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 37417
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2011-10-25, 15:59 UTC

Wait, you reported problem with command Nr. 2500, but now you call an external program?
Author of Total Commander
http://www.ghisler.com

User avatar
MVV
Power Member
Power Member
Posts: 8276
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV » 2011-10-25, 16:27 UTC

Christian, I'm always (within this topic) call 2500 from menu that external tool TcMenuPopup.exe displays. :)

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 37417
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2011-10-27, 13:15 UTC

Ah, I see, I thought that you clicked on the menu item with Nr. 2500 within Total Commander! Maybe the tool should use PostMessage instead of SendMessage?

Does it work via AutoHotkey?
Author of Total Commander
http://www.ghisler.com

User avatar
MVV
Power Member
Power Member
Posts: 8276
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV » 2011-10-27, 13:37 UTC

Doesn't work with PostMessage too.

Can you reproduce it with this tool and this menu file?

I have no AHK and not familiar with it. :)

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 37417
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2011-10-27, 15:02 UTC

Yes, when I call your tool from the button bar.
No, when I call it from the TC command line.
Strange indeed...
Author of Total Commander
http://www.ghisler.com

User avatar
MVV
Power Member
Power Member
Posts: 8276
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV » 2011-10-27, 17:32 UTC

Yes, it is strange. Within TC it works from any place (buttonbar, command line, start menu) but why it doesn't work from external menu... I don't know what differences between internal command execution and execution from window procedure but it seems that it does matter.
Maybe you can debug something? Message processing procedure, opening context menu... also why directory hotlist menu closes immediately after opening...

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 37417
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2011-10-28, 10:20 UTC

I just checked my code, and found the reason: TC ignores message 2500 if it isn't the active window:

Code: Select all

    cm_ContextMenu: if getactivewindow=handle then
        InvokeContextMenu(handle);
This is done because otherwise (if TC is in the background or minimized) this would cause troubles or even a crash.

Try calling SetActiveWindow first.
Author of Total Commander
http://www.ghisler.com

User avatar
MVV
Power Member
Power Member
Posts: 8276
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV » 2011-10-28, 11:53 UTC

Hm-m, it may be the reason why short delay before sending command had worked...

Unfortunately SetActiveWindow can only be used within that window's thread.

It seems that easiest workaround is to call Sleep before sending a command... But what if it is not enough?

I've used following:

Code: Select all

SetForegroundWindow(hTcWnd);
for (int try_count=1000; try_count>0 && GetForegroundWindow()!=hTcWnd; --try_count) Sleep(2);
exec_tc_command(hTcWnd, param);
It works well. :)

Code: Select all

MIME-Version: 1.0
Content-Type: application/octet-stream; name="TcMenuPopupNew.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="TcMenuPopupNew.7z"

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
ABQKAQD3/LdmapXMARUGAQAgCAAAAAA=


User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 37417
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) » 2011-10-30, 15:00 UTC

2MVV
It may be sufficient to close your menu and then just wait until TC is again the foreground window - Windows itself will give it the focus eventually.
Author of Total Commander
http://www.ghisler.com

User avatar
MVV
Power Member
Power Member
Posts: 8276
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV » 2011-10-31, 07:02 UTC

Maybe, but my way is more reliable (who knows that Windows :D), and it is not hard to add single function call. :)

User avatar
TyBontage
Junior Member
Junior Member
Posts: 2
Joined: 2012-02-15, 03:04 UTC
Location: United States

Crash on sending WM_USER51 with wParam 1003

Post by *TyBontage » 2012-02-18, 04:15 UTC

Can you email us and well send directions on how to send your presentation to us so we can test this?

Thanks.

Post Reply