低权限进程向高权限进程发送消息时会返回拒绝访问, windows为我们提供了ChangeWindowMessageFilter, 直接上代码(client.cpp用非管理员启动, server.cpp用管理员启动, 通过SendMessage WM_COPYDATA进行通信)
// client.cpp
// ncLowProcessClient.cpp
#include
#include
#include
using namespace std;
#define NC_TEST_SERVER_CLASS_NAME TEXT("ncTestServerClassName")
#define NC_TEST_CLASS_NAME TEXT("ncTestClientClassName")
#define NC_TEST_WINDOWS_NAME TEXT("ncTestClientWindowsName")
LRESULT CALLBACK WndPron(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
TCHAR ipp[256] = { 0 };
int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
{
WNDCLASSEX wcex = { 0 };
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.l