API(SendInput) v C# – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

API(SendInput) v C# – .NET – Fórum – Programujte.comAPI(SendInput) v C# – .NET – Fórum – Programujte.com

 

rybar730
Newbie
30. 10. 2008   #1
-
0
-

Dobry den, rad bych porosil nekoho o radu ohledne ovladani tohoto APIcka. At delam co delam nemuzu zmacknout tlacitko. Predpokladam ze to asi bude jen nejaka banalita ale ja proste netusim jak. Postupoval jsem podle MSDNka a pinvoke.net ale nemohu se zdarne dobrat k cili.

Ve finale by mel program po klepnuti do jakekoliv textove casti ve windows(i vzdalene sprave) vyslat urcite znaky. Nic mene budu rad kdyby mi aspon nejaka dobra duse ukazala jak posilat tlacitk :-)

Predem Diky

Muj nefunkcni kod(nehlasi chybu a SendInput mi stale vraci hodnotu 0)



[[DllImport("user32.dll", EntryPoint = "SendInput", SetLastError = true)]
static extern uint SendInput(
uint nInputs,
INPUT[] pInputs,
int cbSize);
[DllImport("user32.dll", EntryPoint = "GetMessageExtraInfo", SetLastError = true)]
static extern IntPtr GetMessageExtraInfo();

private enum InputType
{
INPUT_MOUSE = 0,
INPUT_KEYBOARD = 1,
INPUT_HARDWARE = 2,
}

[Flags()]
private enum KEYEVENTF
{
EXTENDEDKEY = 0x0001,
KEYUP = 0x0002,
UNICODE = 0x0004,
SCANCODE = 0x0008,
}

[StructLayout(LayoutKind.Sequential)]
private struct KEYBDINPUT
{
public short wVk;
public short wScan;
public int dwFlags;
public int time;
public IntPtr dwExtraInfo;
}

[StructLayout(LayoutKind.Explicit)]
private struct INPUT
{
[FieldOffset(0)]
public int type;
[FieldOffset(4)]
public KEYBDINPUT ki;
}

//predpokladam ze chyba asi bude nekde zde pac nejak jsem se nedocetl jak nastavit dwFlags aby poslal patricny key(brany z enumu VK)
public void KayPress()
{
INPUT structInput = new INPUT();
structInput.type = (int)InputType.INPUT_KEYBOARD;
structInput.ki.wScan = 0;
structInput.ki.time = 0;
structInput.ki.dwFlags = (int)KEYEVENTF.UNICODE;
structInput.ki.wVk = (short)VK.LWIN;

INPUT[] input = { structInput };
uint neco = SendInput(1, input, Marshal.SizeOf(structInput));
}




Nahlásit jako SPAM
IP: 194.197.79.–
30. 10. 2008   #2
-
0
-
Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

API — založil Anonymní uživatel

Api icq — založil mallox

Zvuk - API — založil polerok

Goo.gl API — založil prespic

Twitter API — založil mr.M

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý