博文
在window中添加一个私密文件夹的简单方法(2010-11-16 13:18:00)
摘要:1.点开始——运行,输入cmd,打开命令行窗口。
2.在命令行窗口中,通过输入 MD 123..\ 回车来创建一个文件夹,注意文件夹名后有2个小数点。此文件夹在资源管理器里面无法删除、查询和进入。
3.想删除,在命令行窗口中输入 rd 123..\回车,即可删除。
4.想进入,在命令行窗口中输入start d:\123..\(注意这里一定要是文件夹的绝对路径,否则无法打开即可打开此文件夹),可以把此命令编辑成bat批处理文件,访问就更简单了。......
一次调用接口函数遇到麻烦后的经验教训(2010-03-31 16:25:00)
摘要:一次在调用接口函数获取快捷方式信息时,总是遇到意外,一直查来查去查了好半天,原代码如下:
function GetShortCutImf(LinkFileName:string; var ShortCutImf:TShortCutImf):boolean;
var
vShellLink: IShellLink;
vPersistFile: IPersistFile;
vUnKnown: IUnKnown;
vWin32FindData: TWin32FindData;
vBuffer: array[0..100] of Char;
pword:Word;
PCmd:integer;
ffd:WIN32_FIND_DATA;
ret:Longint;
begin
Result:=true;
try
vUnKnown := CreateComObject(CLSID_ShellLink);
vShellLink := vUnKnown as IShellLink;
vPersistFile := vUnKnown as IPersistFile;
if vPersistFile.Load(PWideChar(LinkFileName),0)=s_OK then//就在这里总是出错
begin
ret:=vShellLink.GetPath(vBuffer,SizeOf(vBuffer),ffd,SLGP_UNCPRIORITY); //Pchar(s),MAX_PATH
.......
最后终于发现一个小细节,在PWideChar(LinkFileName)上,原来以为这样简单转换,就可以把ANSI字符串转为WIDESTRING指针,结果系统豪不转换的直接把LinkFileName的指针当做widestring指针传过去了,怪不得系统老执行不下去。看来一个转换的语句还是不可少啊,增加后问题解决,特立此备忘。
function GetShortCutImf(LinkF......
如何使得程序在状态栏中隐藏显示(2009-11-15 16:28:00)
摘要:目的就是程序的界面不动(无需最小化或者HIDE)但是在状态栏中的程序按钮消失。
一般来说,使用下面两个语句就可以了。
ShowWindow(Application.Handle,SW_NORMAL); //恢复显示
ShowWindow(Application.Handle,SW_HIDE);//隐藏
但是这两个语句不是百试百灵,我做的一个程序就不灵光了,怎样都找不出来原因,好容易在网上找到另外一个更加稳定的实现语句,如下:
隐藏时语句:
ShowWindow(Handle,SW_HIDE);
dwExStyle:=GetWindowLong(Handle,GWL_EXSTYLE);
SetWindowLong(Handle,GWL_EXSTYLE,dwExStyle OR WS_EX_TOOLWINDOW
AND NOT WS_EX_APPWINDOW);
ShowWindow(Handle,SW_SHOW);
恢复时语句:
ShowWindow(Handle,SW_HIDE);
dwExStyle:=GetWindowLong(Handle,GWL_EXSTYLE);
SetWindowLong(Handle,GWL_EXSTYLE,dwExStyle AND NOT WS_EX_TOOLWINDOW
or WS_EX_APPWINDOW);
ShowWindow(Handle,SW_SHOW);
注意里面的句柄不再是APPLICATION的,而是窗体FORM的了,看起来好像罗里罗唆的,但是WORK!,而且不这样做还真的不行,晕死。
......
CAD2009编辑文字时出现 找不到主词典,无法启动检查程序 的解决方法(2009-10-12 15:23:00)
摘要:很久没有弄CAD了,最近又需要用用它,在网上下载了一个AUTOCAD2009的精简版,才200多M,最喜欢这样的精华版的东西了,于是下来安装了一下,一切功能皆OK。不过后来发现一个小问题,就是双击文字想进行编辑时总要先弹出“找不到主词典,无法启动检查程序”的对话框,很烦人,想必是精简者精简过头的缘故。在网上搜索了很久都没有一个实用的解决方法,后来从一个论坛的高手处得到一点启示,终于把问题解决:把原来安装的CAD2008的support文件夹中的2字典文件拷贝到CAD2009的相应目录中就可以了,分别是“enu.dct”“enu2.dct”(美国英语),当然估计拷贝其他语言的主词典也可以,懒得一一去试了。想必有不少人也跟我有一样的烦恼,于是放在这里共享一下吧。......
TIOBE 2009年4月流行开发语言排名(2009-04-14 08:55:00)
摘要:TIOBE开发语言排行榜日前宣布了2009年4月流行开发语言的排名结果:
作为对比,以下是2008年4月流行开发语言的排名:
(转自:http://news.csdn.net/a/20090409/210296.html)......
一些VBA的笔记(2009-02-26 10:31:00)
摘要:非常流行的排序函数:
sub BubbleSort(List() As String)
Dim First As Integer,Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First=LBound(List)
Last=UBound(List)
For i=First To Last-1
For j=i+1 to Last
If UCase(List(i)>UCase(List(j)) Then
Temp=List(j)
List(j)=List(i)
List(i)=Temp
End If
Next j
Next i
End Sub
搜索字符串的函数是:InStr(Text, subStr)
访问Range里面的各个cell:
Rgn As Range
Dim mycell As Range
For Each mycell In Rgn
。。。。。。。
Next mycell
返回链接的地址:GetAddress(Hyperlink)
Function GetAddress(HyperlinkCell As Range)
GetAddress=Replace(HyperlinkCell .Hyperlinks(1).Address,"mailto:","")
End Function
静态随机函数:StaticRAND() 仅当用户强制刷新单元格才重新计算
循环体:
For i=1 to FinalRow Step 10 ...Exit For ...Next i
Do [While/Until]...Loop[While/Until]
对象变量及其历遍:
Dim WSD As Worksheet
Dim Mycell......
[zt]vc LoadImage的使用(2009-02-12 14:17:00)
摘要:【函数】
LoadImage
【操作系统】
Win9x:Y
WinNT:Y
【声明】
Function ulong LoadImage(ulong hInst,ref string lpsz,ulong un1,ulong n1,ulong n2,ulong un2) LIBRARY "user32.dll" ALIAS FOR "LoadImageA"
【说明】
载入一个位图、图标或指针
函数功能:该函数装载目标,光标,或位图。
函数原型:HANDLE LoadImage(NINSTANCE hinst,LPCTSTR lpszName,UINT uType,int cxDesired,int CyDesired,UINT fuLoad);
参数:
hinst:处理包含被装载图像模块的特例。若要装载OEM图像,则设此参数值为O。
lpszName:处理图像装载。如果参数hinst为非空,而且参数fuLoad不包括LR_LOADFROMFILE的值时,那么参数lpszName是一个指向保留在hinst模块中装载的图像资源名称,并以NULL为结束符的字符串。
如果参数hinst为空,并且LR_LOADFROMFILE被指定,那么这个参数低位字一定是被装载的OEM图像标识的。OEM图像标识符是在WINUSER.H头文件中定义的,下面列举出前缀的含义:
OBM_ OEM:位图;OIC_OEM图标;OCR_OEM:光标。
如果参数fuLoad包含LR_LOADFROMFILE值,那么参数lpszName是包含有图像的文件名。
uType:指定被装载图像类型。此参数可以为下列值,其含义如下:
IMAGE_BITMAP:装载位图;IMAGE_CURSOR:装载光标;......
[zt]在VC中使用自定义资源(2009-02-12 13:27:00)
摘要:在VC中使用自定义资源,FindResource,LoadResource,
一、前言
在VC环境中除了我们所常用的Dialog、Menu和Bitmap等标准资源类型之外,它还支持自定义资源类型(Custom Resource),我们自定义的资源类型能做些什么呢?呵呵,用处多多。
1. 默认的皮肤压缩包或语言包。一些支持换肤的软件特别是一些媒体播放器常常有自定义的皮肤文件(你可以尝试将Media Player或千千静听等软件的Skins目录下的文件的扩展名改为.zip,然后使用WinZip打开看一下),但为了防止Skin文件丢失导致软件无 法显示,他们常常会在EXE文件中内置一套Skin作为默认的皮肤文件。同样,一些支持多语言的EXE文件中存在默认语言包也是这个道理(当然也可以使用 "String Table"资源类型);
2. 做为一些病毒/木马程序的寄生方式。如果不小心执行了带有病毒/木马的程序,它们会在你运行时释放出病毒/木马文件。当然许多病毒是将自身写入PE文件头来实现;
3. 合并EXE与它所需要的DLL文件。出于某些原因程序作者有时可能需要将DLL文件嵌入到可执行的EXE文件中,这可以通过使用自定义资源来实现;
4. 其它需要在程序中播放一个AVI动画等等,都可以通过将二进制的数据文件作为自定义资源加入到可执行文件中来实现;
二、添加
添加资源时选择自定义,IDE会为你生成一个新的二进制资源,然后你就可以将你已经存在的二进制文件作为自定义的资源类型导入到项目中来了。
三、使用
要使用自定义资源,我们可能要用到的几个API函数有FindResource、LoadResource和LockResource等,这里每一个函数的返回值分别作为下一个函数的参数,我来简要介绍一下。
1. FindResource用来在一个指定的模块中定位所指定的资源:
2. &nbs......
[ZT]怎样使用资源文件(2009-02-12 11:34:00)
摘要:下面介绍如何将光标和声音作为资源编译到可执行文件中,及其使用方法。
第一步:建立一个rc文件.
例如:zpg.rc,内容如下:
DemHint WAVE D:\zpg2000Res\DemHint.wav
PrintType BITMAP D:\zpg2000Res\PrintType.bmp
ArrowDown BITMAP D:\zpg2000Res\ArrowDown.bmp
ArrowUp BITMAP D:\zpg2000Res\ArrowUp.bmp
ZoomIn CURSOR D:\zpg2000Res\ZoomIn.cur
ZoomOut CURSOR D:\zpg2000Res\ZoomOut.cur
其中第一列为资源名称,第二列为资源类型,第三列为文件名.
第二步:编译这个文件.
>BRCC32 zpg.rc
BRCC32.exe 在.../borland/C++ Builder6/bin/目录下,
编译后生成一个资源文件zpg.res
第三步:在程序中声明对资源的使用
在程序中要用到这些资源的单元的#pragma resource "*.dfm"语句后前面添上
#pragma resource "zpg.res"
有时还需添上#pragma package(smart_init)
或在工程主CPP文件中添上
USERES("Zpg.res");
最后怎样调用这个资源呢?看:
调用位图:
Graphics::TBitmap *pBitmap=new Graphics::TBitmap;
pBitmap->LoadFromResourceName((unsigned int)HInstance,"PrintType");
播放声音:
PlaySound("DemHint",HInstance,SND_RESOURCE);
改变光标:
Screen->Cursors[crZoomIn......