高低权限进程通信(ChangeWindowMessageFilter, WM_COPYDATA)

当低权限进程尝试向高权限进程发送消息时,通常会遇到访问拒绝的问题。Windows提供了一个解决方案——ChangeWindowMessageFilter函数,结合WM_COPYDATA消息,允许非管理员进程与管理员进程进行通信。本文通过示例代码(client.cpp和server.cpp)阐述这一过程。
摘要由CSDN通过智能技术生成

低权限进程向高权限进程发送消息时会返回拒绝访问, 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值