Jump to content

Recommended Posts

Posted

I'm a Delphi programmer, and about six months ago, I noticed a strange error in both Delphi and several other applications, such as Snagit, that would freeze.

To identify the cause, I disabled several applications until I realized that "Startallback windows 11" was the culprit. It also freezes when I access the settings and doesn't respond.

The Delphi code I use to locate the taskbar's position is this one, which returns without a position after the error.
 

function GetTaskBarSize: Integer;
Var Data: TAppBarData;
Begin
 Result := 0;

 Data.cbSize := SizeOf(TAppBarData);

 If SHAppBarMessage(ABM_GETTASKBARPOS, Data) = 1 Then
  Result := Data.rc.Bottom - Data.rc.Top;

end;

function GetTaskBarAlignment: TAlign;
var
 Data: TAppBarData;
 ScrW, ScrH: Integer;
begin
 Result := alNone;

 Data.cbSize := SizeOf(TAppBarData);
 ScrW := Screen.Width;
 ScrH := Screen.Height;

 if SHAppBarMessage(ABM_GETTASKBARPOS, Data) = 1 then Begin
  if (Data.rc.Top > ScrH div 2) and (Data.rc.Right >= ScrW) then
   Result := alBottom
  else
   if (Data.rc.Top < ScrH div 2) and (Data.rc.Bottom <= ScrW div 2) then
    Result := alTop
   else
    if (Data.rc.Left < ScrW div 2) and (Data.rc.Top <= 0) then
     Result := alLeft
    else
     Result := alRight;
 End;

end;

 


Posted (edited)

Well you better tell what needs to be done to trigger hung or find where hung is - capture dump or find in debugger directly attached to problematic process

Edited by Tihiy
Posted

Most likely hang is in SHAppBarMessage call, so take explorer.exe process dump to analyze

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...