# mausrad bewegung simulieren



## BIG_Muzzy (25. Juli 2005)

Hi
ich habe da eine Frage:

Wie kann ich eine Mausrad-bewegung simulieren,zwecks automatischen scrollen

es müssten etwa 2-3 Mausradstuffen nach unten sein.

Danke im voraus an alle die mir helfen können


----------



## BIG_Muzzy (31. Juli 2005)

kennt sich keiner damit aus, geht das einfach nicht, oder warum hilft mir keiner?
 
ich war schon auf zahlreichen help seiten und niergendwo habe ich soetwas gefunden
das einzige was ich gefunden habe, ist dass es angeblich nicht so einfach gehen soll.  

THX

BIG Muzzy


----------



## Lonesome Walker (1. August 2005)

Sei mir nicht böse, aber Du bist nur zu faul zum Googeln...


----------



## BIG_Muzzy (1. August 2005)

ich hab eh schon einen haufen beim googeln gefunden, aber das sind alles entweder so 5 seiten quellcode oder irgend etwas ähnliches, hatte das gleiche problem schon mit maus-bewegungen und klicks, alle bsp progs sind unglaublich groß, jetzt hatt es nurmehr ein paar zeilen
darum glaube ich dass es mit dem maus rad ähnlich einfach sein müsste.

ich bin in diesem gebiet ziemlich neu, darum kann ich noch nicht sagen welche zeilen ich von den entsprechenden bsp progs brauche. 

für euch kann doch das keine arbeit sein mir die 2 zeilen code zu posten

naja falls keiner will, trotzdem THX


----------



## MLelite (1. August 2005)

ist leider nicht nur eine oder zwei Zeilein code, vielleicht kannste damit etwas anfangen obwohl der code nicht gerade gut programmmiert wurde ; )
http://www.tek-tips.com/viewthread.cfm?qid=902639


----------



## BIG_Muzzy (1. August 2005)

danke 
aber genau so etwas meine ich, ist doch viel zu gross
ich brauch einfach nur 2 stufen nach unten 

kann mir jemand sagen was ich davon weglassen kann?
die maus wird schon genau in das fenster gesetzt nur kicken darf sie nicht, sonst könnte ich mit tastatur pfeil-runter oder bild-runter scrollen

trotzdem normals Danke


----------



## MLelite (2. August 2005)

Wenn du vb 6 hast könnte sein das es nur damit geht http://support.microsoft.com/?id=837910
Zu dem code,  unterteil in einfach erst sind die defenitionen, damit lädts du von windows die benötigten Datein denn vb 6 brauch die bei den meisten anwenungen (hat nach und vorteile (die liegen im system 32 ordner)hast du bereits drauf wenn du vb6 installiert hast), danach kommen die mouse defenitionen 
Mouswhell= &.....   damit legst du die whell taste auf einen wert damit du sie benutzen kannst (bzw so kannst du sie regestrieren) danach gibts noch 3 funktionen die das scrollen ermöglichen. weniger code geht leider nicht, zumindest ist mir nicht bekannt! (hab nichts getestet) hoffe es klappt bei dir


----------



## Shakie (2. August 2005)

Also so wie ich das verstanden habe, will BIG_Muzzy dem Programm vortäuschen, als hätte der User das Mausrad verwendet. Aber die hier geposteten Beispielcodes zeigen doch nur, wie man auf Mausradbewegungen (die der User wirklich gemacht hat) reagieren kann.

@MLelite: Bei deinem Link wird nur beschrieben, wie man das Mausrad in der Entwicklungsumgebung von VB selber aktivieren kann. Der Link war für mich sehr wertvoll, für BIG_Muzzys Problem wird damit aber nicht gelöst.

@BIG_Muzzy: probiere mal, mit der API SendMessage die Nachricht WM_MOUSEWHEEL oder WM_SCROLL an das Fenster zu schicken, wo gescrollt werden soll.


EDIT: Folgender Code könnte dir helfen:

```
Private Const WM_SCROLL = 277
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 
'Code zum Scrollen:
Dim intParameter As Integer
intParameter = 1
SendMessage FensterHandle, WM_SCROLL, intParameter, 0
 
'andere Werte für intParameter (durch Ausprobieren herausgefunden):
'4=Ganz nach oben scrollen
'0=eine Zeile rauf scrollen
'1=eine Zeile runter scrollen
```
Als "FensterHandle" musst du das "hwnd" des Steuerelements oder der Form angeben, an die der Scroll-Befehl geschickt werden soll. Wenn du beispielsweise eine ListBox mit dem Namen "List1" scrollen lassen willst, musst du "List1.hwnd" hinschreiben.


----------



## MLelite (2. August 2005)

ich nup sorry hab das wort simulieren übersehen    aber das sollte ja dann jetzt geklärt sein, und es sind auch nur paar zeilen code


----------



## BIG_Muzzy (2. August 2005)

Hi
danke an alle
hab da aber noch immer ein kleines problem, ich habe keine form sondern ein anderes Programm wie Internet-explorer, windows explorer,office,.....
es genügt allerdings wenn die maus in dem fenster ist und das habe ich bereits mit klicksimulator usw.. gelöst 
was soll ich unter
SendMessage FensterHandle , WM_SCROLL, intParameter, 0
schreiben?
aber danke an alle, habt mir schon mal sehr geholfen

THX
BIG_Muzzy


----------



## Shakie (2. August 2005)

Das wird dann schon etwas komplizierter. Wenn du dich aber damit zufriedenstellst, dass es sich immer um das Fenster handelt, das sich im Vordergrund befindet, dann brauchst du nur die API GetForegroundWindow. Diese API liefert nämlich das FensterHandle des Fensters, dass gerade im Vordergrund ist. Hier mal ein Beispielcode:

```
Private Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
 
 
SendMessage GetForegroundWindow, WM_SCROLL, intParameter, 0
```
 
Hier kannst du sonst noch lernen, wie du das Handle eines beliebigen Fensters ermitteln kannst. Aber probier es erst mal mit "GetForegroundWindow".


----------



## BIG_Muzzy (2. August 2005)

Danke für die schnelle Antwort
werde das gleich ausprobieren

bedeutet das aber, dass mann mit dem vorherigen auch Programme steuern kann ohne das diese im Vordergrund sind?
rein aus interesse mein ich

THX
BIG_Muzzy


----------



## Shakie (2. August 2005)

Klar kann man das. Du brauchst in diesem Fall, also um einen Scroll-Befehl an das Programm zu senden, nur das Handle des entsprechenden Fensters. Dabei muss man aber beachten, dass ein Programm mehrere Fenster haben kann.


----------

