- 博客(16)
- 资源 (50)
- 收藏
- 关注
原创 打开文件对话框缺省为缩略图方式显示
最新情况: 参见 打开公用对话框的初始视图类型问题------------------------------------------------------坛子上有人问到如何对使用 CommonDialog 组件显示的打开对话框缺省显示为缩略图的问题,其实上一次提出这个问题的时候我就已经回答过,可能楼主对 api 不熟悉,所以没有写出实现的代码。这次豆三版主挑出了我的马甲,只好勉为其难了。查
2008-08-30 19:58:00 3198 7
原创 创建快捷方式
C 程序员通常都会使用 IShellLink 来创建快捷方式,但 vfp 没有这么幸运,虽然可以用 CoCreateInstance 创建出一个 IShellLink 界面对象,可是却无法调用这种 COM 对象提供的方法,原因可以参见这里。所以一直以来都没有非常好的编程创建快捷方式的方法。常用方法是使用安装程序提供方法来在安装时创建它,可如果做成绿色版,就没这个方便性了,于是利用编程动态创建快捷方
2008-08-25 16:55:00 1824 16
原创 vfp 中使用 BStr, SafeArray
当我们调用其它语言编写的 DLL 或使用某些 COM / OCX 对象时,我们经常碰到要传递 BSTR 类型的字符串和 SafeArray 类型数组的问题。BSTR 来自于 Basic 的字符串结构( Basic STRing),其结构是:[Length prefix] + [Data string] + [Terminator]Length prefix - 长度前缀, 4 字节, 不包含尾
2008-08-22 16:09:00 2301 2
原创 TreeView/ListView/ImageList 控件改造
今天又有人发短消息问怎样更改树控件的背景色,又是一个问了上千次的问题!实在不想再回答,就放在这里自己看吧。其实用到的 api 就一条,但是很多人都没有正确的使用它们。正确的方法是:1. 不要使用 v6 版的 TreeView 控件,同时也就不要使用 v6 版的 ImageList 控件,要用就都用 v5 版的。v5 版的除了不带检查框这个比较麻烦外,其它都可以用 SetWindowLong
2008-08-09 11:32:00 4066 17
原创 一行代码禁用 ctrl+alt+del
今天看到一行 vb 代码,真令我吃惊!照此处理:1. 新建一表单2. 加一个自定义表单属性: hh,初始值 03. 加两个按钮,分别设 Caption 为 “禁用任务管理器” 和 “使能任务管理器”4. 在“禁用”按钮的 Click 中写: Thisform.hh = FOpen( GetEnv( WinDir ) + /system32/taskmgr.exe, 12 )5. 在“使能”
2008-08-08 11:43:00 1246 10
原创 卷管理函数(续)
上一篇研究了利用 DefineDosDevice 和 QueryDosDevice 这两个函数来映射一个文件夹到一个本地盘符,以及查询所有 DOS 映射设备的方法,附带发现了一个获取硬盘序列号的方法。卷挂接在 Unix/Linux/Netware 系统上应用比较常见,Windows 可能由于多用于个人平台,所以知道卷挂接技术的人就比例上来说少了很多。你可以将它理解为:把一个物理设备挂接到一个逻辑盘
2008-08-08 04:07:00 1301 2
原创 卷管理函数
今天研究 Volume Management Functions 部分的 api 函数:这个部分函数包含两大块,第一块是卷管理,第二块是卷挂接第一块中的函数包括:DefineDosDevice, GetDriveType, GetLogicalDrives, GetLogicalDriveStrings, GetVolumeInformation, GetVolumeInformationByH
2008-08-07 22:02:00 1557 11
原创 Windows 系统文件保护(续)
研究了一晚上,发现:第一种方法并不容易实现,而且过程繁琐第二种方法可以实现,但由于需要采用远程注入的方式来调用未公开函数 SfcTerminateWatcherThread(sfc_os.dll 中序号为 2,此函数必须在 WinLogon 进程内调用才生效),这样就存在一个限制,因为要调用 CreateRemoteThread 在 WinLogon 进程空间内创建远程线程,而这个功能会被很多病毒
2008-08-07 09:07:00 1198 3
原创 Windows 系统文件保护
Windows 从 2000 开始就引入了系统文件保护功能(WFP),今天先看看如何列出被保护的系统文件。代码很简单,只调用了一个 api 函数:SfcGetNextProtectedFileDECLARE Long SfcGetNextProtectedFile IN sfc Long RpcHandle, String @ ProtFileDataCREATE CURSOR p
2008-08-06 21:35:00 937 4
原创 创建一个不能用鼠标操作的表单
新建一个表单,设置 Desktop = .T.(或者设为顶层表单),先加几个文本框控件,再加一个退出按钮,按钮.Click 中写 Thisform.Release(),然后在表单的 Load 事件中加入下面的代码:DECLARE Long GetWindowLong IN WIN32API Long, LongDECLARE Long SetWindowLong IN WIN32A
2008-08-06 16:34:00 776 7
原创 Ping 操作
咱也来个 ping 函数,使用的主要是 ICMP(Internet Control Message Protocol) 提供的函数来完成的,用到了下面几个结构:#define WSADESCRIPTION_LEN 256 #define WSASYS_STATUS_LEN 128 typedef struct WSAData { WORD wVersion;
2008-08-05 20:57:00 2269 8
原创 一种屏蔽所有系统热键的方法
今天在这个网站上看到一篇论述在新建桌面中运行应用程序来屏幕所有系统热键的文章,很受启发,按照它的思路和代码改成了一个 vfp 类,只要直接实例化它并调用它的 run 方法即可在新建桌面中运行一个应用程序。关于屏蔽系统热键的问题,以前看过很多方法,最好的方法是替换 GINA,但用 vfp 无法实现。这篇文章中的方法可以很容易的修改为几乎所有语言的代码。原理很简单:系统热键(如:ctrl+alt+
2008-08-05 00:34:00 4232 1
原创 获取指定类型文件的缺省系统关联
有时我们需要检查指定类型的文件是否存在缺省的程序可用来打开它,例如,如果我们要显示一个 .DOC 文件,首先我们要检查当前系统中是否安装了合适的程序可以打开它,下面的函数可以完成此功能:m.cType = xlsm.cExeFile = SysDefaultOpenedBy( m.cType )IF EMPTY( m.cExeFile ) MESSAGEBOX
2008-08-04 08:31:00 1240 4
原创 让机器进入待机或休眠状态
系统待机 / 休眠----------------------------------------------------------------------------------------------DECLARE Long SetSuspendState IN PowrProf ; Long Hibernate, Long ForceCritical, Long DisableWak
2008-08-04 06:24:00 1780 11
原创 检查是否已连接上 Internet
一小段检查 Internet 连接的代码:IF CheckInternetConnection() MESSAGEBOX( 已经连上 Internet ) ELSE MESSAGEBOX( 没有连上 Internet ) ENDIFFUNCTION CheckInternetConnection #define TEST_PROMPT
2008-08-04 05:20:00 1790 1
原创 枚举和清除 IE 缓存
使用 WinINet 中的函数实现枚举和清除 IE 缓存文件, Cookie, 浏览历史。PUBLIC oFormoForm = NEWOBJECT( MyForm )oForm.Show#define CSIDL_INTERNET_CACHE 0x0020#define CSIDL_COOKIES 0x0021
2008-08-01 04:29:00 2013 9
mscomctl.ocx autosize 不可见
2014-03-09
comctl32.ocx autosize 不可见
2014-03-07
vfp9 显示和输出 unicode 文本(bug fixed) demo
2018-11-04
Reg-Free 工具
2017-02-03
VFP IMEMode 属性修复示例
2016-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人