Einen GUI "Durchclickbar" machen

  • Hi leute, ich habe eine komplizierte frage, zumindest denke ich das es kompliziert ist :S

    Also ich habe einen GUI, um genau zu sein 4 davon, ich will aber nun "durch sie durch klicken"...

    z.B. der gui is aufm desktop aktiv, und drunter ist z.B. der Arbeitsplatz, ich drücke wie gewohnt auf das icon vom arbeitsplatz und er geht auf, nur das der guy trotzdem drüber ist.

    ich hoffe ihr versteht meine frage.^^

  • hier noch der code :

    [autoit]


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

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

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

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    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)

    [/autoit][autoit][/autoit][autoit]

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

    [/autoit][autoit][/autoit][autoit]

    $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)

    [/autoit][autoit][/autoit][autoit]

    $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

    [/autoit][autoit][/autoit][autoit]

    $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 )

    [/autoit][autoit][/autoit][autoit]

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

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    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

    [/autoit]

    mein derzeitiger^^

    Einmal editiert, zuletzt von Busti (10. November 2006 um 20:35)

  • Bump??
    um richtige Hilfe zu bekommen, bitte mach ein Paar kommentare mindestens an deinem Skript, damit man lernt, was du im jedem Stufe willst .

    was du willst waere?:

    [autoit]


    GUICtrlCreateButton($ButtonClicked,33,33,33....)
    SELECT

    [/autoit][autoit][/autoit][autoit]

    CASE $ButtonClicked
    GUISetState(@SW_HIDE)
    $pos = MouseGetPos()
    MOUSECLICK("left",$pos[0] ,& $pos[1]) ;simulate click
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit][/autoit]

    Einmal editiert, zuletzt von BasicOs (15. November 2006 um 04:26)

  • ....

    so gehts auch :schild4:


    er will das GUI aber nicht kurz weg und wieder da, es soll IMMER DA SEIN und man soll DURCHKLICKEN können...


    gui weg, klick, gui her ist sicher nicht die erhoffte lösung :P

  • Hm wenn immer ne Control angeklickt wird könntest du das so machen:

    Wenn Maus1 geklickt dann
    MouseGetPos()
    FindControlByCoord()
    ControlKlick()
    Ende

    Die UDF zum Control finden aufgrund von Coordinaten gibts im Englischen Forum.