Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Mousehook, if mouseUP

Postades av 2010-09-02 22:18:31 - Albert Webb, i forum c# (c-sharp), Tråden har 2 Kommentarer och lästs av 1372 personer

Hej!

http://support.microsoft.com/default.aspx?scid=kb;en-us;318804

Jag följde den "tutorialen" ok det fungerar som det ska, vid en musrörelse så körs funktionen och skriver ut musen X och Y position.
Nu vet jag dock inte hur jag gör för att funktionen bara ska köras om man har tryck på musknappen.

Jag hoppas att ni kan hjälpa mig med det:

if (nCode < 0)
{
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
else
{
mouseClick();

return CallNextHookEx(hHook, nCode, wParam, lParam);
}

den delen koden gör så att mouseClick(); körs när man rör musen, nu vill jag på något sätt, antagligen med en if sats kolla ifall man trycker ner eller släpper upp musknappen, i så fall ska funktionen köras inte annars.

Hoppas ni kna hjälpa mig med det :)

Tack


Svara

Sv: Mousehook, if mouseUP

Postades av 2010-09-03 14:43:59 - André Claesson

private const int WM_LBUTTONUP = 0x0202;
...
if (nCode < 0) 
    { 
        return CallNextHookEx(hHook, nCode, wParam, lParam); 
    } 
    else 
    {
        if (wParam.ToInt32() == WM_LBUTTONUP)
            mouseClick(); 
                 
        return CallNextHookEx(hHook, nCode, wParam, lParam); 
    }


Svara

Sv:Mousehook, if mouseUP

Postades av 2010-09-06 20:36:09 - Albert Webb

Tack för ditt svar:

Jag har löst det mesta nu förutom en enstaka grej :/


//If someone listens to click and a click is happened
if (s_MouseClick != null && clickCount > 0)
{
if (!mouseWasDown)
{
mouseWasDown = true; // ignore duplicate mouse down events
s_MouseClick.Invoke(null, e);
mouseEvents.mouseClick(button);
}
else
{
if (mouseEvents._JustClicked == false)
{
mouseWasDown = false;
}
}
}






class MouseEvents
{
[DllImport("user32.dll")]
private static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, UIntPtr dwExtraInfo);

private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;

public bool _JustClicked;

public void mouseClick(MouseButtons button)
{
if (!_JustClicked)
{
//Call the imported function with the cursor's current position
int X = Cursor.Position.X;
int Y = Cursor.Position.Y;

if (button == MouseButtons.Left)
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, UIntPtr.Zero);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, UIntPtr.Zero);

}
else
{
//mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, X, Y, 0, UIntPtr.Zero);
}
_JustClicked = true;
}
else
{
_JustClicked = false; // don't fire it again since we just did that.
}

}
}


Alla filer kan hämtas på: http://www.webbhelp.se/PlayersDream.rar

Problemet nu är att när man trycker på musknappen så simulerar koden 1 klick och och sen händer inget mer, så ska det vara, dock så: lägger jag till så att när jag trycker på musknappen så ska den simulera 2 stycken klick istället för 1, då klickar den ca 15-20 klick, nånting buggar!

Jag skulle blivit jätteglad om ni kollade i min kod, i filerna: hookmanager.callbacks och mouseevents, där är koderna jag arbetar med mouseevents är den som simulerar click, och hookmanager.callbacks är den som lyssnaar efter klick


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 614
27 953
271 709
524
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies