- 博客(37)
- 收藏
- 关注
原创 winnt 下关机代码
var hToken: THANDLE; Tkp:TOKEN_PRIVILEGES; Nothing:Cardinal;begin OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken); LookupPrivilegeValue(nil, SeShu
2005-04-08 02:27:00 858
原创 海量数据库的查询优化及分页算法方案
随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。
2005-04-08 02:23:00 954
原创 作登录窗体
⑴让登录窗体在主窗体运行前打开,⑵根据登录窗体返回值判断主窗体是否应该运行。详细代码如下://project.dpr文件program project;... ...... ...begin Application.Initialize; EntryFrm:=TEntryFrm.Create(application); //登录窗口
2005-04-08 02:00:00 1290
原创 fieldbyname
ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(select * from 表1); ADOQuery1.Open; adoquery1.First; while not adoquery1.Eof do begin szbuf1:=ADOQuery1.fieldbynam
2005-04-05 03:37:00 1276 1
原创 深入Delphi编程
深入Delphi编程左轻侯 刚刚接触的Delphi的朋友,可能最感兴趣的就是它丰富、强大的VCL(可视化构件库)。仅仅向窗体上扔几个构件,甚至不用动手写代码,就能很容易地做出一个有实用价值的程序,真是令人激动。但是,VCL只是Delphi的一小部分,Delphi的优秀远远不只是表现在VCL上。如果你仅仅停留在使用VCL这一阶段,那么你永远也不可能成为一个真正的Delphi高手
2005-04-04 05:17:00 1004
原创 抓屏技巧
原作者:linzhengqu 这里有一些抓屏的技巧汇总,是本人平时编程积累下来的。在这里写出来,希望对大家有用。其实其技巧也不难,只要知道几个API函数,再加一些设备描述表的操作,你几乎可以做出非常好的抓屏软件。废话少说,现在开始介绍吧: 一,抓取全屏: 这个几乎可以说是抓屏中最简单的一个了,相信很多人都会,但为了讲述完整,这里也列举出来。思想很简单,取得屏幕的设备描述表,赋
2005-04-04 05:15:00 1286
原创 让程序只运行一个实例(Delphi篇)
让程序只运行一个实例(Delphi篇) Windows 下一个典型的特征就是多任务,我们可以同时打开多个窗口进行操作,也可以同时运行程序的多个实例,比如可以打开许多个资源管理器进行文件的移动复制操作。但有时出于某种考虑(比如安全性),我们要做出一些限制,让程序只能够运行一个实例。在Delphi编程中,笔者总结出了以下几种方法: 一、 查找窗口法 这是最为简单的一种方法。
2005-04-04 05:15:00 1274
原创 Delphi+Ado 的 Demo
procedure TForm1.OpenO1Click(Sender: TObject);//File->open..begin if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName;end;procedure TForm1.BBTNOpenClick(Sender: TObject);//打开数据库var szPath:s
2005-03-30 05:35:00 903
原创 关于数据库开发
开发数据库应用程序,Delphi是当之无愧的好!我简直是爱死她了我在Delphi入门与精通上看到一个东东,开始没在意,后来变通一下,嘿嘿……很实用哦在我现在开发的应用程序中,没一个不用它的,方便快捷……作用: 编码->名称解释(转换不受字段长度限制),有很多方法,诸如:用lookupfield或直接用sql或用canvas等,但我用的是tfields的ongettext方法,呵呵……也许有哪位
2005-03-29 23:38:00 749
原创 快速向SQL数据库中读、写图片一例(Delphi篇)
有朋友初學編程,嚐試自己做一個簡單的人事系統,昨天問到我如果在程序中實現對相片的讀、寫操作。這個問題我以前也有做過,但時間隔得久,只記得個大概,於是又動手研究了一下,並用內存流的方式予以實現,相對於網上其它實現方法的冗長、複雜而言,此方法既簡單又高效。 我們知道BLOB在数据库的表中实际上是以二进制数据的形式存放的。由于BLOB的特殊性,一般的程序都无法处理它。比如
2005-03-29 23:35:00 1366
原创 ADOQuery
//*******************连接数据库部分********************procedure TForm1.BitBtn1Click(Sender: TObject);begin if OD1.Execute then begin if od1.FileName<> then begin edit1.Text:=od1
2005-03-28 03:55:00 884
原创 Delphi 数据库感受
接触Delphi的时间实在不长,在一个多月前,我对它还是一无所知,形同末路,因为工作的需要我才开始去学习。然而任务紧迫,这也应验了一句老话:有压力才有动力。在无比巨大的压力下,学习并掌握它的动力也相应的以级数的速度增长。 我从尝试BDE开始,TTable、TQuery,折腾了一个星期才意识到BDE的局限性。接着又转向ADO,又是一遍ADOConnection、ADOTable、A
2005-03-28 03:20:00 1375 1
原创 关于ADOQuery控件的ExecSQL和open方法的一些小感受
关于ADOQuery控件的ExecSQL和open方法的一些小感受:刚开始设计数据库的控件使用,对于ADOQuery这个控件不是很熟悉,在执行SQL语句是,我刚开始用了open方法,在select中是正确的,但是当使用在insert中程序就始终出错,可以通过编译,但是执行却是错误的,错误提示为:ADOQuery1:CommandText does not return a result
2005-03-28 03:14:00 2124
原创 Delphi的单元文件
单元文件是Delphi程序中最重要的文件,它包含了程序中最主要的源代码,无论是窗体和组件的事件处理过程或单独的源代码都保存在单元文件中。对于初学者来说,Delphi的单元文件比较复杂。这里将对Delphi5的单元文件进行介绍。 单元文件分为有窗体文件和无窗体文件两种。每当用户在项目中新建一个窗体,例如使用“File|New Form”或加速按钮创建一个新窗体,Delphi就会自动创建
2005-03-28 01:02:00 878
原创 MYSQL_ADO 接口
mysql> create database school;mysql> use school;Database changedmysql> create table teacher -> ( -> id int(3) auto_increment not null primary key, -> name char(10) not null, -> );mysql> i
2005-03-12 16:08:00 1422
原创 ASP如何使用MYSQL数据库
MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实ASP也可以使用MYSQL数据库开发动态页面,小弟我也是刚刚学会,不敢独享,所以特写了这篇文章供大伙参考。 我的环境是WINDOWS98+PWS4.0+mysql-3.23.32-win+PHP4 必要的软件:PWS4.0(呵呵,废话) mysql-3.2
2005-03-12 14:40:00 647
原创 MYSQL初学者使用指南
有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。 一、连接MYSQL。 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYS
2005-03-12 14:12:00 528
原创 函数名: atol atoi
函数名: atoi 功 能: 把字符串转换成长整型数 用 法: int atoi(const char *nptr); 程序例: #include #include int main(void) { int n; char *str = "12345.67"; n = atoi(str); printf("string = %s integer = %d/n", str, n); return 0
2005-03-12 09:06:00 1153
原创 C++语言访问MS SQL2000的实例
/*******************************************************************利用ADO访问MS SQL2000要求: 【1】输出stu_info表内的每一条记录 【2】添加一条新记录【3】删除名字为"本拉登"的记录 */ #import "c:/Program Files/Common Files/System/ADO/msado15.d
2005-03-12 02:11:00 687
原创 vc+ado动态创建access数据库
vc+ado动态创建access数据库 ado技术目前已经成为连接数据库的主流技术,下面我来介绍如何使用ado来动态创建access数据库。为了使用ado,必须引入微软的两个动态连接库msadox.dll和msado15.dll:#pragma warning (disable: 4146)#import "c:/Program Files/Common Files/system/ado/msad
2005-03-12 01:55:00 959
原创 CListCtrl使用详解
1。先来介绍REPORT类型的CListCtrl:首先使用下面的语句设置CListCtrl的style: DWORD SetExtendedStyle( DWORD dwNewStyle );其中 LVS_EX_CHECKBOXES 表示添加CheckBox LVS_EX_FULLROWSELECT 表示选择整行 LVS_EX_GRIDLINES 表示添加表格线如果设置了LVS_EX_CHECK
2005-03-12 01:52:00 1426
原创 WM_COPYDATA
// Send the string to the main dialog box COPYDATASTRUCT cds = { 0, lstrlenA(buf) + 1, buf }; HWND hWndtarget=FindWindow(NULL,"Last MessageBox Info"); if(hWndtarget) MessageBox(NULL,"未找到目标窗口","
2005-03-11 05:38:00 761
原创 在(CListView)列表视图中添加右键菜单的方法 [vc]
使用弹出式菜单(PopMenu)弹出式菜单(PopMenu)大家都熟悉,在WIN98的桌面上单击鼠标右键弹出的菜单就是弹出式菜单。通常情况下,弹出式菜单在鼠标右键单击时弹出,当然,也可以根据需要随时弹出。 在VC++5的MFC中,管理菜单的类叫CMenu。下面我向大家介绍建立一个弹出式菜单的基本方法。一、在资源编辑器中建立一个菜单资源 新建一个菜单资源,比如把菜单的ID号为IDC_POPMEN
2005-03-11 04:35:00 1001
原创 用VC6.0实现超级链接
用VC6.0实现超级链接---- 很多windows软件的版权对话框中都设有超级链接,这些链接或提供公司网址,或提供电子邮件信箱,使操作者能够非常方便地与公司和作者联系,同时也为公司作了很好的宣传。如果能在自己写的软件中实现这个功能,定会使程序大增光彩。 ---- 实现这个功能要用到一个WINDOWS API函数ShellExecute,其原形为: HINSTANCE ShellExecute(
2005-03-11 01:42:00 859
原创 如何將 Visual Basic 與 ADO 搭配使用
結論Adovb.exe 是一個包含範例程式碼的自解壓縮檔,它示範了如何在 Visual basic 中使用 ActiveX 資料物件 (ADO)。 其他相關資訊下列檔案可從 Microsoft 下載中心下載。按一下下方的檔案名稱便可下載檔案:http://download.microsoft.com/download/vb60pro/demo/1/WIN98/EN-US/AdoVB.EXE 如需有
2005-03-10 08:18:00 819
原创 建立永遠停留在最上層的窗口(VB)
1.建立新的 [標準執行檔] 專案,根據預設值,隨即建立 Form1。 2.在 Form1 上加入兩個指令按鈕 (Command1 與 Command2)。 3.將 Command1 的標題 (Caption) 屬性設為「Always on top」。 4.將 Command2 的標題 (Caption) 屬性設為「Normal」。 5.將下面程式碼放入 Form1 的 [宣告] 區段中:
2005-03-10 08:14:00 892
原创 防止同一个程序多次运行。 [VB.NET]
防止同一个程序多次运行。 *****************方法一:防止程序多次打开***************** 函数名: IsInstanceRunning 功 能: 判断工程是否已运行 参 数: 无 返回值: True 已运行 False 未运行 ***********
2005-03-10 01:41:00 890
原创 防止程序运行多个实例[vb]
要防止程序运行多个实例,只要使用App.PrevInstance属性就可以了。当有另一个实例正在运行时,该属性会返回True。你可以在程序的Load事件中调用这个属性进行判断。如果返回值为True,你可以向用户显示一条信息,更进一步,在关闭这个新实例前,还可以激活已有的实例,这也是目前大部分程序采用的方式。下面的代码可以在必要时显示一条警告信息:If App.PrevInstance Then
2005-03-10 01:40:00 844
原创 “超级链接”在VB6下的实现方法
鼠标指向形状(即当鼠标移到标签上时鼠标的形状,MouseIcon的值为手形,MousePointer设为99-Custom)为手掌状。 设置好控件属性后,就可以编写程序代码了。 Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As
2005-03-09 23:52:00 784
原创 CPU段式结构的由来
梁说:8086最头疼的问题在于段式结构,1MB的内存被它的段偏移所限制。至今我也不明白Intel当初为什何要设计成这么复杂的内存机制,也许是为了与8080兼容的需要。这套笨拙的体系一直延续到IA64为止。 以下文字参考Linux内核源代码情景分析一书。当我们说一个CPU是”16位”或”32”位时,指的是处理器中”算术逻辑单元”[ALU]的宽度。系统总线中的数据线部分,称为数据总线,它通常与ALU
2005-03-05 08:24:00 817
原创 内存对齐与ANSI C中struct型数据的内存布局
当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一
2005-01-28 22:40:00 810
原创 动态链接到MFC的DLL
2、动态链接到MFC的DLL 在讨论关于动态链接到MFC的DLL的模块状态问题之前,先来看一个例子。本例可以通过如下步骤来完成: 1)在VC菜单中File->New新建一个命名为DLLShared的MFC AppWizard的工程,下一步选择Regular DLL using shared MFC DLL。 2)在工程中添加一个对话框资源,其ID为:IDD_A
2005-01-28 12:28:00 778
原创 静态链接到MFC的DLL
2.MFC DLL 在MFC DLL中使用对话框不像Win32 DLL中那么简单,主要是因为MFC程序中存在一个模块状态(Module State)的问题,也就是资源重复的问题。(此处的术语模块是指一个可执行程序,或指其操作不依赖于应用程序的其余部分但使用MFC运行库的共享副本的一个DLL(或一组DLL)。我们所创建的MFC DLL就是这种模块的一个典型实例。)
2005-01-28 12:25:00 1909
原创 在DLL中使用资源(一)
在DLL中使用资源(一) 在CSDN论坛上最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。1.Win32 DLL 在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的
2005-01-28 12:22:00 893
原创 总结进入RING0的方法
关于进入RING0层的方法,大家一定听说过不少,我在复习保护模式编程中将一些进RING0的方法;总结了一下,包括调用门,任务门,中断门,陷阱门等,这些方法都是直接利用IA32的方法,所以和操作系统应该没有多大关系,当然由于NT内核对GDT,IDT,的保护所以我们不能用这些方法,不过如果一旦突破了NT的保护,那么所有的方法就都可以使用了,其他的还有SEH等方法,我在前面的文章中也有介绍。 ---
2005-01-24 11:32:00 1415
原创 地址的本质
前言:本文旨在加强理解,实际情况并非如此。这是简化版。 1. 基本概念 虚拟地址=逻辑地址=[段选择子]:[线形地址],利用段选择子找到描述符,描述符有字段表示段的基地址(在Win32中都是0,所以线形地址就是真正地址)还有字段表示段属性,实际上起到保护作用。 事实上,在Win32中,其他地址已经不重要了。关键还是线形地址。我们在程序中使用的都是线形地址,我们完全可以忘记虚拟内存的概念,认为每
2005-01-24 11:29:00 799
原创 动态装载驱动的例子
#include "stdafx.h"#include "winsvc.h"BOOLInstallDriver( IN SC_HANDLE SchSCManager, IN LPCTSTR DriverName, IN LPCTSTR ServiceExe );BOOLStartDriver( IN SC_HANDLE SchSCManager,
2005-01-24 11:27:00 709
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人