Gå til innhold

Anbefalte innlegg

Du kan jo prøve dette før du legger prosjektet på hyllen:

[DllImport("User32.dll")]//deklarer denne sammen med de andre importene du bruker
public static extern Int32 SendMessage(
int hWnd,              
int Msg,                
int wParam,             
int lParam);

[DllImport("User32.dll")]// det samme gjelder denne
public static extern int FindWindowEx(int hwndParent, int hwndChildAfter, string strClassName, string strWindowName);

iHandle = Win32.FindWindow("Notepad", NULL); // Kall denne for å få handelen til et notepad vindu
childHandle = Win32.FindWindowEx(iHandle, 0, "Edit", null);/*Denne funksjonen må også bli kalt, da du er nødt til å sende input til "edit" vinduet*/

int cHex = 0x00000043;
int cHex2 = 0x002E0001;
int cHex3 = 0x00000063;

public const int WM_KEYDOWN = 0x0100;
public const int WM_CHAR = 0x0102;
public const int WM_KEYUP = 0x0101;

//kall disse når du vil sende input, som i dette tilfellet er bokstaven "c"
SendMessage(childHandle, WM_KEYDOWN, cHex, cHex2);
SendMessage(childHandle, WM_CHAR, cHex3, cHex2);
SendMessage(childHandle, WM_KEYUP, cHex, null);

Husk å forandre parameterne i FindWindow og FindWindowEx funksjonene når du vil sende input til andre prosesser.

Lenke til kommentar
Videoannonse
Annonse

Vel, hovedforskjellen er vel at proseessen ikke må være i fokus, som vil si at du kan sende input mens du gjøre noe annet. Ellers tror jeg at informasjonen som sendes ved hjelp av SendMessage vil virke mer realistisk på prosessen som mottar den, ettersom den sender akkurat den samme informasjonen som ved et tastetrykk. Er usikker på om SendKeys gjør akkurat det.

Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...