Español
Foro

Mausklick simulieren

 
- Página 1 -



Timotheus
¡Hola,

Yo habe una Problema. Yo möchte a una cierta Punto en el Programa Ventana una EditBox redactar. El y-Koordinate se por el Mausklick ausgewählt, y el x-K. es 0.
In dieser Editar-Box kann aber ya una Texto posición. Deshalb muss Yo, el Mausklick todavía una vez wiederholen, sobald Edit producido wurde. Dadurch setzt se el Cursor en el Editar genau en el richtige Punto, como en un Multiedit. Como mache Yo el ?

Timo
 
11.09.2004  
 



 
- Página 1 -



Michael
Dell
Sorry, kleiner Irrtum!

Versuchs veces hiermit, lo setzt el Cursor a el Anfang:
KompilierenMarcaSeparación
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
11.09.2004  
 




Timotheus
No bastante, si para Ejemplo el Ratón algo más weg vom linken Fensterrand gedrückt se, entonces muss el Schreibbalken a z.B. el zweiten Punto posición. Kurz y simplemente: ¿Cómo se puede Soy un Mausklick a una cierta Punto simulieren?

Timo
 
12.09.2004  
 




Michael
Dell
Ok, entonces veces así:
KompilierenMarcaSeparación
Def GSC(1)           !User32.dll,GetSysColor
Def ButtonUp(1)      Equ(If(Equ(%Lastmessage,514),1,If(Equ(%Lastmessage,512),SetFocus(&(1)),0)),1)
Def SetCurPosNull(1) SendKey(@&(1),36)  Setzt den Cursor an erste Stelle
Def SetCurPosEnd(1)  SendKey(@&(1),35)  Setzt den Cursor an letzte Stelle

Proc SetCurPos                          Setzt den Cursor an beliebige Stelle

    Parameters hndl&,anz&
    Case Lt(anz&,1)
    SendKey(hndl&,36)

    WhileLoop 1,@&(2),1

        SendKey(hndl&,39)

    EndWhile

EndProc

declare bt01&,ed01&,edak%
Clear bt01&,ed01&,edak%

Proc MakeED

    Parameters HWHndl&,Text$,x%,y%,b%,h%

    If Equ(edak%,0)                                    wenn Edit-Control nicht existent dann...

        ed01& = create(Edit,HWHndl&,Text$,x%,y%,b%,h%)  Erzweuge Edit-Control mit Text inhalt
        SetFocus(ed01&)                                  Setze Focus auf Edit-Control
        SetCurPos(ed01&,8)                              Setzt den Cursor an Stelle 8
        Sleep 1000
        SetCurPos(ed01&,6)                              Setzt den Cursor an Stelle 6
        Sleep 1000
        SetCurPos(ed01&,4)                              Setzt den Cursor an Stelle 4
        Sleep 1000
        SetCurPos(ed01&,2)                              Setzt den Cursor an Stelle 2
        Sleep 1000
        SetCurPosNull(ed01&)                            Setzt den Cursor an erste Stelle
        Sleep 1000
        SetCurPosEnd(ed01&)                             Setzt den Cursor an letzte Stelle
        Sleep 1000
        SetCurPosNull(ed01&)                            Setzt den Cursor an erste Stelle
        Sleep 1000

    EndIf

    Return 1

EndProc

SetTrueColor 1
WindowStyle 26
Window Add(%maxX,10),0-500,66
Cls GSC(15)
bt01& = create(Button,%HWnd,Erstelle Edit,360,10,120,22)
Window 0,0-500,66

WhileNot Or(Equ(%MenuItem,-2),Equ(%MenuItem,-4000))

    GetMessage

    If GetFocus(bt01&)

        If ButtonUp(%HWnd)

            edak% = MakeED(%HWnd,Hallolo, na wie gethts?,10,10,340,22)
            Case edak%: SetFocus(ed01&)

        EndIf

    EndIf

EndWhi
End

Michael...

P.S.: tener Yo alles en el Profano- Ayuda nachgeschlagen!
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
12.09.2004  
 




Timotheus
Nein el auch no!

Hier veces una Demo:
KompilierenMarcaSeparación
Hier fehlt sólo el Def oder Proc SimuliereMausklick. In diesem Ejemplo es el Schreibbalken por el wiederholte clic a el richtigen Punto. Es como si uno en una vorhandenes Editar klickt, entonces setzt se el Balken en efecto automáticamente a el Punto el en el Editar angeklickt wurde.

Timo
 
12.09.2004  
 



So?
KompilierenMarcaSeparación
cls
declare x%,a&,b&

while 1

    waitinput

    if %Mousekey = 1

        x% = %Mousex
        a& = Create(Edit,%Hwnd,Hallo,0,%Mousey - 12,600,25)
        @SENDMESSAGE(a&,$00B1,0,256)
        @SETFOCUS(A&)
        Sleep 1000
        destroyWindow(a&)

    endif

wend


Oder así??
KompilierenMarcaSeparación
 
12.09.2004  
 




Dietmar
Horn
Noch como Ergänzung (a Antwort de Andreas)

DEF @mouse_event(5)!User32,mouse_event

mouse_event(N,dx%,dy%,0,0)

=> löst una künstliche Mausbewegung y una Mausklick de.
=> ha no Rückgabewert

N: son a, welche Botón del ratón gedrückt (simulado) voluntad se

N = $1 - Haga doble clic en simulieren
N = $2 - linke Botón del ratón runterdrücken
N = $4 - linke Botón del ratón loslassen
N = $8 - rechte Botón del ratón runterdrücken
N = $10 - rechte Botón del ratón loslassen
N = $20 - mittlere Botón del ratón runterdrücken (si disponible)
N = $40 - mittlere Botón del ratón loslassen (si disponible)

dx% = x-Koordinate el Mausposition (oder deren Änderung, wo ellos de el derzeitigen Position de gesehen, hingesetzt voluntad se)
dy% = y-Koordinate el Mausposition (oder deren ...)

Der 4. y 5. Parámetro haben no Bedeutung, deswegen also jeweils en 0 conjunto.

Eventuell mußt Usted todavía una bißchen con el Mauskoordinaten experimentieren, weiß no, si esta relativ oder absolut son, si bezogen en el Desktop, la ventana principal, oder el Dialogfenster. Versuche esta auch veces $8000 en el Werten para N a addieren, also N = $8000 + $2, oder N = $2 conjunto. $8000 = MOUSEEVENTF_ABSOLUTE

Saludo
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
12.09.2004  
 




Timotheus
Gracias

Timo
 
12.09.2004  
 




Uwe
''Pascal''
Niemeier
¡Hola Personas!

Gibts porque el API mouse_event  bajo XP/NT überhaupt todavía?
Zitat de MSDN:


The mouse_event function synthesizes mouse motion and button clicks.
Windows NT: This function has been superseded. Use SendInput instead.


SeeYou
Pascal
 
13.09.2004  
 




Michael
Dell
Microsoft quería mouse_event ya früher sustituir, el es jedenfalls así en el WinHlp no Win32s. Yo denk de Supportgründen funktioniert lo en el Moment todavía, uno debería wohl en Zukunft darauf verzichten. In Longhorn Será mejor que te va probablemente no mehr ir.

Michael...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
13.09.2004  
 



 
- Página 2 -



Michael
Dell
Hier todos sin mouse_event:
KompilierenMarcaSeparación
Declare a&,x&,y&,Fontx&,EDminX&
FontX&  = 8                                                 Font- Breite
EDminX& = 10                                                Edit- Control Startpunkt (X min)
Def SetCurMark(2) sendmessage(@&(1),$00B1,@&(2),0)          Setzt Markierung

Proc SetCurPos                                              Setzt den Cursor an beliebige Stelle

    Parameters hndl&,anz&
    SetFocus(hndl&)
    SendKey(hndl&,36)
    Case Lt(anz&,1): Return

    WhileLoop 1,@&(2),1

        SendKey(hndl&,39)

    EndWhile

EndProc

Proc CalkCurPos

    Parameters EDhndl&
    Declare p1&,p2&

    If Gt(x&,Add(EDminX&,Mul(Len(GetText$(EDhndl&)),FontX&)))  Mauszeiger hinter Textende

        p1& = Len(GetText$(EDhndl&))

    ElseIf Gt(x&,EDminX&)                                     Mauszeiger im Text

        p1& = Int(Div(Sub(x&,EDminX&),FontX&))
        Else                                                      Mauszeiger vor Text
        p1& = 0

    EndIf

    SetCurPos(EDhndl&,p1&)                                    Setzt den Cursor auf Mausposition
    SetCurMark(EDhndl&,p1&)                                   Setzt Markierung 0 bis Mausposition

EndProc

CLS
UseFont Arial,16,FontX&,1,0,0
SetDialogFont 1

while 1

    Waitinput

    if %Mousekey = 1

        x& = %Mousex
        y& = %Mousey
        a& = Create(Edit,%Hwnd,Hallolo, na wie geht`s den so?,EDminX&,y& - 12,600,25)
        CalkCurPos(a&)
        Sleep 2000
        destroyWindow(a&)

    endif

wend

SetDialogFont 0
s4 href='./../../funktionsreferenzen/XProfan/end/'>End

Nur en a sehn el lo auch en reinem Profano va.

Michael...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
14.09.2004  
 



¡Hola Michael...

Vollkommen correcto!! El Message es ya en mi ersten Ver código fuente una bischen más oben como Alternative a MOUSE_EVENT. Aber él quería así necesariamente una Haga doble clic en.
Yo sags sí - bastante unideal y unübersichtlich, si uno el Ver código fuente no inmediatamente sieht...
 
14.09.2004  
 



Jaja OK AH, Yo habs sí verstanden.

Yo überleg me sí ya qué....

IF
 
14.09.2004  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.555 Views

Untitledvor 0 min.
Sven Bader04.07.2023
H.Brill06.02.2022
AndreasS29.11.2018
RICOSCH17.06.2016
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie