str = Text1.Text 'Str为喊话内容
i = 0
data = StrConv(str, vbfromUnicode)
While i <= UBound(data)
If data(i) < 128 Then
PostMessage hwnd, WM_CHAR, data(i), 0&
PostMessage hwnd, WM_SETFOCUS, 0, 0 '获得窗口焦点
PostMessage hwnd, WM_KEYDOWN, VK_RETURN, MapVirtualKey(VK_RETURN, WM_KEYDOWN) '发送回车键
i = i + 1
Else
PostMessage hwnd, WM_CHAR, data(i), 0&
PostMessage hwnd, WM_CHAR, data(i + 1), 0&
i = i + 2
End If
Wend
自己转肯定要VB和C#都会用啊,,要不就找工具吧。。看有没有。
DLLIMPORT PostMessage所在的DLL,再定义需要的常量
C# code:
int i=0;
string talkStr = talkTBox.Text;
byte[] talkBytes = System.Text.Encoding.Unicode.GetBytes(talkStr);
while (i < talkBytes.Length)
{
if (talkBytes[i] < 128)
{
PostMessage(gameHandle, (int)WinIo.WinMsg.WM_CHAR, talkBytes[i], 0);
i++;
}
else
{
PostMessage(gameHandle, (int)WinIo.WinMsg.WM_CHAR, talkBytes[i], 0);
PostMessage(gameHandle, (int)WinIo.WinMsg.WM_CHAR, talkBytes[i+1], 0);
i = i + 2;
}
}
自己采用的是Set objWMIService = GetObject("winmgmts:\\"&computername&"\root\cimv2"),其中computername是局域网一台电脑的IP或计算机名,但使用这个wmi语句对远程计算机进行操作时 ......