Impossible to do mouse clicks behind fade?

djvj

Administrator
Staff member
Developer
It will not work with that class, it's built using flash if I'm correct. SO it's not using standard windows calls. Reason you guys having so much trouble with the previous attempts.
 

Dime333

Active member
RL Member
It will not work with that class, it's built using flash if I'm correct. SO it's not using standard windows calls. Reason you guys having so much trouble with the previous attempts.

OK. That sucks. Thanks for the info. If you could try to make the fade screen "click-through" for me, I'd really appreciate it. Or would it be possible to make a small "hole" in the fade screen so that a few pixels are visable of the play-button?
 

bleasby

RocketLauncher Developer
Developer
OK. That sucks. Thanks for the info. If you could try to make the fade screen "click-through" for me, I'd really appreciate it. Or would it be possible to make a small "hole" in the fade screen so that a few pixels are visable of the play-button?

Dime, that cannot be done sorry. Please check your PM.

I don't want to give false hopes, but maybe I could add a new option to build a "clickable-through" fade screens.
I can't get into that right now but I will try to take a look at it soon.
 

djvj

Administrator
Staff member
Developer
Bleasby there is no point in even running fade then. He should just turn it off for that game.

Sent from my SM-N910V using Tapatalk
 

Dime333

Active member
RL Member
I don't want to give false hopes, but maybe I could add a new option to build a "clickable-through" fade screens.
I can't get into that right now but I will try to take a look at it soon.

That would be great. Thanks.
 

t824601

Member
RL Member
Resurrecting's this thread from the dead ;).

Trying to do the same thing, but with the Chiaki PS4 remote play.

I found this code:

Code:
ControlClick2(X, Y, WinTitle="", WinText="", ExcludeTitle="", ExcludeText="")  
{  
  hwnd:=ControlFromPoint(X, Y, WinTitle, WinText, cX, cY  
                             , ExcludeTitle, ExcludeText)  
  PostMessage, 0x201, 0, cX&0xFFFF | cY<<16,, ahk_id %hwnd% ; WM_LBUTTONDOWN  
  PostMessage, 0x202, 0, cX&0xFFFF | cY<<16,, ahk_id %hwnd% ; WM_LBUTTONUP  
  PostMessage, 0x203, 0, cX&0xFFFF | cY<<16,, ahk_id %hwnd% ; WM_LBUTTONDBLCLCK  
  PostMessage, 0x202, 0, cX&0xFFFF | cY<<16,, ahk_id %hwnd% ; WM_LBUTTONUP  
}  


ControlFromPoint(X, Y, WinTitle="", WinText="", ByRef cX="", ByRef cY="", ExcludeTitle="", ExcludeText="")  
{  
    static EnumChildFindPointProc=0  
    if !EnumChildFindPointProc  
        EnumChildFindPointProc := RegisterCallback("EnumChildFindPoint","Fast")  
     
    if !(target_window := WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText))  
        return false  
     
    VarSetCapacity(rect, 16)  
    DllCall("GetWindowRect","uint",target_window,"uint",&rect)  
    VarSetCapacity(pah, 36, 0)  
    NumPut(X + NumGet(rect,0,"int"), pah,0,"int")  
    NumPut(Y + NumGet(rect,4,"int"), pah,4,"int")  
    DllCall("EnumChildWindows","uint",target_window,"uint",EnumChildFindPointProc,"uint",&pah)  
    control_window := NumGet(pah,24) ? NumGet(pah,24) : target_window  
    DllCall("ScreenToClient","uint",control_window,"uint",&pah)  
    cX:=NumGet(pah,0,"int"), cY:=NumGet(pah,4,"int")  
    return control_window  
}

EnumChildFindPoint(aWnd, lParam)  
{  
    if !DllCall("IsWindowVisible","uint",aWnd)  
        return true  
    VarSetCapacity(rect, 16)  
    if !DllCall("GetWindowRect","uint",aWnd,"uint",&rect)  
        return true  
    pt_x:=NumGet(lParam+0,0,"int"), pt_y:=NumGet(lParam+0,4,"int")  
    rect_left:=NumGet(rect,0,"int"), rect_right:=NumGet(rect,8,"int")  
    rect_top:=NumGet(rect,4,"int"), rect_bottom:=NumGet(rect,12,"int")  
    if (pt_x >= rect_left && pt_x <= rect_right && pt_y >= rect_top && pt_y <= rect_bottom)  
    {  
        center_x := rect_left + (rect_right - rect_left) / 2  
        center_y := rect_top + (rect_bottom - rect_top) / 2  
        distance := Sqrt((pt_x-center_x)**2 + (pt_y-center_y)**2)  
        update_it := !NumGet(lParam+24)  
        if (!update_it)  
        {  
            rect_found_left:=NumGet(lParam+8,0,"int"), rect_found_right:=NumGet(lParam+8,8,"int")  
            rect_found_top:=NumGet(lParam+8,4,"int"), rect_found_bottom:=NumGet(lParam+8,12,"int")  
            if (rect_left >= rect_found_left && rect_right <= rect_found_right  
                && rect_top >= rect_found_top && rect_bottom <= rect_found_bottom)  
                update_it := true  
            else if (distance < NumGet(lParam+28,0,"double")  
                && (rect_found_left < rect_left || rect_found_right > rect_right  
                 || rect_found_top < rect_top || rect_found_bottom > rect_bottom))  
                 update_it := true  
        }  
        if (update_it)  
        {  
            NumPut(aWnd, lParam+24)  
            DllCall("RtlMoveMemory","uint",lParam+8,"uint",&rect,"uint",16)  
            NumPut(distance, lParam+28, 0, "double")  
        }  
    }  
    return true  
}



ControlClick2(20, 50, "Chiaki")


Anyone savvy enough to tell me why the above code is not working? This is to start a chiaki stream by double clicking on the PS4 stream to start it via Rocketlauncher AHK script in Hyperspin.

Compiled the ahk and running in windows to test, I get no errors, but I also don't get the stream starting with the Chiaki window opened. Anyone has any idea what I could be missing?

PS4 Chiaki official site : https://git.sr.ht/~thestr4ng3r/chiaki

Thank you!!
 
Last edited:
Top