login  Naam:   Wachtwoord: 
Registreer je!
 Forum

USER32.DLL Send Message Event (Opgelost)

Offline cyberninjah - 14/04/2009 16:33 (laatste wijziging 14/04/2009 16:38)
Avatar van cyberninjahLid Hey ik heb een probleem met het SendMessage event in C#


Deze code heb ik tot nu toe

  1. [DllImport("user32.dll", CharSet = CharSet.Auto)]
  2. private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
  3.  
  4. [DllImport("user32.dll")]
  5. public static extern int SendMessage(
  6. int hWnd, // handle to destination window
  7. uint Msg, // message
  8. long wParam, // first message parameter
  9. long lParam // second message parameter
  10. );
  11.  
  12. UInt32 WM_KEYDOWN = 0x0100;
  13. UInt32 VK_C = 0x0043;
  14.  
  15. IntPtr handle = FindWindow("notepad",null);
  16.  
  17. MessageBox.Show(handle.ToString());
  18.  
  19. SendMessage((int)handle, WM_KEYDOWN, VK_C, 0);



Wat doet het script wel :

De Window Handle haalt hij wel keurig op voor mij maar verstuurd niet me bericht

Hoop dat iemand kan zeggen wat ik fout doe

6 antwoorden

Gesponsorde links
Offline Ontani - 14/04/2009 19:32
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Hoor je niet iets naar je textfield van notepad te sturen ipv naar de window zelf. Zo ga je niets in je content krijgen te zien.
Offline cyberninjah - 14/04/2009 20:36
Avatar van cyberninjah Lid Ik maak toch een keyevent na of heb ik het nu mis ?

Als goed is moet ik een Keydown event na maken zo dat Notepad denkt dat het ik het via Keyboard invoer.
Offline Ontani - 14/04/2009 22:24
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
deze zou je nog moeten uitvoeren

IntPtr x = FindWindowEx(handle, 0, "Edit", "");

en dan uw sendMessage naar die x doen ipv naar de handle
Offline cyberninjah - 16/04/2009 11:12
Avatar van cyberninjah Lid Hmm dat werkt wel maar dan maak je toch geen Keyboard event na ?

Want het moet uit eindelijk op een ander process gebeuren 

Daar moet hij eigenlijk de Key 9 na bootsen 
Offline Ontani - 16/04/2009 13:09
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
tuurlijk wel maar je handle is de handle van de window en niet van de controls op die window, je wilt een key sturen naar het "tekstvak" van notepad en dat is een Edit control, daarom moet je eerst de handle van dat edit-control zoeken.

Vandaar dat je de handle van het 1e "Edit" control zoek op de window (handle) -> x

En dan pas ga je keyboard events sturen naar x (Editcontrol -> Tekstvak binnen notepad).
Offline cyberninjah - 16/04/2009 14:04 (laatste wijziging 07/05/2009 10:13)
Avatar van cyberninjah Lid Jah maar me doel is om op een spel de key 9 in te laten druken zonder een focus op dat spel te zetten zo dat hij eigenlijk op de achtergrond naar het spel de Key 9 stuurd



Edit:

Het is me gelukt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.185s