重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
步骤一:打开需要制作安装程序的VB.Net项目
成都创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都网站设计、成都网站建设,成都网站设计,一元广告,成都做网站选成都创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
点击菜单【文件—新建项目】出现如图01的对话框单击【其他项目类型—安装和部署】选择【安装项目】如图:
步骤二:
双击【My Project】(在“解决方案资源管理器”里面呢),如图所示。
步骤三3:单击【引用】选项卡,查看解决方案的引用项,关注一下.Net类型的引用,本解决方案引用.Net类型的版本是2.0版。查看这个信息直接关系到最终安装文件的大小。
右键单击“解决方案资源管理器”中【Setup1】,选择【添加—项目输出】,选择“主输出”后单击【确定】。
再次右键点击【Setup1】,选择【属性】,跳出对话框。
步骤四:这里的设置可是关键中的关键
步骤五:“选择要安装的系统必备组件”,解决的是运行可执行文件环境的问题运行使用VB.Net编写的程序,必须在系统中安装.Net Framework(也有软件使用虚拟环境运行的)。“查看引用”查到的信息就用到了。如果解决方案只是引用了2.0版本的框架(.Net Framework),默认的系统组件选择。
可以选择框架3.5,建议使用框架2.0,因为框架2.0大小是30M,而框架3.5却有300M之巨.指定系统必备组件的安装设置”这个选项也挺有用。如果编写了一个很简单的程序,想发布(此发布不是前述的发布)出去让大家使用,而又不想拖着少则几十兆多则几百兆的框架的话,那么可以选择第一个互斥按钮。如果担心用户在安装程序时上网不方便,不能从供应 商那儿下载框架的话,那么,只好把框架拖上喽(这也是为什么在能选择框架2.0的时候莫要选择框架3.5的原因,安装程序越小越好,用户如果安装了几百 兆的程序,发现打开的只是个简单的计算器的话,会气的摔键盘的!)
在你保存工程的的文件夹里面的Debug文件夹里面,如:
我的工程文件夹是这个:D:\Projects\test
生成出来的EXE文件就在:D:\Projects\test\Debug里面
里面有一个以工程名称命名的EXE文件,那个就是了。
(记住:要先在VS2008里面运行一次程序,文件夹里面才会有EXE文件的)
一下代码将自动完成检测:
Imports System.IO
Public Class Form1
Public Const WM_DEVICECHANGE = H219
Public Const DBT_DEVICEARRIVAL = H8000
Public Const DBT_DEVICEREMOVECOMPLETE = H8004
Dim DriveLetter As String
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_DEVICECHANGE Then
Select Case m.WParam
Case DBT_DEVICEARRIVAL
Dim s() As DriveInfo = DriveInfo.GetDrives
For Each drive As DriveInfo In s
If drive.DriveType = DriveType.Removable Then
DriveLetter = drive.Name.ToString()
Debug.WriteLine("U盘 :" DriveLetter "已插入.")
End If
Next
Case DBT_DEVICEREMOVECOMPLETE
Dim s() As DriveInfo = DriveInfo.GetDrives
For Each drive As DriveInfo In s
If drive.ToString = DriveLetter Then Exit Sub
Next
Debug.WriteLine("U盘:" DriveLetter "已卸载!")
End Select
End If
MyBase.WndProc(m)
End Sub
End Class
呵呵,其实楼主完全可以用易语言编写一个,不过用VB也挺简单的:
新建工程,窗体上放置一个文本框用来接受用户写入的电话号码;一个命令按钮用来开始执行。要用到windows的TAPI32.DLL动态链接库,通过动态链接库通知Windows,请求使用调制解调器进行拔号。
Private Declare Function tapiRequestMakeCall Lib "TAPI32.DLL" (ByVal DestAddress$, ByVal AppName$, ByVal CalledParty$, ByVal Comment$)
Private Const TAPIERR_NOREQUESTRECIPIENT = -2
Private Const TAPIERR_REQUESTQUEUEFULL = -3
Private Const TAPIERR_INVALDESTADDRESS = -4
Private Sub Command1_Click()
Dim buff As String
Dim nResult As Long
’打开调制解调器拨号
nResult = tapiRequestMakeCall(Trim$(txtNumber), CStr(Caption), "Test Dial", "")
’显示出错信息
If nResult 0 Then
buff = "非法操作 : "
Select Case nResult
Case TAPIERR_NOREQUESTRECIPIENT
buff = buff "未找到Windows拨号程序接口"
Case TAPIERR_REQUESTQUEUEFULL
buff = buff "拨号已连接."
Case TAPIERR_INVALDESTADDRESS
buff = buff "不正确的号码"
Case Else
buff = buff "未知错误."
End Select
MsgBox buff
End If
End Sub
Private Sub Form_Load()
Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
EnableDial
End Sub
Private Sub Text1_Change()
EnableDial
End Sub
Private Sub EnableDial()
Command1.Enabled = Len(Trim$(Text1.Text)) 0
End Sub
Win2K/WinXP/Vista测试通过,不过有些机器不太兼容。