Jump to content

How to make a gui "thruh-clickable" ?


Busti
 Share

Recommended Posts

You can catch the position of the click, quickly change focus, send the click to appropriate location, and then return focus.

i tested something like this, but thats not what i need, i need to click thrugh the guy, it even shall not get focus, it just draws something, but shall not be clickable1^^

My UDF's : Startet on : 06.06.2006_CaseSearchOrReplaceStr();~> Searches OR Replaces a String,;~> With or Without Casesensivity
Link to comment
Share on other sites

  • 4 weeks later...

wtf :S i dont want to click minimized in a window... i want to click through a autoit made gui.

Try showing us what you have so far, what you mean by click through.

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

#include <GuiConstants.au3>
#include <misc.au3>
HotKeySet( "{ESC}" , "eeee" )


$GUI = GUICreate("TEHREALWHATTHE", @DesktopHeight, @DesktopWidth, 0, 0, $WS_POPUP)


Dim $g[5],$x[5],$y[5],$rx,$ry
$Size=WinGetClientSize("")
$g[1]=_Draw($GUI,1,10,$Size[0]/2,$Size[1]/2-15)
$g[2]=_Draw($GUI,1,10,$Size[0]/2,$Size[1]/2+5)
$g[3]=_Draw($GUI,10,1,$Size[0]/2-14,$Size[1]/2)
$g[4]=_Draw($GUI,10,1,$Size[0]/2+5,$Size[1]/2)

$rSize=WinGetCaretPos()
$rx=$rSize[0]
$ry=$rSize[1]

$Size=WinGetClientSize("")
$x[1]=$rx+$Size[0];/2
$x[2]=$rx+$Size[0];/2
$x[3]=$rx+$Size[0]-15;/2-15
$x[4]=$rx+$Size[0]+5;/2+5
$y[1]=$ry+$Size[1]-14;/2-14
$y[2]=$ry+$Size[1]+5;/2+5
$y[3]=$ry+$Size[1];/2
$y[4]=$ry+$Size[1];/2
_MoveXHair($g,$x,$y)

$m=1
While 1
    If $m = 1 Then
        $Size=WinGetClientSize("")
        $rSize=WinGetCaretPos()
        If IsArray( $Size ) Then
            $rx=$rSize[0]
            $ry=$rSize[1]
            $x[1]=$rx+$Size[0]/2
            $x[2]=$rx+$Size[0]/2
            $x[3]=$rx+$Size[0]/2-15;/2-15
            $x[4]=$rx+$Size[0]/2+5;/2+5
            $y[1]=$ry+$Size[1]/2-14;/2-14
            $y[2]=$ry+$Size[1]/2+5;/2+5
            $y[3]=$ry+$Size[1]/2
            $y[4]=$ry+$Size[1]/2
            #cs
            $x[1]=$Size[0]/2
            $x[2]=$Size[0]/2
            $x[3]=$Size[0]/2-15
            $x[4]=$Size[0]/2+5
            $y[1]=$Size[1]/2-14
            $y[2]=$Size[1]/2+5
            $y[3]=$Size[1]/2
            $y[4]=$Size[1]/2
            #ce
            _MoveXHair($g,$x,$y)
        EndIf
    ElseIf $m = 2 Then
        $x[1]=MouseGetPos(0)
        $x[2]=MouseGetPos(0)
        $x[3]=MouseGetPos(0)-15
        $x[4]=MouseGetPos(0)+5

        $y[1]=MouseGetPos(1)-14
        $y[2]=MouseGetPos(1)+5
        $y[3]=MouseGetPos(1)
        $y[4]=MouseGetPos(1)
        _MoveXHair($g,$x,$y)
    EndIf
    Sleep(1) 
WEnd
Func _MoveXHair( $array , $xmovear , $ymovear )

    For $i = 1 To (UBound($array)-1)
        WinMove( $array[$i] , "" , $xmovear[$i] , $ymovear[$i] )
    Next

EndFunc

Func _Draw($g,$w,$h,$x,$y,$c=0xFF0000)
    $Size=WinGetClientSize( "" )
    $rnd = Random( 1,9999999999999,1 )
    $g=GUICreate("WAHTTEHFUCKZ0R"&$rnd, $w, $h, $x, $y, $WS_POPUP, -1 , $g)
    WinSetOnTop( "WAHTTEHFUCKZ0R"&$rnd , "" , 1 )
    GUISetBkColor($c)
    GUISetState(@SW_SHOW)
    ;GUISetState($GUI_FOCUS)
    Return "WAHTTEHFUCKZ0R"&$rnd
EndFunc
Func eeee()
    Exit
EndFunc
#cs
[DllImport("user32.dll", EntryPoint="SetWindowLongA")]
private static extern int SetWindowLong (int hwnd, int nIndex, int dwNewLong);
#ce

My UDF's : Startet on : 06.06.2006_CaseSearchOrReplaceStr();~> Searches OR Replaces a String,;~> With or Without Casesensivity
Link to comment
Share on other sites

push...,this is going 2 be lame :s

your sample code is doing nothing (probably you should add GUISetState() somewhere), and I still don't understand what you mean by "thruh-clickable".

Cheers

Kurt

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

I think @busti wants to create a gui (topmost, seethrough) covering the entire screen. When his gui captures a gui. He wants to transferee that click to the window it belongs to underneath. Say he creates something shading the screen like the shade you get when you do a shutdown. I have seen it done in VB6 and that implementation was not for the faint at hart.

Sorry @busti no easy answer. At least not from me. ;) The long answer is dllcall, positions, translate position to window belowe in z-order. Check taht it is the one on top. Send the message to that window with position transposed to the window coordinate system.

Link to comment
Share on other sites

*pushcry*

did you answer my question??

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

your sample code is doing nothing (probably you should add GUISetState() somewhere), and I still don't understand what you mean by "thruh-clickable".

Cheers

Kurt

You need to click in a window...or on the desktop or somewhere it works 100%

My UDF's : Startet on : 06.06.2006_CaseSearchOrReplaceStr();~> Searches OR Replaces a String,;~> With or Without Casesensivity
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

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