當前位置:編程學習大全網 - 源碼下載 - winio模擬鼠標這代碼哪裏不對?

winio模擬鼠標這代碼哪裏不對?

看看這個 , using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

namespace Iislove.ClassLibrary

{

public class WinIo

{

public const int KBC_KEY_CMD = 0x64;

public const int KBC_KEY_DATA = 0x60;

[DllImport("winio.dll")]

public static extern bool InitializeWinIo();

[DllImport("winio.dll")]

public static extern bool GetPortVal(IntPtr wPortAddr, out int pdwPortVal, byte bSize);

[DllImport("winio.dll")]

public static extern bool SetPortVal(uint wPortAddr, IntPtr dwPortVal, byte bSize);

[DllImport("winio.dll")]

public static extern byte MapPhysToLin(byte pbPhysAddr, uint dwPhysSize, IntPtr PhysicalMemoryHandle);

[DllImport("winio.dll")]

public static extern bool UnmapPhysicalMemory(IntPtr PhysicalMemoryHandle, byte pbLinAddr);

[DllImport("winio.dll")]

public static extern bool GetPhysLong(IntPtr pbPhysAddr, byte pdwPhysVal);

[DllImport("winio.dll")]

public static extern bool SetPhysLong(IntPtr pbPhysAddr, byte dwPhysVal);

[DllImport("winio.dll")]

public static extern void ShutdownWinIo();

[DllImport("user32.dll")]

public static extern int MapVirtualKey(uint Ucode, uint uMapType);

public void sendwinio()

{

if (InitializeWinIo())

{

KBCWait4IBE();

}

}

///等待鍵盤緩沖區為空

private void KBCWait4IBE()

{

int dwVal = 0;

do

{

bool flag = GetPortVal((IntPtr)0x64, out dwVal, 1);

}

while ((dwVal & 0x2) > 0);

}

/// 模擬鍵盤標按下

public void MykeyDown(int vKeyCoad)

{

int btScancode = 0;

btScancode = MapVirtualKey((byte)vKeyCoad, 0);

KBCWait4IBE(); // 等待鍵盤緩沖區為空

SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1);// 發送命令

KBCWait4IBE();

SetPortVal(KBC_KEY_DATA, (IntPtr)0xe2, 1);// 寫入按鍵信息

KBCWait4IBE(); // '等待鍵盤緩沖區為空

SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1);// '發送鍵盤寫入命令

KBCWait4IBE();

SetPortVal(KBC_KEY_DATA, (IntPtr)btScancode, 1);// '寫入按下鍵

}

/// 模擬鍵盤彈出

public void MykeyUp(int vKeyCoad)

{

int btScancode = 0;

btScancode = MapVirtualKey((byte)vKeyCoad, 0);

KBCWait4IBE(); // '等待鍵盤緩沖區為空

SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1); //'發送鍵盤寫入命令

KBCWait4IBE();

SetPortVal(KBC_KEY_DATA, (IntPtr)0xe0, 1);// '寫入按鍵信息

KBCWait4IBE(); // '等待鍵盤緩沖區為空

SetPortVal(KBC_KEY_CMD, (IntPtr)0xD2, 1); //'發送寫入命令

KBCWait4IBE();

SetPortVal(KBC_KEY_DATA, (IntPtr)btScancode, 1);// '寫入釋放鍵

}

/// 模擬鼠標按下

public void MyMouseDown(int vKeyCoad)

{

int btScancode = 0;

btScancode = MapVirtualKey((byte)vKeyCoad, 0);

KBCWait4IBE(); // '等待鍵盤緩沖區為空

SetPortVal(KBC_KEY_CMD, (IntPtr)0xD3, 1);// '發送寫入命令

KBCWait4IBE();

SetPortVal(KBC_KEY_DATA, (IntPtr)(btScancode | 0x80), 1);// '寫入信息按下鍵

}

/// 模擬鼠標彈出

public void MyMouseUp(int vKeyCoad)

{

int btScancode = 0;

btScancode = MapVirtualKey((byte)vKeyCoad, 0);

KBCWait4IBE(); // '等待鍵盤緩沖區為空

SetPortVal(KBC_KEY_CMD, (IntPtr)0xD3, 1); //'發送寫入命令

KBCWait4IBE();

SetPortVal(KBC_KEY_DATA, (IntPtr)(btScancode | 0x80), 1);// '寫入信息釋放鍵

  • 上一篇:通用表單註冊系統源代碼
  • 下一篇:好看的電影10個就好 謝謝!
  • copyright 2024編程學習大全網