首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 我的项目日志与心得 [已结帖,结帖人:kkkgho]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-23 11:34:13 楼主
    项目:仿照WINDOWS任务管理器
    开发语言:C++
    集成开发环境(IDE):DEV-CPP 4.9.9.2
    当前行数:1441行
    开发人数:1
    开始时间:2008年8月6日
    2008年8月6日:完成了进程和PID的遍历,并且显示到listview
    2008年8月7日:完成了结束进程按钮
    2008年8月8日:开幕式……
    2008年8月8日:进程结束按钮按下会有警告功能
    2008年8月9日:完成了listview的定时刷新功能
    2008年8月9日至2008年8月11日:解决了listview刷新时焦点丢失的问题
    2008年8月12日:制作了立即刷新菜单的外观,内存使用
    2008年8月13日至2008年8月14日:完成了任务栏的进程数和内存中使用
    2008年8月15日:完成了任务栏的总CPU使用率
    2008年8月16日至2008年8月18日:完成了选项卡的制作
    2008年8月19日:完成了单个进程CPU使用率的显示以及修改总使用率计算办法
    2008年8月20日:进一步完成了菜单中的新任务和待机,休眠,注销,关机,重启,刷新速度功能
    2008年8月21日~2008年8月23日:完成了显示所有应用程序窗口标题,运行情况,新任务,切换至(部分),结束任务(部分)
    2008年8月23日01:01:可能setforegroundwindow比BringWindowToTop好用,明天测试
    2008年8月23日11:24:SetForegroundWindow也有部分窗口无法激活……
    2008年8月23日11:31:切换至功能完成,修改代码如下:
    C/C++ code
    SetFocus(h_qiehuan); ShowWindow(h_qiehuan,SW_NORMAL); SetForegroundWindow(h_qiehuan);


    现在:listview右击不能出菜单,研究中
    结束任务功能 不能在超时后强制结束进程

    go to code……
    5  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • prettyboy923
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 11:50:381楼 得分:0
    学习了  不错
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • elegant87
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 12:16:422楼 得分:0
    安排挺好的!顶!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • digimon
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 12:23:213楼 得分:0
    路过看看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jieao111
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 17:29:264楼 得分:0
    代码呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • agurick
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 19:58:035楼 得分:0
    这种日志很好,希望坚持下去
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baihacker
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

    发表于:2008-08-23 20:01:286楼 得分:0
    现在:listview右击不能出菜单,研究中
    结束任务功能 不能在超时后强制结束进程

    添加一个菜单资源.

    建立相应的命令与动作的映射.

    在右键消息中首先确定当前选中的项.

    显示菜单.

    把本身进程的权限提高,超时后强行结束目标进程.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qqwx_1986
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 20:06:017楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 20:32:508楼 得分:0
    2008年8月23日20:30:继续研究LISTVIEW的右键菜单,已经知道通过WM_CONTEXTMENU获取右键菜单事件,坐标用GetCursorPos(&rect);获取,ScreenToClient(hwnd,&rect); 将坐标变成屏幕坐标
    但是似乎获取到的坐标不准确,继续研究中……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 20:33:599楼 得分:0
    还有就是不知道是否击中了LISTVIEW
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wjb_yd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 20:58:4510楼 得分:1
    高人...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • heidonglilun
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 21:04:3911楼 得分:0
    O
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 22:11:1212楼 得分:0
    2008年8月23日22:09:右击弹出菜单已经可以精确的在LISTVIEW的区域内显示了

    但是弹出的菜单不能显示菜单项,四个项目变成了四个无名字的项目在菜单上
    还有需要判断LISTVIEW的项目是否被选中,选中才显示

    还有就是选项卡的位置(在其他位置不显示)

    修正代码如下:
    C/C++ code
    case WM_CONTEXTMENU: POINT rect_a,rect_b; RECT rect_c; GetCursorPos(&rect_a); rect_b=rect_a; ScreenToClient(hwnd,&rect_b); GetClientRect(g_hlistview2,&rect_c); if(rect_b.x>=15&&rect_b.y>=36&&rect_b.x<=rect_c.right+10&&rect_b.y<=rect_c.bottom+35) TrackPopupMenu(mu_tanchucaidan,TPM_LEFTALIGN,rect_a.x,rect_a.y,0,hwnd,NULL); break;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cyblueboy83
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 22:33:5113楼 得分:0
    mark
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • corrupt
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 22:35:4014楼 得分:0
    我的日志:
    2008-08-02-14:02:045000 :[control.cpp] [line:1024] [threadid is 1024]the thread control is create success .
    2008-08-02-14:04:045000 :[control.cpp] [line:2024] the funce xxxx catch error, the error code is 503 .
    2008-08-02-14:04:055000 :[control.cpp] [line:2024] [threadid is 1024]the funce thread control is exit.
    .
    .
    .
    .

    有个好处可以多个线程同时记录

    ps: 时间是记录详细,同一秒内完全会发生很多事情,时间越细越好。
        文件名和行号也很有必要,程序版本一旦增多, 回去定位以前版本的问题,很有帮助。加上在打项目中,是多个一起完成的,你不能保证你的日志信息是独一无二的。
        如果是多线程在创建时 打印其 线程id ,在使用dump文件定位异常死机问题时 会有帮助。


    心得: 日志是定位问题最好的方法,没有日志信息,关通过dump文件是很难定位大部分问题的,所以必要而有效日志的记录是反应一个程序员是否有经验的很好标准。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 22:44:2515楼 得分:0
    呵呵,谢谢楼上的提醒……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 22:49:0916楼 得分:0
    2008年8月23日22:45:程序突然出现内存错误,CTRL+Z也无法恢复,不知道错误原因
    2008年8月23日22:46:计算机蓝屏死机重启
    2008年8月23日22:47:再次调试程序恢复正常……被计算机耍了一圈
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 00:03:4917楼 得分:0
    2008年8月24日00:00:发现右键菜单的文字无法出来,虽然菜单出来了,但是是一个空的菜单(菜单项目数是对的,也可以响应消息,但是一个字也没有)

    DEV-CPP对中文的支持不是很好,即使是中文注释也会乱码,中文的对话框也会无法显示(显示后再修改控件内容为中文可以)
    所以以此类推,试图在创建以后动态修改菜单文字,研究中……

    C/C++ code
    case WM_CONTEXTMENU: POINT rect_a,rect_b; RECT rect_c; GetCursorPos(&rect_a); rect_b=rect_a; ScreenToClient(hwnd,&rect_b); GetClientRect(g_hlistview2,&rect_c); //显示菜单 if(rect_b.x>=15&&rect_b.y>=36&&rect_b.x<=rect_c.right+10&&rect_b.y<=rect_c.bottom+35) TrackPopupMenu(mu_tanchucaidan,TPM_LEFTALIGN|TPM_RIGHTBUTTON,rect_a.x,rect_a.y,0,hwnd,NULL); MENUITEMINFO mi_xiugaicaidan; ZeroMemory(&mi_xiugaicaidan, sizeof(mi_xiugaicaidan)); mi_xiugaicaidan.cbSize=sizeof(mi_xiugaicaidan); mi_xiugaicaidan.fMask//这里试图动态修改文字,菜单出不来 mi_xiugaicaidan.dwTypeData="asd"; SetMenuItemInfo(mu_tanchucaidan,CM_XITONG_QIEHUAN,0,&mi_xiugaicaidan); break;


    GO TO SLEEP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xuewudejijie
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 14:38:0218楼 得分:0
    ^_^
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 14:39:2419楼 得分:0
    2008年8月24日14:34:右键菜单完成,开始制作消息响应
    C/C++ code
    CM_YOUJIANCAIDAN MENU BEGIN POPUP "HIDE" { MENUITEM "切换至", CM_XITONG_QIEHUAN MENUITEM "前置", CM_XITONG_QIANZHI } END /////////////////////////////// case WM_CONTEXTMENU: POINT rect_a,rect_b; RECT rect_c; GetCursorPos(&rect_a); rect_b=rect_a; ScreenToClient(hwnd,&rect_b); GetClientRect(g_hlistview2,&rect_c); //显示菜单 if(rect_b.x>=15&&rect_b.y>=36&&rect_b.x<=rect_c.right+10&&rect_b.y<=rect_c.bottom+35) { HMENU mu_tancaidan; mu_tancaidan = GetSubMenu(mu_tanchucaidan,0); TrackPopupMenu(mu_tancaidan,TPM_LEFTALIGN|TPM_RIGHTBUTTON,rect_a.x,rect_a.y,0,hwnd,NULL); } break;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 13:50:3020楼 得分:0
    2008年8月24日:完成了菜单的部分消息响应,右键弹出,切换至和前制,最大化最小化
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lsd1025
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 14:51:2821楼 得分:0
    牛人进行中....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhkefa
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 14:58:0322楼 得分:0
    关注ing,,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • loveamanda
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 15:26:5023楼 得分:0
    我最近也在做项目,  但被设计模式折磨透了, 总觉得系统没有达到最佳, 卡住了,很久没有进度
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 16:20:4924楼 得分:0
    引用 23 楼 loveamanda 的回复:
    我最近也在做项目,  但被设计模式折磨透了, 总觉得系统没有达到最佳, 卡住了,很久没有进度

    呵呵……先不到达到最佳,把大致的做好,再回头来看会好很多的……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bubu8633
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 16:23:2025楼 得分:0
    写日志是个好习惯
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 21:37:3726楼 得分:0
    2008年8月25日21:34:已经完成多个窗口的层叠功能,正在研究纵横向平铺的算法

    http://topic.csdn.net/u/20080825/21/b24ba374-f6d6-44b8-9353-f2fd220598b6.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dhbzzz
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 15:04:1727楼 得分:0
    我也在做哎 呵呵  我准备做基于网络的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kkkgho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 15:23:3928楼 得分:0
    引用 27 楼 dhbzzz 的回复:
    我也在做哎 呵呵  我准备做基于网络的

    你也在做任务管理器吗?!
    进度怎么样了?


    -------------------
    2008年8月26日15:20  鉴于我逻辑思维的劣根性,彻底被平铺算法打败了(寻找现成的API中……)
    C/C++ code
    if(LOWORD(wParam)==ID_H_PINGPU) { int zongshu; int xunhuan_2; int xunhuan=0; RECT chengdie; chengdie.left=0; chengdie.top=6; chengdie.right=826; chengdie.bottom=490; zongshu