Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 241169 (2605)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Mausbutton simulieren
M.Heinemann
| Datum:04.05.02 16:43 (info@heinemaennchen.de) |
Hat schon mal irgendwer versucht, einen der Mausbutton zu simulieren. In der Prospeed DLL gibt es eine Funktion, mit der man feststellen kann, welche Taste gedrückt wurde. Dies zeigt bei dem linken Mausbutton eine 1. Wenn ich nun mit folgendem Quelltext versuche, diesen Mausbutton zu simulieren, funktioniert dies allerdings nicht. declare akt_window& akt_window& = @GetActiveWindow() @SendKey(akt_window&,1) end Hat irgendwer Erfahrungen damit ??? Wäre nett, wenn ihr mir dann antworten könntet. Habt vielen Dank. Mfg M.Heinemann
Rolf Koch
| Datum:04.05.02 18:34 (webmaster@rokosoft.de) |
Hallöchen, versuchs mal hiermit, vielleicht kannste es ja gebrauchen.
    declare ende%,x%,y%,button%,listbox%,anzeig$
    def @SetMouse(2) !"USER32","SetCursorPos"
    x%=100
    y%=100
    cls
    Loadbmp "C:\WINDOWS\SETUP.BMP",0,0;0
    Windowtitle "ENDE TASTE ESCAPE"
    Let Button%=@CREATE("BUTTON",%hwnd ,"anderes Hintergrundbild",330 ,290 ,200 ,30)
    Let Listbox%=@CREATE("LISTBOX",%hwnd ,"",75 ,180 ,130 ,70)
    UseFont "Times New Roman",25,0,0,1,0
    TextColor RGB(255,255,0),-1
    anzeig$="Um ein neues Bild anzuzeigen"
    Drawtext 140,13,anzeig$
    TextColor RGB(0,0,0),-1
    Drawtext 142,10,anzeig$
    ClearList
    @AddString(Listbox%,"Bild 1")
    @AddString(Listbox%,"Bild 2")
    @AddString(Listbox%,"Bild 3")
    @AddString(Listbox%,"Bild 4")
    whilenot equ(%scankey,27)
     if lt(x%,350)
       inc x%
       sleep 5
       @SetMouse(x%,100)
       if equ(x%,320)
       Loadbmp "C:\WINDOWS\SETUP.BMP",0,0;0
       RePaint
           TextColor RGB(255,255,0),-1
           anzeig$="klicken Sie einfach auf den Button..."
           Drawtext 140,13,anzeig$
           TextColor RGB(0,0,0),-1
           Drawtext 142,10,anzeig$
       endif

     elseif equ(x%,350)
       if neq(y%,350)
          inc y%
          sleep 5
          @SetMouse(x%,y%)
       elseif equ(y%,350)
          Windowtitle "MAUS DRÜCKEN"
          sleep 500
          SendMessage (button%,513,0,0)
          sleep 500
          locate 10,10
          Windowtitle "MAUS LOSLASSEN"
          SendMessage (button%,514,0,0)
          Loadbmp "C:\WINDOWS\WOLKEN.BMP",0,0;0
          RePaint
          setfocus (%hwnd)
          sleep 1000
          whilenot equ(x%,128)
             case equ(%scankey,27):end
             if equ(x%,310)
                Loadbmp "C:\WINDOWS\WOLKEN.BMP",0,0;0
                RePaint
                TextColor RGB(255,255,0),-1
                anzeig$="Wollen Sie ein kleines Bild anzeigen?"
                Drawtext 140,13,anzeig$
                TextColor RGB(0,0,0),-1
                Drawtext 142,10,anzeig$
             endif
             dec x%
             sleep 5
             @SetMouse(x%,y%)
             wend
             whilenot equ(y%,245)
             case equ(%scankey,27):end
             if equ(y%,340)
                Loadbmp "C:\WINDOWS\WOLKEN.BMP",0,0;0
                RePaint
                TextColor RGB(255,255,0),-1
                anzeig$="Klicken Sie einfach in die Bildliste"
                Drawtext 140,13,anzeig$
                TextColor RGB(0,0,0),-1
                Drawtext 142,10,anzeig$
             endif
    	    dec y%
                sleep 5
                @SetMouse(x%,y%)
             wend
             locate 10,10
             Windowtitle "Eintrag 2 markieren"
             sleep 500
             SendMessage(Listbox%,$0186,1,0) 'LB_SETCURSEL
                Loadbmp "C:\WINDOWS\WOLKEN.BMP",0,0;0
                RePaint
                TextColor RGB(255,255,0),-1
                anzeig$="Viel Spaß mit dem Programm!"
                Drawtext 140,13,anzeig$
                TextColor RGB(0,0,0),-1
                Drawtext 142,10,anzeig$
                LoadBmp "C:\WINDOWS\KACHELN.BMP",50,50;0
            sleep 4000
             end
       endif
     endif

    wend
M.Heinemann
| Datum:04.05.02 18:52 (info@heinemaennchen.de) |
Das ist schon mal ein guten Ansatz. Danke. Aber das Problem ist, das ich das Handle des Objects brauche, worauf ich den Mausklick anwenden möchte. Was ich möchte ist folgendes: Ich habe zum Beispiel einen gewissen Text im Editor geöffnet. Nun setze ich den Mauszeiger per Befehl an eine gewisse Textstelle im Editorfenster und möchte, das dort der Text Cursor erscheint. Geht doch manuell mit der Maus auch (hinbewegen und klicken). Habt ihr noch eine Idee? Wäre sehr dankbar. Bis dann.
John Schroeter
| Datum:05.05.02 01:17 |
N'abend. Auch ich stand vor diesem Problem, und bis auf das oben aufgeführte Provisorium habe ich bis heute nichts gefunden. Die Treiber meiner USB-Maus müssen Windows doch auch mitteilen, dass ein Mausclick getätigt wurde. Es würde mich nicht wundern wenn es irgendeine undokumentierte WinAPI-Funktion des Rätsels Lösung wäre... Mfg John Schroeter
Dr. Mabuse
| Datum:05.05.02 14:21 |
Na vielleicht sollten wir mal unseren API Guru Thorsten fragen ?
M.Heinemann
| Datum: 05.05.02 17:17 (info@heinemaennchen.de) |
So, nach Stundenlager arbeit nun doch gefunden: Den linken Mausbutton simuliert man so: Def mouse_event(5) !"USER32","mouse_event" mouse_event(2, 0, 0, 0, 0); 'Left Button down mouse_event(3, 0, 0, 0, 0); 'Left Button up So, wers gebrauchen kann, sollte sich das mal schnell abspeichern. Ist echt schwer zu finden. Aber trotzdem danke für eure Hilfe. Mfg M.Heinemann

| Zurück zur Übersicht