
26.08.2009, 19:01
|
|
Новичок
Регистрация: 28.11.2007
Сообщений: 13
Провел на форуме: 115313
Репутация:
1
|
|
Я вот начал переводить только не очень получается. Можете не много помочь тут сказано что к операндам типа int нельзя применять && ||.
Код:
[DllImport("user32")]
public static extern int OemKeyScan(int wOemChar);
[DllImport("user32", EntryPoint = "PostMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern bool PostMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
static byte ORD(char ch)
{
return System.Text.Encoding.ASCII.GetBytes(new char[] { ch })[0];
}
static char CHR(byte code)
{
return System.Text.Encoding.ASCII.GetChars(new byte[] { code })[0];
}
public static void SendKey(char Key)
{
ushort ScanCode, vKey, wParam;
int lParam, ConvKey;
bool Shift, Ctrl;
ConvKey = OemKeyScan(ORD(Key));
ScanCode = (ConvKey && 0x000000FF) || 0xFF00;
vKey = ORD(Key);
wParam = vKey;
lParam = (int)ScanCode << 16 || 1;
if ((ConvKey && 0x00020000) != 0)
SendShift(BotContro1l.mem.WindowHandle, true);
if ((ConvKey && 0x00040000) != 0)
SendCtrl(BotContro1l.mem.WindowHandle, true);
PostMessage(BotContro1l.mem.WindowHandle, WM_KEYDOWN, vKey, lParam);
PostMessage(BotContro1l.mem.WindowHandle, WM_CHAR, vKey, lParam);
lParam = lParam || 0xC0000000;
PostMessage(BotContro1l.mem.WindowHandle, WM_KEYUP, vKey, lParam);
if ((ConvKey && 0x00020000) != 0)
SendShift(BotContro1l.mem.WindowHandle, false);
if ((ConvKey && 0x00040000) != 0)
SendCtrl(BotContro1l.mem.WindowHandle, false);
}
|
|
|