文号
t18117
阅读
10920
回复
24
收藏
4
(CPP)奇怪的问题
2009/07/31
IP:浙江
某控制台应用程序有如下函数:

void abcdefg(){
    HDC hDC = ::GetDC(NULL);
    int clr = ::GetPixel(hDC, 400, 300);
    if(clr==11054548|10725068|10725577|9344184|7767202){
        keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
        keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
    }
    else{
        return ;
    }
}
可不管屏幕上那个点颜色如何,都会执行
keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
        keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
很奇怪…………
phpskycn作者
17年6个月前IP:未同步
134312
3楼
引用第1楼破93于2009-07-31 18:14发表的  :
排错提示:
先
printf("%d",clr);
看看数值有无变化 没有就**去吧

额,控制台程序不能这样的吧
用AfxMessageBox(clr);每次都报错(编译通过,运行时报错)
引用
评论
phpskycn作者
17年6个月前IP:未同步
134314
4楼
引用第2楼破93于2009-07-31 18:16发表的  :
还有,写11054548|10725068|10725577|9344184|7767202干啥,直接写16760831不就完了 = =

…………
当某点是上面这几种颜色中的一种时
做某事
引用
评论
phpskycn作者
17年6个月前IP:未同步
134319
6楼
如93所述……
加了
printf("%d",clr);
system("[s:9]AUSE");
还#include   <cstdlib>
之后
显示0
难道我得到的DC只是那个窗口所在的一块?
引用
评论
phpskycn作者
17年6个月前IP:未同步
134323
9楼
引用第5楼破93于2009-07-31 18:22发表的  :



我靠 ……给我看cpp入门去……

.......

没用,还是0
引用
评论
phpskycn作者
17年6个月前IP:未同步
134327
12楼
主要矛盾在于GetPixel()得到的是0
!!!
PS:0是黑色还是白色?
引用
评论
phpskycn作者
17年6个月前IP:未同步
134332
15楼
难道……是因为控制台程序弹出来的窗口底色?
……
引用
评论
phpskycn作者
17年6个月前IP:未同步
134335
16楼
算了,去CSDN逛
刚看到好东西…………可惜是VB的
继续看源码
谢谢各位了
引用
评论
phpskycn作者
17年6个月前IP:未同步
134337
18楼
引用第17楼破93于2009-07-31 18:34发表的  :

<c++ primer>欢迎您 虽然您可能看不懂  = =

七院欢迎您
引用
评论
phpskycn作者
17年6个月前IP:未同步
134341
22楼
引用第19楼破93于2009-07-31 18:37发表的  :
噗  去CSDN小心被喷
另外GetDC(NULL)干啥?获得是显示器的设备上下文 您要干啥?

您也不咋的……
不GetDC(NULL);,怎么GetPixel?
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的