博文

VB编程优良习惯(下)(2007-01-18 23:06:00)

摘要: Image combo imgcbo imgcboProduct ImageList ils ilsAllIcons Label lbl lblHelpMessage Lightweight check box lwchk lwchkArchive Lightweight combo box lwcbo lwcboGerman Lightweight command button lwcmd lwcmdRemove Lightweight frame lwfra lwfraSaveOptions Lightweight horizontal scroll bar lwhsb lwhsbVolume Lightweight list box lwlst lwlstCostCenters Lightweight option button lwopt lwoptIncomeLevel Lightweight text box lwtxt lwoptStreet Lightweight vertical scroll bar lwvsb lwvsbYear Line lin linVertical List box lst lstPolicyCodes ListView lvw lvwHeadings MAPI message mpm mpmSentMessage MAPI session mps mpsSession MCI mci mciVideo Menu mnu mnuFileOpen Month view mvw mvwPeriod MS Chart ch chSalesbyRegion MS Flex grid msg msgClients MS Tab mst ......

阅读全文(1700) | 评论:0

VB编程的优良习惯(中)(2007-01-18 23:05:00)

摘要:   推荐使用的控件前缀 控件类型 前缀 例子 3D Panel pnl pnlGroup ADO Data ado adoBiblio Animated button ani aniMailBox Check box chk chkReadOnly Combo box, drop-down list box cbo cboEnglish Command button cmd cmdExit Common dialog dlg dlgFileOpen Communications com comFax Control ctr ctrCurrent Data dat datBiblio Data-bound combo box dbcbo dbcboLanguage Data-bound grid dbgrd dbgrdQueryResult Data-bound list box dblst dblstJobType Data combo dbc dbcAuthor Data grid dgd dgdTitles Data list dbl dblPublisher Data repeater drp drpLocation Date picker dtp dtpPublished Directory list box dir dirSource Drive list box drv drvTarget File list box fil filSource Flat scroll bar fsb fsbMove Form frm frmEntry Frame fra fraLanguage ......

阅读全文(2183) | 评论:0

VB编程的优良习惯(上)(2007-01-18 22:59:00)

摘要:1、"&"替换"+" 2、变量命名大小写,语句错落有秩,源代码维护方面
3、请养成以下的“对象命名约定”良好习惯 4、在简单的选择条件情况下,使用IIf()函数
5、尽量使用Debug.Print进行调试 6、在重复对某一对象的属性进行修改时,尽量使用With....End With
7、MsgBox中尽量使用消息图标,这样程序比较有规范 8、在可能的情况下使用枚举 1、"&"替换"+"
在很多人的编程语言中,用“+”来连接字符串,这样容易导致歧义。良好的习惯是用“&”来连接字符串. 不正确:
Dim sMessage As String
sMessage = "1" + "2" 正确:
Dim sMessage As String
sMessage = "1" & "2" 注意:"&"的后面有个空格 2、变量命名大小写,语句错落有秩,源代码维护方面 下面大家比较一下以下两段代码: 读懂难度很大的代码: Dim SNAME As String
Dim NTURN As Integer If NTURN = 0 Then
If SNAME = "vbeden" Then
Do While NTURN < 4
NTURN = NTURN + 1
Loop
End If
End If 容易读懂的代码: Dim sName As String
Dim nTurn As Integer If nTurn = 0 Then
If sName = "vbeden" Then
Do While nTurn < 4
nTurn = nTurn + 1
Loop
End If
End If......

阅读全文(2095) | 评论:0

用VB操作注册表(二)(2007-01-15 11:01:00)

摘要: 用VB操作注册表(二) 登录数据库Registry的Value的存取--Default value的存取 1、Default value的存取
我曾经给我的朋友开了个玩笑,他最讨厌喜欢windows中自带的一个扫雷的游戏了.我呢,编写了一个小程序叫他帮我测试一下有没有运行错误,他欣然接受了,结果在执行完毕之后,那个程序自己消失了[那段时间我正在研究"木马冰河",对程序的自销毁技术很感兴趣,想着法子也实现了这个功能.]以后他的机器一启动就要运行扫雷这个程序,气得他暴跳如雷......。其实这样的程序很容易实现的。我们在讲述了有关函数后将给出这个程序的完整例子 涉及到的API函数讲解: RegQueryValue VB声明
Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
hKey: Key Handle
lpSubKey:SubKey名称路径
lpValue:返回读取的Default Value
lpcbValue:传入lpValue参数的长度,若成功读取了默认值default value,则返回default value字符串的长度(含chr(0))这个和C语言中字符串的处理相似,都是以chr(0)作为结束符。 返回值: =0,表示成功;≠0,表示失败。
函数调用实例:
'自编函数GetDefaultValue
'读取Default Value,若成功,返回true
'Example:
'Dim S As String, ret As Boolean
'ret = GetDefaultValue(HKEY_CLASSES_ROOT, ".txt", S)
' 如果 ret 为 True(与我们正常的函数调用习惯相同), 則 S 等於读取之資料
' 如果 "HKEY_CLASSES_ROOT\.txt" 沒有缺省值, 則 S = ""

......

阅读全文(1496) | 评论:0

什么时候应该使用OLE-DB,ADO或ODBC(2007-01-13 10:24:00)

摘要:什么时候应该使用OLE-DB,ADO或ODBC       要在访问数据时判断出应该使用哪一种技术,这并不容易。可能需要公用实用程序来处理多个数据库类型;部分数据可能出现在本地硬盘驱动器上,部分在网络上,还有一部分在主机上。甚至客户安装在设备上的产品也会使这种选择更加困难。例如,你所期待的ODBC支持级别也许依赖于所安装的MicrosoftOffice的版本,因为这个产品不提供ODBC支持。你还会发现,ADO类提供的对象和方法要比ODBC类多。ADO可以提供程序中绝对必须具有的一些特性棗例如,你会发现OLE-DB和ADO两者都支持DFX_Currency,但在ODBC中没有对应的功能棗但你要想掌握它们也必须付出一定的努力。
    注 使用ADO而不是ODBC的一个原因是,ADO提供的对象和方法比ODBC多。
    选择OLE-DB或ODBC时,有几条一般的规则。因为ADO实际上只是OLE-DB的包装,所以这些规则也适用于它。下面提供一些基本的原则,可以用来帮助你决定选择OLE-DB还是ODBC。
    非OLE环境 如果要访问支持ODBC的数据库,而该数据库又在不支持OLE的服务器上,那么ODBC是最好的选择。
    非SQL环境 ODBC在处理SQL时非常出众。处理非SQL数据库时,OLE-DB则具有非常明显的优势。
    OLE环境 对支持OLE的服务器来说,选择OLE-DB还是ODBC也许是希望各半。如果有ODBC驱动程序可供利用,那么使用ODBC是一个好主意;否则,就只有选择OLE-DB了。
其它的问题往往是复合问题,或者至少是失去了可以用来区别这两种技术的方便的规则。例如,有一些特征是ADO和ODBC所共有的。其中一个特征是,Visual C++允许你直接访问任一种技术。这意味着,可以完全访问ADO和ODBC都提供的每一个特征(是的,这确实不错,但也有缺陷,因为谈到访问,不能说一种技术明显地优于另一种技术)。
    如果做了错误的决定,一些熟悉的技术实际上会帮助你......

阅读全文(1688) | 评论:0

ODBC和ADO(2007-01-13 09:25:00)

摘要:大多数应用程序都使用数据库,各种管理软件、ERP、CRM系统均需要数据库来保存和维护应用程序的数据,在VC中提供了多种数据库访问技术,不过目前最流行的是ODBC(开放式数据库接口)和ADO(活动对象模型)。 一.数据库技术初步
   1.ODBC基本概念
   ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。   一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。   一个完整的ODBC由下列几个部件组成:   应用程序(Application)。   ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。   驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。   ODBC API。   ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。   数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。   应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。   在ODBC中,ODBC API不能直接访问数据库,必须通过......

阅读全文(2547) | 评论:0

VB数据库编程技术(2007-01-12 18:57:00)

摘要: VB提供的数据库引擎叫Jet。VB提供了两种与Jet数据库引擎接口的方法:Data控件(Data Control)和数据访问对象(DAO)。Data控件只提供了有限的不需编程就能访问现存数据库的功能,而DAO模型则是全面控制数据库的完整编程接口。这两种方法不是互斥的,实际上,它们可以同时使用。     VB中的数据库编程就是创建数据访问对象,这些数据访问对象对应于被访问的物理数据库的不同部分,如Database(数据库)、Table(表)、Field(字段)和Index(索引)对象。用这些对象的属性和方法来实现对数据库的操作。VB通过DAO和Jet引擎可以识别三类数据库: 1. VB数据库:也称为本地数据库,这类数据库文件使用与Microsoft Access相同的格式。Jet引擎直接创建和操作这些数据库并且提供了最大程度的灵活性和速度。     2. 外部数据库:VB可以使用几种比较流行的“索引顺序访问文件方法(ISAM)”数据库,包括:dDase III、dBase IV、FoxPro 2.0和2.5以及Paradox 3.x和4.x。在VB中可以创建和操作所有这些格式的数据库,也可以访问文本文件数据库和Excel或Lotus l-2-3电子表格文件。    3. ODBC数据库:包括符合ODBC标准的客户机/服务器数据库,如Microsoft SQL Server。如果要在VB中创建真正的客户机/服务器应用程序,可以使用ODBC Direct直接把命令传递给服务器处理。

VB数据库体系结构

VB提供了基于Microsoft  Jet数据库引擎的数据访问能力,Jet引擎负责处理存储、检索、更新数据的结构,并提供了功能强大的面向对象的DAO编程接口。 1.  VB数据库应用程......

阅读全文(1985) | 评论:0

Shell语句用法心得(2007-01-08 19:37:00)

摘要: Shell语句用法心得
一. 调用系统“创建快捷方式”向导
是否为VB不支持创建快捷方式而于着急呢?虽然 您可以调用vb5stkit.Dll中的fCreateShellLink函 数,但它是为安装程序设计的,快捷方式的默认路径 总是从当前用户的“\Start Menu\Programs”开始,也 就是说,如果您的Windows95装在C盘上,您无法通过 fCreateShellLink函数把快捷方式创建到D盘上去。
现在,给大家介绍一种极为方便、巧妙的方法: 用Shell语句调用系统“创建快捷方式”向导。
新建一个项目,在窗体上放一个按钮,双击此按 钮,加入以下代码:
Private Sub Command1_Click()
Open App.Path & "\temp.lnk" For Output As #1
Close #1 ´以上两句在程序所在目录建立一 个临时文件
Shell "Rundll32.exe AppWiz.Cpl,NewLinkHere
"& App.Path & "\temp.lnk"
End Sub
(注意:Shell语句中NewLinkHere后面跟着一个 空格才是引号,否则将出错。)
运行程序,按一下命令按钮,怎么样?“创建快 捷方式”向导出现了,如果创建成功,快捷方式将取 代临时文件temp.lnk的位置,如果选取消,temp.lnk 也会自动消失。当然,您可以在硬盘的任意位置建立 temp.lnk。好,现在又可以为您的程序增添一项新功 能了。Enjoy!
二. Rundll32.exe的用途
我们知道,用Shell语句只能调用可执行文件,即 exe、com、bat和pif文件,有时我们想要调用其他一 些系统功能该怎么办呢?此时,Windows提供的 Rundll32.exe可大显身手了。下面我们来认识一下这 些用法,也许会给您带来一点惊喜。
1.要打开设置系统时间的控制面板文件 (Timedate.cpl),只需运行如下代码:
Shell "Rundll32.exe
Shell32.dll,Control_RunDLL Timedate.cpl"
至于打开其他控制面板文件,相信您一定能够举 一反......

阅读全文(1171) | 评论:0

SHELL(2007-01-08 19:28:00)

摘要:注册表中Shell把explorer.exe改为我的程序后如何在程序中使用代码恢...
主  题:注册表中Shell把explorer.exe改为我的程序后如何在程序中使用代码恢复桌面?
作  者:yesin163 (破网)
等  级:
信 誉 值:91
所属论坛:Delphi Windows SDK/API
问题点数:50
回复次数:4
发表时间:2006-5-24 11:28:33

首先把explorer.exe不启动,而启动我的程序
改注册表:
HKEY_LOCAL_MACHINE
SOFTWARE\Microsoft\Windows Nt\CurrentVersion\Winlogon
中Shell值改为我的程序路径:c:\mypro.exe
那么系统启动后将不再载入explorer
在程序中判断用户登陆
如果登陆用户有权限则重新载入explorer.exe否则只执行我的程序,其他都看不到(这些功能类似禁止Ctrl+Alt+Del等都已经实现所以不用再过多讨论)

现在就是如何重新启动explorer.exe,我尝试不同方式如winexec启动explorer.exe发现竟然启动的是资源管理器.

请问怎么手动启动桌面.
......

阅读全文(270) | 评论:0

用VB生成DLL封装ASP代码,连接数据库(2006-12-31 13:04:00)

摘要: 用VB生成DLL封装ASP代码,连接数据库 作者:佚名  来源:不详  发布时间:2006-9-17 3:25:40  发布人:admin var newasp_fontsize=9; var newasp_lineheight=12; 减小字体 增大字体 这篇文章以VB生成的DLL封装ASP代码来连接数据库(以Access数据库为例)。  一般情况下我们在用ASP连接Access的数据库时通常都会进行如下的操作 '//Proconn.asp
<%
dim ProConn
set ProConn=Server.CreateObject("ADODB.CONNECTION")
ProConn.Open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ=" & Server.MapPath("DB.asp")
'一个原本为DB.mdb的Access数据库更改后缀为DB.asp的文件,数据库密码123 if err.Number <> 0 then
    ResPonse.Write "数据库没有连结,请检查"
    ResPonse.End
else
    ResPonse.Write "数据库连结成功"
    ResPonse.End
end if 
%> 如果配置好服务器,访问Proconn.asp,如果连接数据库成功会输出“数据库连结成功”。 但是这样的asp代码的安全级别非常低,如果此asp原代被人看到,那么再有此数据库文件的话,其他人就能轻而易举的
随便打开你的数据库进行操作。 所以我们的任务来了,如何将这些关键的内容封装起来呢? 首先需要确定方式方法和对象。 查看了网上的一些资料,主要都是用VB生成DLL的办法来封装的,那么我们也采取这样的方法好了,(虽然我还没用真正用过VB这东东) 方式方法确定,那么......

阅读全文(1539) | 评论:0