Category Archives: other

向Vista学习,实现XP下重命名文件忽略选取扩展名

   这两天对于HOOK的技术有了一个入门的学习,用过vista的同学会发现vista重命名一个文件比如vista.exe,他会自动选中vista忽略掉扩展名,带来比较方便的用户体验,学了一些hook我也想试试xp下能不能做这样的事情。于是参考一些文章,勉强实现了,有一点儿缺陷(请看最后)。    经过观察我发现重命名时,资源管理器会向他的子窗口listview发送一个LVM_EDITLABELA的控制消息,所以我使用了WH_CALLWNDPROCRET类型的全局挂钩,这个挂钩可以在sendmessage结束以后处理传送和返回的数据。发送了LVM_EDITLABELA消息后,会在lParam得到一个编辑窗口的句柄,只需之后对这个窗口发送EM_SETSEL控制消息就能够改变重命名时候的高亮区域。hook回调函数如下: 1: static LRESULT CALLBACK msghook(UINT nCode, WPARAM wParam, LPARAM lParam) 2: { 3: if(nCode < 0) 4: { 5: CallNextHookEx(hook,nCode,wParam,lParam); 6: return 0; 7: } 8: LPCWPRETSTRUCT msg = (LPCWPRETSTRUCT) lParam; 9: if(msg->message == LVM_EDITLABELA || … Continue reading

Posted in other | 17 Comments

为震区同胞祈福!

   昨天下午在西安也有几分钟的震感,事后知道这场震级里氏7.8级的地震发生在了我国四川汶川,我在这里为丧生于这场灾难的近万名同胞哀悼了,衷心希望灾区的同胞们平安脱险!! 相关链接  煎蛋wiki  帮助汶川活动@douban 河蟹上岸直播 地震防护常识(图片版) zuola的汇总 发布在FreePublic的一篇地震报道,不少美国友人的回复在为我门祈福 上苍保佑所有的人们! http://review.feedsky.com/review/feedsky/gohan/~/txt/171/r.html

Posted in other | 1 Comment

让VS2005中的fstream支持中文路径文件打开

   前几天发了这篇《用fstream对二进制文件的读写》,有朋友指出了VS2005的fstream对于中文路径支持不好的bug。我想大概是因为VS2005更加重视了对字符串的全球化支持,所以鼓励我们使用unicode编码的字符串,对于MBCS之类的支持可能就疏忽了吧。    我搜索了一下这个问题的解决,参考了如下资料写了演示代码。 fstream 和 中文路径  c++博客 About unicode settings in visual studio 2005, it really puzzled me a lot ms forum MSDN    我综合了以上的内容,总结了3种方法,能够较好解决大家的困扰,包括可能无法使用cout的问题。 1: /******************************************************************** 2: created: 2008/05/10 3: created: 10:5:2008 23:56 4: filename: k:sjfstreamTestfstreamTestmain.cpp 5: file … Continue reading

Posted in other | 5 Comments

用fstream对二进制文件的读写

这里介绍使用fstream这个类完成这个任务,fstream在输入输出方面比较全能。 操作系统通过二进制文件格式存储大量文件。一般不指定二进制文件操作的I/O操作是面向文本的,用来读写特定编码的文本。本文介绍用C++的fstream类读写二进制文件。 读写数据以这个WebSite结构体为例         // Struct for C++ File I/O binary file sample 1: struct WebSites 2: { 3: char SiteName[100]; 4: int Rank; 5: }; 写操作     注意事项 要写的文件需要用到输出模式标志 ios::out和二进制操作模式标志ios::binary。 write()函数需要两个参数.第一个参数是char*类型用来指定需要写入的数据, 第二个参数是int类型指定写入多少个字节. 最后记得要用close()结束.         // Sample for C++ File … Continue reading

Posted in other | 7 Comments

获取给定路径的图标,演示SHGetFileInfo用法

基于上次那个SHBrowseForFolder用法的演示代码 建立的仍然是Win32 命令行的工程,所以入口点为main(),需要手动获取HINSTANCE结构。程序在WINXP+VS2005测试通过 /********************************************************************  created:  2008/05/02  created:  2:5:2008   3:40             main.cpp  author:    Gohan   purpose:  演示SHBrowseForFolder用法            演示SHGetFileInfo获取路径图标                演示Picture Box在SDK里的使用方法 *********************************************************************/#include <Windows.h>#include <ShlObj.h>#include “resource.h”HICON g_icon; RECT g_rect;TCHAR g_path[MAX_PATH];void OnInitDlg(HWND hwnd){    GetWindowRect(GetDlgItem(hwnd, IDC_ICON1), &g_rect);    MapWindowPoints(NULL, hwnd, (LPPOINT) &g_rect, 2);    DestroyWindow(GetDlgItem(hwnd, IDC_ICON1));    SetDlgItemText(hwnd,IDC_PATH,g_path);}void OnPaint(HWND hwnd){    PAINTSTRUCT ps;    HDC hdc = BeginPaint(hwnd, &ps);    DrawIcon(hdc,g_rect.left,g_rect.left,g_icon);    EndPaint(hwnd,&ps);}BOOL CALLBACK DlgProc … Continue reading

Posted in other | 2 Comments

让cout打印出16色字符

Win32命令行应用程序是可以加颜色的,使用SetConsoleTextAttribute就可以实现了,记得前年小学期做的程序作业就用了它。 这篇文章很简单,你可以当作是一个cout <<运算符重载的一个简单例子。本文章来源与这里,我只是做一个很不专业解释。 本文章提供的库可以如下使用,上面是显示效果,想起小时候玩的Mud了吧。 #include “ConsoleColor.h”std::cout << green << “This text is written in green” << white << std::endl;std::cout << color(FOREGROUND_RED|FOREGROUND_GREEN) << “This text has a really exiting color !” << white << std::endl; ConsoleColor.h的内容 #pragma once#include <iostream>#include <windows.h> inline … Continue reading

Posted in other | Leave a comment

推荐一个小游戏 Portal Flash版

   Portal 是我非常想玩的一个游戏,可惜目前机器连hl2都带不动,只能等暑假换了机器再玩了。昨晚上做完回顾后发现了一个PMOG的Mission,里面介绍了不少有趣的物理小游戏,Portal flash就是其中之一,一共只有40关,于是迫不及待打通关了,2D版应该比3D要简单的多了,不过还是推荐一下 。    点击打开游戏地址。

Posted in other | 2 Comments

今天的工作时间接近了8个小时

    针对GPCT的比赛说明用C#进行了一些编程活动,期间了解到C#动态装载Assembly的强大,获得程序集自定义属性等等的一些知识碎片。C#很不习惯的一点就是New出来很多很多对象却都不用delete,真的是比较别扭,其它的倒是真方便。今天看.net的IL代码,真的产生了不少的兴趣,过些日子去找本书看。TortoiseSVN的版本控制软件这次也有幸使用了一下,因为是同宿舍两位同学合作coding,希望我们都能逐渐成长。于是乎今天work时间到达了近8小时,平时估计每天有一个小时就不错了,呵呵。work work,平时太荒废,以后还是养成惯性的好。    OK,that’s all,明天的周回顾等明天再写了。

Posted in other | Leave a comment

NetLimiter Pro 远程监控设置方法

   NetLimiter Pro的远程监控设置很强大,我这里简单介绍,用于维持宿舍网络共享使用的河蟹,合理分配网络带宽。查询服务端的配置:查询服务端需要启用一个Windows帐号,这是为了客户程序登录而使用的帐号,这里使用Windows默认的guest帐号作为查询帐号。很多番茄花园等发布版的Windows都因为安全原因禁用了Guest,这里需要启用它,为了安全,可以为它设定一个保险密码。实现服务端配置需要做以下步骤:1、NetLimiter里的权限编辑器中把Guest所在的Guest组给予Monitor(监视)权限(允许Guest账户查询)。  2、组策略中(run->gpedit.msc),计算机配置-》Windows设置-》本地策略如图:检查Guest,拒绝从网络访问这台计算机的设置中不要有Guest账户。为了安全起见可以将Guest添加到拒绝本地登录中。  3、启用来宾状态可能需要从组策略以及计算机管理里分别开启。 4、添加防火墙例外(以Windows防火墙为例)添加例外nlsvc.exe,这个文件是在NetLimiter安装路径下。 如此便基本实现了服务端的配置。 客户端查询操作:这个很简单了,打开NetLimiter的Remote Administration(远程管理)  连接时输入用户名(guest)与对应的密码,应该就能正确连接服务器。可以连接多台机器,如图所示。 Gohan < p align=”right”>08.3.4

Posted in other | 3 Comments

Crayon Physics

   一个有趣的小游戏,你要做的就是用鼠标画矩形等物件,让小球能够吃到目标星星。现在好像只有一个最初的版本,关有点少,不过还是很有趣,期待以后的版本。   游戏介绍 , 下载地址.

Posted in other | Leave a comment