小编Dag*_*gob的帖子

以编程方式鼠标单击另一个窗口

是否可以在不将鼠标移动到该位置的情况下以编程方式单击另一个窗口中的位置,即使窗口不在顶部?我想将一种消息发送到另一个窗口以模拟鼠标单击某个位置.

我试图用PostMessage完成这个:

PostMessage(WindowHandle, 0x201, IntPtr.Zero, CreateLParam(300,300));
PostMessage(WindowHandle, 0x202, IntPtr.Zero, CreateLParam(300,300));
Run Code Online (Sandbox Code Playgroud)

我用这种方式创建了CreateLParam函数:

private static IntPtr CreateLParam(int LoWord, int HiWord)
{
     return (IntPtr)((HiWord << 16) | (LoWord & 0xffff));
}
Run Code Online (Sandbox Code Playgroud)

问题是窗口被锁定在他的位置.我认为我的应用程序点击了(1,1)坐标.有人可以帮我解决这个问题吗?

编辑:这是PostMessage:

[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32.dll")]
public static extern bool PostMessage(IntPtr WindowHandle, int Msg, IntPtr wParam, IntPtr lParam);
Run Code Online (Sandbox Code Playgroud)

0x201和0x202分别是WM_LBUTTONDOWN和WM_LBUTTONUP.

c# windows mouse message click

22
推荐指数
2
解决办法
7万
查看次数

通过套接字发送公钥的安全方法

通过套接字将 RSA::PublicKey 发送给另一个用户的安全方法是什么?我想将密钥导出到 ByteQueue 并将字节数组发送给用户,在那里他可以再次构造公钥。

或者这是否会泄漏可能被滥用的信息?

//Generate keys
AutoSeededRandomPool rng;

InvertibleRSAFunction params;
params.GenerateRandomWithKeySize(rng, 3072);

//Create
RSA::PublicKey publicKey(params);

//Save
ByteQueue queue;
publicKey.Save(queue);

byte publicKeyBuffer[1000];
size_t size = queue.Get((byte*)&publicKeyBuffer, sizeof(publicKeyBuffer));

//Load
RSA::PublicKey loadkey;
ByteQueue queue2;
queue2.Put2((byte *)&publicKeyBuffer, size, 0, true);

loadkey.Load(queue2);
Run Code Online (Sandbox Code Playgroud)

cryptography rsa crypto++

6
推荐指数
1
解决办法
1704
查看次数

FPS游戏ping实现

我正在制作FPS(第一人称射击游戏)游戏,我想在游戏中显示玩家的ping(连接延迟).但是这样做的最佳方法是什么?首先我想使用GetTickCount64,但Get Tick Count不准确:

"GetTickCount64函数的分辨率仅限于系统计时器的分辨率,通常在10毫秒到16毫秒的范围内."

我有一个想法,使用time.h来查看1秒内有多少Tick Ticknts.但我认为这不是最好的解决方案.

有人可以帮我弄这个吗?

编辑:我正在制作Windows游戏.(谢谢放松和Lefteris提到我忘了记下来了)

c++ connection frame-rate ping gettickcount

2
推荐指数
1
解决办法
449
查看次数

WM_GETTEXT用法

我正试图在我的应用程序中获取文本字段的状态.但是我没有让它发挥作用.我正在使用"SendMessage"获取"WM_GETTEXT",我将内容保存为char*.

我将char*输出到一个文件,但我只返回"D".这就是我现在拥有的:

LRESULT result;
char * output = (char*)malloc(1024);

result = SendMessage(hwnd,WM_GETTEXT,1024,(LPARAM)output);

ofstream file("test.txt");
file <<  *output;
file.close();

delete [] output;
Run Code Online (Sandbox Code Playgroud)

windows visual-studio-2005 sendmessage visual-c++

0
推荐指数
1
解决办法
1747
查看次数