VB封装工作组文件及调用方法探讨分享与交流.docx

上传人:b****2 文档编号:3198400 上传时间:2023-05-05 格式:DOCX 页数:12 大小:117.96KB
下载 相关 举报
VB封装工作组文件及调用方法探讨分享与交流.docx_第1页
第1页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第2页
第2页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第3页
第3页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第4页
第4页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第5页
第5页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第6页
第6页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第7页
第7页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第8页
第8页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第9页
第9页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第10页
第10页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第11页
第11页 / 共12页
VB封装工作组文件及调用方法探讨分享与交流.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VB封装工作组文件及调用方法探讨分享与交流.docx

《VB封装工作组文件及调用方法探讨分享与交流.docx》由会员分享,可在线阅读,更多相关《VB封装工作组文件及调用方法探讨分享与交流.docx(12页珍藏版)》请在冰点文库上搜索。

VB封装工作组文件及调用方法探讨分享与交流.docx

VB封装工作组文件及调用方法探讨分享与交流

VB封装工作组文件及调用方法探讨(分享与交流)

发布:

2008-10-1812:

11 | 作者:

江羽 | 来源:

本站原创 | 查看:

1267次

前言Office中国社区门户_C(z*?

s(E|u_U5X_E

Office中国社区门户/DJ_TB___^

  此前我曾在论坛发过两篇文字,即关于《如何避开宏安全级限制启动MDB》与《VB建壳指定工作组并启动MDB》,由于成文较为仓促,文中有不少值得探究的地方,留待以后在文章中补充或更正。

_]_d_c6a_Q'X_{_U_H+a

x0本文与此前的两篇文字主题大同小异,仍围绕VB辅助ACCESS进行项目开发的主题,只是侧重点有所不同,但几篇文字又都相互关联,在实际项目开发中可以综合运用。

Office中国社区门户_J_@T8B_B:

w_O_~

本文主题为:

VB实现资源文件集成、封装及调用。

论坛中有许多朋友提及并关注这一话题,下面我将结合实例与大家共同分享自己有关这方面的一些心得。

权当抛砖引玉,还是那句话,如果此文对您有所帮助,那将是本人莫大之快事!

Office中国社区门户"M_q_e_G_i1L

∙本文讲解要点:

+A_B

Fv_T_]9r_a01、资源文件集成与封装

_U_x$W_}*q!

Y02、资源文件释放及调用Office中国社区门户_h;g_Q,|_E

3、封装技巧应用

∙系统及平台要求:

_K%v2R6^_T#G_S_Z01、操作系统为:

XP2

_n_]_f/r,f,\5E%\0L)f_{02、ACCESS为2003版

_iD_Y,Be$\/X#S03、VB为6.0

∙附注及说明:

_QI_gv-X+E01、本文围绕具体实例进行讲解。

有关实例及VB源码可到office中国江羽空间下载

t9Po_D%k_~02、实例含:

窗体图片素材、图标素材、编译的mdw文件集成.exe、VB源码Office中国社区门户9w_}_jq{@_J

3、实例演示:

将封装的“security.mdw”工作组文件释放到system32文件夹Office中国社区门户_P_~/U_y3A

4、本文默认你已对于VB6编程有一定了解

_k

y{(b_A_\__0第一章、资源文件集成

F

|_Y_P%B+E_l0Office中国社区门户.R)T_`+r_i&r_W

1.1初识VB资源编辑器Office中国社区门户_s_x_M'Cu8P_p_b!

e

  我们要实现资源文件集成封装到应用程序中,首要的工作就是将预集成资源文件(本文实例:

“security.mdw”工作组文件)寄存到VB资源编辑器中。

Office中国社区门户/}_ZD%f_U_o.o_J

那什么VB资源编辑器?

通俗说就是VB用于存放资源文件的容器。

VB的资源编辑器可以存放包括:

文本、图片、二进制数据等,几乎所有的Windows应用程序中的资源,当我们需要使用时,再从中释放或提取出来,供我们使用。

Office中国社区门户_n1Bw_dx_^7C6e_j

0A_c_s_A9a_;a3j01.2启动资源编辑器

'y+v_?

l8|_t_X6G_b'p_|B0

#f_m_l_z_@_M0  步骤一:

VB资源编辑器是外接程序,我们必须调用并启动它。

在VB编辑环境中点菜单[外接程序]—[外接程序管理器](见图1),启动外接程序管理器窗口。

Office中国社区门户9K_c2QS/Q+N"o_P%JF

  

o_Vl*OUI_t_|0

6o_c_u4F_v_W0T4j9K0

)U_c_O)jI%[0   (图1)

a&\-w/b)F:

E_R!

Y_E0  Office中国社区门户_~"X_I4Bq(]Q4t)n

  步骤二:

选择[VB6资源编辑器]选项—钩选[加载/卸载]—点[确定],你在工具栏中就能看到资源编辑器图标(见图2)。

Office中国社区门户_y_ds/v_^_`*V

  

x+u)]_Z+R*n;[~0

'h

`.@"k(S1d"L8U_]u#|*l0Office中国社区门户-k"^_\3o;~_|_@"e

                              (图2)

_c8vy"m%o0

_Q-Q_\M"K0  步骤三:

单击[资源编辑器图标](见图3)打开VB6资源编辑器窗口。

_j_`/MF-R%w1e1k6c0  Office中国社区门户4H_w_Tu_l

Office中国社区门户0]_p!

P_X_p:

d

_F*E-O*E_|/z_d[*U_b0

Y0H]/O

Ld01.3向VB资源编辑器添加自定义资源文件

_X\_Ay_~_S0P0  

_cE)x8|!

A-O_H9i0  步骤四:

单击窗口[自定义资源]图标(见图4),在[打开一个自定义资源文件]对话框中选择自定义文件(实例为:

“security.mdw”工作组文件),点[打开]按钮选定资源文件就添加到资源编辑器中(见图5),资源编辑器会出现CUSTOM文件夹及[101]自定义资源。

_F(V"c_Q/J_Q_N_p7v0  

+{_U/u4sB0

Office中国社区门户_C'F!

]+E6f6[

9X_[_E_u_H(r_Y

Kz0                              (图4)Office中国社区门户2W&w%t_R_N^_v

!

]_gts6j[_S&e_b+e_o_D0    Office中国社区门户_mk*M_S$I9]c_\

_\_g:

c_u_}_}_I9r"?

_b7u0Office中国社区门户_W$J_O7y:

q3Q_W3T_l_t_O

                              (图5)Office中国社区门户"N_uc__3c_{+{

/J0^0N_b_E_B6K0  步骤五:

点[VB资源编辑器窗口]的[保存]图标,弹出[资源文件另存为]对话框,点确定,才算真正完成我们的资源文件集成(见图6)。

  Office中国社区门户_r"t.q_W_`_R_g

  Office中国社区门户I2u_g_r;M2y6H_Yj

Office中国社区门户_C(r_r*c(e_Q%G_^

                 (图6)Office中国社区门户5x%Q_S2W)_

_~;J_T5o_c0第二章、资源文件释放及调用Office中国社区门户{_n2m%H3`_Q6O_M"Z:

Q^

Office中国社区门户(z*j_u_M8J_]_S

  要使用集成文件我们必须先释放已集成文件到指定文件夹,然后再调用就可以,实例是将工作组文件释放到Windows系统文件,即:

System32中。

要实现上述目标,我们必须先解决几个问题:

d3H_yg0b0

a_\3i:

E(t02.1获取系统文件夹System32路径Office中国社区门户_qy_`_J&r_j

  我们通过GetSystemDirectoryAPI函数来编写一个获取系统文件夹自定义函数,我们在工程中建立一个模块,并将如下代码复制到模块中。

自定函数模块可以自动获取系统文件夹路径。

_I

O_N2l_\4P8n!

\0Office中国社区门户0?

_D_DQ_`_q

实例代码如下:

Office中国社区门户"c_K_~_K!

A_K5r

 

_\(h.w_Y_A_l0Office中国社区门户_N_N*L_f"Y_J

OptionExplicitOffice中国社区门户_S_e_g_{4a9Q_p5j,f_h

PrivateDeclareFunctionGetSystemDirectoryLib"kernel32"Alias"GetSystemDirectoryA"(ByVallpBufferAsString,ByValnSizeAsLong)AsLong

_]_kV+]C#\_U0Office中国社区门户3n_Vf_A1x-@__

ConstMAX_PATH=250 '定义字符串长度

!

b7^a4}_O@1r3T_p0'*************************************************************************

+{7V_c_Q3X5D"}8I2|_y_I_M0'模块名:

GetWinSysDirOffice中国社区门户3@_v_Q8e3f

'------------------------------------------------------------------------------------------------------------

%f~_?

M_S3w_N__3`0d0'功能描述:

自定义读取Winddows\System32目录函数Office中国社区门户*Q_jo;C3v2^_H$Z_X

'输  入:

无Office中国社区门户7~_Z7}_Rp/N&T_U

'输  出:

GetWinSysDir(String)'System32路径

_loQ3g?

_r/K0'调用模块:

GetSystemDirectory获取系统目录

/@.o9m.[_C5E9W0'编  程:

江羽Office中国社区门户!

n4D1A%a_|_I2L_gK

'日  期:

2008-10-16Office中国社区门户_H"kO/W_t_v_e4D#~__

'*************************************************************************

!

nA_|_Y$oN(l_s_x#P_?

0PublicFunctionGetWinSysDir()AsStringOffice中国社区门户.q/y_D_{_z_W0t

  DimstrSysDirAsStringOffice中国社区门户4p:

H7H|_~)N

  DimLengthAsLongOffice中国社区门户:

u.Dy_DA

PJ

_q1F_@P.K_o.b;W_|_^0strSysDir=String(MAX_PATH,0)'赋值Office中国社区门户/Q_t*_

C_p_t&b5H

  'strSysDir为取得系统文件目录

1pF_eN6~q/E%r)}_s0  Length=GetSystemDirectory(strSysDir,MAX_PATH)

8L_?

_Ck_sg)}`0  '去掉多余的空格Office中国社区门户R8v_L3J_h_d

  strSysDir=Left(strSysDir,InStr(strSysDir,Chr(0))-1)

_P6r_i/S9M&m'h_w#}0  '赋值输出系统路径Office中国社区门户8z'I%E_W'Q?

5H

  GetWinSysDir=strSysDirOffice中国社区门户_A_I_kW-h)Z9e_K/S

EndFunctionOffice中国社区门户9f\'JO8H_L_w

_y;o[(`]_A)W02.2资源文件释放方法解析Office中国社区门户2N_g

{8G_To_V

  我们可以通过编程,将资源编辑器中文件,以自定义文件名释放到指定文件夹,举例说明,假如:

之前我们已将MyPro.exe文件集成至VB资源编辑的CUSTOM中,其资源编辑器中编号101,我们编程实现:

将MyPro.exe文件名释放到C盘,代码如下:

 Office中国社区门户_W_J-`_q9R_t_j

Office中国社区门户_i-s"a7u_]_BG

ConstExeFile=114688      '欲生成的文件大小,原文件112K

_L:

d_b_n

dB_X_M4cb_K4C0  DimExeMy()    AsByte    'Btye类型的数组,存放EXE文件Office中国社区门户2t_v_v*o"g4|4y__j

  DimCounter      AsLong  '文件字节数Office中国社区门户1e_qn+rX)]_V

  '将文件读入数组Office中国社区门户6j;]_E`_?

2D_.~

ExeMy=LoadResData(101,"CUSTOM")Office中国社区门户.d5U.Y,]_\_F.nHg_O_g

  Open"C:

\MyPro.exe"ForBinaryAs#1Office中国社区门户4X_^R_Y.C0D2?

X

  '从0Byte开始因此以文件大小-1Byte为终值

"m4I+M_vL6o}_F0  ForCounter=0ToExeFile-1

~%u_k#t7wP'bh'm_@0    Put#1,,ExeMy(Counter)'释放文件

2D;c0W+~_xr:

g_]!

x;L0  NextCounterOffice中国社区门户_x_m9l*L'F

  Close#1

_D_K%c_h_s1@0特别说明:

Office中国社区门户_cf_a&Z!

v_hn

  1、ConstExeFile=114688中欲生成的文件大小,是根据你前面集成到VB资源编辑器中的文件实际大小换算而来,假如:

ExeMy.exe文件为112K,必须换算成字节,1K=1024字节,112K换算后等于114688字节。

不多也不能少,否则释放文件将报错。

Office中国社区门户7L!

r3Q!

G(G_G_v

  2、LoadResData(101,"CUSTOM")中101为文件集成在资源编辑品中的编号,CUSTOM为文件类型,这决定着你将释出哪个文件。

d2~r(U?

#C_y

U0    3、Open"C:

\MyPro.exe"ForBinaryAs#1中"C:

\MyPro.exe",给出了将要释放文件名:

MyPro.exe,路径:

C:

\,均为字符串。

/[_Q6k0t_u_U-B9r_[_U0∙∙⏹文件名可以自定义,与集成到资源编辑器中的文件名并不要求一样Office中国社区门户_W:

u_H&ILQ_T

∙∙⏹将要释放文件的路径可以根据自己需要而定

_E_V"G4B3f_a&aw-b0Office中国社区门户8d#H2u_e'c_^_w#^

2.3实例中释放工作组文件代码及说明:

Office中国社区门户3zpd9r6dT8Sg_\K"s

 

_|'eN_P9|_|_vG,^_r_j0Office中国社区门户_W/q_S_lv"|+Lw

'*************************************************************************

8z_q_]6o&l_LL_]0'模块名:

ReleaseMdwOffice中国社区门户8w.];P%Q_w_C8D1Q

'-------------------------------------------------------------------------Office中国社区门户*t_O_q_^_t-AF

'功能描述:

自定义过程,释放工作组文件到指定路径,并定义指定名称Office中国社区门户_L:

e_F+d_|0N0bL

'输  入:

strMdw(String)    工作组文件名Office中国社区门户_\5b&a_l9Q2]

'        intTimeAsInteger  关闭窗体延迟时间

h)L!

K_S_b_h_Fn_VH_M0'输  出:

无Office中国社区门户_p"yfL_U

k_e-Q_T0F

'调用模块:

GetWinSysDir获取系统目录自定义函数Office中国社区门户_j(Z)u__J_?

:

c

'实  例:

ReleaseMdw"security.mdw",2000Office中国社区门户_S_T_K`%ji;q_g

'编  程:

江羽

!

x_O

K5vX_z_Y0'日  期:

2008-10-16Office中国社区门户8u'c)@!

g_S}-k+M

'*************************************************************************

8S4q_h-j_h_x0SubReleaseMdw(ByValstrMdwAsString,ByValintTimeAsInteger)Office中国社区门户_J_s_i_R;{*Z_V;@_d

  

_aF_L^_E_T_U_[0ConstSecurity=114688  '欲生成的工作组文件大小

1V3|_c"@!

Z_b'z0    Dimmdw()  AsByte  'Btye类型的数组,存放工作组文件

%Y)e;g([_m6Q_K0    DimCounter  AsLong  '对工作组文件字节数进行循环

/Q"z_T'S_h.[5x-l0    DimstrSysPath  AsString  '系统文件路径

_q_@_K_J_L~0  

5z_O_N_I:

j!

w*Y0P_I0Label1.Caption="系统正在配置ACCESS环境,请稍候......."Office中国社区门户_u_d_p#_/[7[_X_`

  

1If0Z_x_^0'获取Windows系统文件夹System32路径,并赋值变量

_y7G%_3^_y_p-v1L+~_^_q0    strSysPath=GetWinSysDirOffice中国社区门户_w-H

m_j_d$z6w_qg

    mdw=LoadResData(101,"CUSTOM")'将文件读入数组

_a;u_NO_i_Q0  

_L_]4[_Q)?

#}7Kh_I0'判断当前路径工作组文件是否存在,&_

_w_tw2v/w2s4W4bz7x0  存在则退出,不存在则释放工作组文件

$Z_q2I)B_d4|_u_i_C't0  IfDir(strSysPath&"\"&strMdw)=""Then

&z-d_k(G_?

!

J_W_S0    '释放工作组文件到系统文件夹

_K___O_?

X_o_ZF0    OpenstrSysPath&"\"&strMdwForBinaryAs#1

5@6bv_C9o_H0    '注意因为从0Byte开始因此以文件大小-1Byte为终值Office中国社区门户_X

Q(_M

W_U_Jf_M

    ForCounter=0ToSecurity-1Office中国社区门户L)s_c*Z_u%g_a$o

      Put#1,,mdw(Counter)'释放工作组文件Office中国社区门户0~_P!

g9W_c_h_l;R_A6`_g

      DoEvents'转让控制权Office中国社区门户?

)I_K)m9A_p_s_]

    NextCounter

-J_E(u_k$B0    Close#1Office中国社区门户_I4z-I&g_K_O

  EndIfOffice中国社区门户_}_Q-g_U_h_c

  

$K7n\9^

M_j8H4x+`u_`0Label1.Caption="系统配置成功,正在启系统......."

$o)?

0f_l_N8X&Z0  '启动计时器,在指定秒数后关闭窗体Office中国社区门户_C_O/k_h_W_V_E%[_LN

  Timer1.Interval=intTimeOffice中国社区门户_s5]

x:

CS_pc_S

EndSub  以上是实例中的代码,内有详细注释,就不做特别说明,你可以将以上代码复制到工程中的Form1窗体中。

Office中国社区门户9~-i_z_\&[_u_c_A!

\_z

代码功能:

是将集成在VB资源编辑器工作组文件,释放到系统文件夹中,即:

System32中,以便我们后面调用。

我们自定义了一个过程,过程预留了两个接口,一是将释放后的文件名,二是计时器触发时间,以便在指定时间关闭窗体,并关闭应用程序。

Office中国社区门户^-J.A_V_M_o:

^

_g+Ml_rK3}_p'F4f0第三章、封装应用程序     Office中国社区门户_W_E?

_[1p_U

Office中国社区门户i_xL_n't$}6J_o1}

[size=10.5pt]  前面我们已经完成了关键的几个步骤,我们现在要做的就是编译文件,在编译之前,我们还得做些准备工作。

K_Vk_A_e/B,n0Office中国社区门户6W_o_\_u6r)@_C

3.1添加控件并完善代码Office中国社区门户"__E_K3M4P_[I4c.@

  在Form1窗体中加入

时钟控件,控件名:

Timer1;加入

标签控件,控件名Label1。

[size=10.5pt]添加窗体加载事件,时钟控件计时器触发事件代码。

Office中国社区门户Tg___f'd/h_o(b

[size=10.5pt]实例代码如下:

.s/W_H_S_M)U0

 Office中国社区门户.@_n_N_Y_o'a_o_f"Y

Office中国社区门户_e3hG"F+A3~'r_b9V

'*************************************************************************

_z7r_]_MI_l0'模块名:

Form_Load

#?

$T_E_p;x-p0'------------------------------------------------------------------------------------------------------------

6L_@_m+{5F_n_}_h2G0'功能描述:

窗体加载事件

:

Gc_[_}_h0'输  入:

无Office中国社区门户_yO$Y_C^"Z)Z$FJ

'输  出:

无Office中国社区门户_D1n0x_~_R_{

'调用模块:

ReleaseMdw释放工作组文件到指定路径,本实例路径为系统文件夹Office中国社区门户_M_P1W.YT_BX

'编  程:

江羽Office中国社区门户T_h,N,g_c8B

'日  期:

2008-10-16

_e&L*d-Z6o_v_w&z0'*************************************************************************

_K_D_F)eNX/T*t"k0PrivateSubForm_Load()

6z&L_`_v3]_k+\*O.i0'显示窗体Office中国社区门户_Q+x_{-\+j1\

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2