猫的新窝

止心,少语,莫愁

正在浏览 programing 里的文章

看到galaxy的《在Win下用软件关闭显示器电源》,得到启发后,google到了比较真的真相。

下载: a.cpp
  1. #include <windows.h>
  2. int main(void)
  3. {
  4.     // Eliminate user''s interaction for 500 ms
  5.     Sleep(500);
  6.     // Turn off monitor
  7.     SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2);
  8.     // Turn on monitor
  9.     // SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) -1);
  10.     // Low power monitor
  11.     // SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 1);
  12.     return 0;
  13. }

另外看到个比较悲剧而和我无关的消息,iphone新的SDK明确的拒绝了第三方的,或者跨平台工具,语言。.
沧桑的传送门->>>>>点击这里

原本想用python或者QT写一个,刚想动手就发现读取excel的内容api就很麻烦了。该想法直接夭折了。只好祭出VBA。。。

而且excel对于打印票据这种东西,天生有优势。于是边百度边写了几百行代码,感谢microsoft的编辑器,调试很方便(比我用过的python编辑器还强大),再次膜拜微软一把。。

不足:对打开的表格要求很高(需要做格式判断),不够聪明

贴代码,vba的代码看的懂英文单词的基本都知道什么意思,把以下内容复制到宏代码中
继续阅读

两个月多没写代码,这两天为了下载个500集的豆单,并把flv转化为mp3

第一,利用http://www.flvcd.com/,输入豆单地址,解析豆单的flv地址flvUrlParse.htm
第二,利用Internet Download Manager,解析flvUrlParse.htm,下载到
F:/download/flv/
第三,转化为Mp3
第四,正则提取flvUrlPasrse.htm,把转换后的mp3名字整理。
继续阅读

抛弃了winrar,使用7z,发现不少地方不够人性化,最郁闷的莫过于如下问题:

select_toopen

fail

看了快一个月7z的源码,终于找到问题的出处了,小修改了下,避免自动删除文件就好了。不过这样临时文件必须我们自己定期清理了。总比bug强

原因在于CPP7zipUIFileManagerPanelItemOpen.cpp中的StartApplication函数中process.Attach(execInfo.hProcess);这边返回的hProcess=NULL,但是execInfo.hInstApp>32是打开成功的。

CPP\7zip\UI\FileManager\PanelItemOpen.cpp中OpenItemInArchive中对if((HANDEL)(process)==0)的判断改为if (FAILED(res))即可解决该问题。

还有一处是拖动的也出现如上问题,解决思想也是一致的

把CPP\7zip\UI\FileManager\PanelDrag.cpp文件中OnDrag函数,最末尾加上tempDirectory._mustBeDeleted = false;当然把tempDirectory由class改为struct

不过 如何删除遗留的文件和文件夹,这个就是修改的副作用了。

int main
{
// 初始化mfc环境
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
return 1;
}
HINSTANCE hIns = GetModuleHandle(NULL);
//初始化资源
AfxSetResourceHandle(hIns);

………….
/*CWaitCursor wc;*/ //Abort…
HINSTANCE hIns = GetModuleHandle(NULL);
HCURSOR cur = LoadCursor(hIns,IDC_WAIT);
HCURSOR hOldCursor = SetCursor(cur);
ShowCursor(TRUE);
…………………
SetCursor(hOldCursor);

AfxWinTerm();
}

wince 按键处理

抢板凳

现在的智能机的键盘越来越小,而屏幕越来越大,相应的,代码中处理Mouse的代码远远大于keyboard的代码,结果呢,偶尔遇到几台按键多的机器(甚至全键盘+多媒体键盘,真佩服这手机设计的),就很郁闷了。

原来程序设计是接管所有系统的按键信息,结果山寨机越来越多,每个山寨机都有点自己的亮点按键的话,光光键盘部分各家处理函数就要郁闷了。
继续阅读

_open_osfhandle Associates a C run-time file handle with a existing operating-system file handle.

  1. int   nHandle   =   _open_osfhandle((intptr_t)hFile,   _O_TEXT)
  2. if   (nHandle   !=  INVALID_HANDLE_VALUE) 
  3.     return   _fdopen(nHandle,   szMode)
  4. else 
  5.     return   NULL;

继续阅读

测试多线程程序,或者Data Abort这种比较难找的bug时,log是帮忙解决问题的利器。
但是,log信息输出过多,则应该调试效率(既影响程序运行效率,ce设备输出到设备上还是很影响程序效率的,再者也影响了看log的效率)
一般做法是,分级输出debug信息,针对CE设备,启动调试一次需要花费大量的时间。所以优化为动态分级控制debug信息。
继续阅读

同步方式较为简单:
以下载一个文件为例,我们来看看同步的做法:
1)InternetOpen;
2)InternetOpenUrl;
3)HttpQueryInfo;
4)InternetReadFile;
5)InternetCloseHandle。
继续阅读

今天遇到修改以前自动更新模块,遇到个WinInet重定向的问题(现在想想,可能不是重定向造成的),如果获得重定向后的url地址?

在异步模式下
通过回调函数InternetStatusCallback中的
dwInternetStatus ==INTERNET_STATUS_REDIRECT捕获重定向信息,并且同时lpvStatusInformation参数就是个指向新地址的以NULL结尾的新url地址

继续阅读