积极答复者
C# 在WIN8.1下的Sendmessage

问题
-
最近想最大化窗口,在WIN7下可以正常使用,但是WIN8.1发现以下问题:
1.首先Process.Start启动设备管理器(或者磁盘管理,计算机管理,目前只是测试,随意选了一些外部的窗体)
2.通过GetForegroundWindow()获取当前窗口的句柄
3.SendMessage(mydisk, WM_SYSCOMMAND, SC_MAXIMIZE, 0)但是使用SC_MAXIMIZE的时候发现无法对以上最大化,但是函数返回的值是0。而且我用SC_CLOSE,还有SC_MINIMIZE都可以关闭和最小化
4.执行SendMessage后用IsZoomed判断是没有最大化的
请问是不是WIN8.1哪里有不一样的地方,还是有别的方法
答案
-
从windows vista开始系统的进程权限更加严格,如果你的程序的权限比对方进程的权限低,则你发送的消息会被过滤(除非该目标进程调用ChangeWindowMessageFilterEx指定过滤或不过滤某些消息 ),你可以看看UAC,ACE,UIPI相关的知识。
- 已标记为答案 doublefire 2014年6月22日 7:24
全部回复
-
从windows vista开始系统的进程权限更加严格,如果你的程序的权限比对方进程的权限低,则你发送的消息会被过滤(除非该目标进程调用ChangeWindowMessageFilterEx指定过滤或不过滤某些消息 ),你可以看看UAC,ACE,UIPI相关的知识。
- 已标记为答案 doublefire 2014年6月22日 7:24