关于VB软件只能在指定电脑运行

qiuye258 2008-06-26 06:10:30
这几天给公司做了一个VB的OA网站登陆器,经理要求只能在公司内部的电脑使用。假如软件被流传到外面也运行不了。
所以很头疼,恳请大家指教下,谢谢!
要求简单方便就可以了!
...全文
392 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanyue112 2008-07-10
  • 打赏
  • 举报
回复
大哥们。。。这有什么难啊。。。你不公布你的OA到公网上就成了。
spotty2008 2008-07-10
  • 打赏
  • 举报
回复
难啊 想想想...
用户 昵称 2008-07-09
  • 打赏
  • 举报
回复
换个经理就可以了。
jy_2007 2008-07-09
  • 打赏
  • 举报
回复
个人觉得用硬盘物理序列号和CPU序列号就行了,两个都是唯一的。
lovessll 2008-07-02
  • 打赏
  • 举报
回复
学习了
shakoe 2008-07-02
  • 打赏
  • 举报
回复
比较清晰的架构是

在你局网的服务器上专门开个验证用的端口

客户端运行前去查询下这个端口是否存在(发个字符回显之类的,当然你要搞的很完美可以把自己电脑的银盘号带上去,服务器拿来和保存的有效银盘号比较)

要是出了这个局网就根本访问不了这个端口(或者银盘序列号不对)
dandelionl 2008-07-01
  • 打赏
  • 举报
回复
mac
chillystar 2008-07-01
  • 打赏
  • 举报
回复
最方便是在OA数据服务器上增加IP筛选,或在OA数据服务器前加个带防火墙的路由器,设置成只允许公司网段或指定IP访问。既不用改代码,又不用加认证服务器。
螺丝刀2000 2008-07-01
  • 打赏
  • 举报
回复
帮你顶一下。
tortoisespeed 2008-07-01
  • 打赏
  • 举报
回复
公司里有域环境的话,可以直接用域认证,即windows认证,很方便的。
qiuye258 2008-06-28
  • 打赏
  • 举报
回复
谢谢smoked ,那我公司的硬盘系列号什么定义或者手工指定呢?
smoked 2008-06-28
  • 打赏
  • 举报
回复

Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Private Sub Command1_Click()
Dim SN As Long
Dim str1 As String * 255
Dim str2 As String * 255

GetVolumeInformation "C:\", str1, Len(str1), SN, 0, 0, str2, Len(str2)
'SN 即为硬盘序列号
End Sub
lt7777e 2008-06-28
  • 打赏
  • 举报
回复
到邮局,奥~!期间!不能寄光盘了,无论是什么光盘都不寄了,就连加密锁也当成U盘,不能寄了!



我做的一款实用软件,在一个行业全国范围都非常实用的,原来用的是硬件加密锁,现在怎么办啊~~!

只要有一个破解版,一下就会在行业内部传开了,投资就血本不归啊~~!



我的软件,客户要在台式机上用,也要用笔记本(移动办公)使用。用加密锁,每论他在什么地方用都方便~!

现在用什么加密方法才能满足啊~~ ,如果用硬盘ID类捆绑,对软件的价值伤害太大了,捆死了客户,就是捆死了自已。



还有,如果客户不能上网呢?不能要求客户每次使用都要链网取受权啊~~!

头痛啊~解决不了就只有关门,到北京看个球了~

barenx 2008-06-27
  • 打赏
  • 举报
回复
在公司内网加一台认证服务器,软件可以通过认证服务器识别网络环境,也可以实现用户认证
qiuye258 2008-06-27
  • 打赏
  • 举报
回复
我是意思是最好能绑定公司的电脑硬盘信息!
cacar2008 2008-06-27
  • 打赏
  • 举报
回复
//[找一台服务器,每台机器只有连接到服务器才能运行]
qiuye258 2008-06-27
  • 打赏
  • 举报
回复
谢谢楼上的,我的VB代码如下,真不知道什么整合进去!



Private Sub Command1_Click()

If Text1.Text = "" Then MsgBox "用户名不能为空": Exit Sub
If Text2.Text = "" Then MsgBox "密码不能为空": Exit Sub


Dim LoginMessage As String

Dim md5Pwd As String

md5Pwd = Md5_String_Calc(Text2)

If Option2 = False And Text1.Text <> "" And Text2.Text <> "" Then


Shell "C:\Program Files\Internet Explorer\IEXPLORE.EXE " & "http://127.0.0.1/admin/oa_login.asp?action=login&user_name=" & Trim(Text1.Text) & "&password=" & md5Pwd & "", vbNormalFocus

Else

Shell "C:\Program Files\Internet Explorer\IEXPLORE.EXE " & "http://127.0.0.1/admin/sms_login.asp?action=login&user_name=" & Trim(Text1.Text) & "&password=" & md5Pwd & "", vbNormalFocus

End If


End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub Picture1_Click()

End Sub

Private Sub Image2_Click()

End Sub

xjtuwjy 2008-06-27
  • 打赏
  • 举报
回复
'验证用户合法性
SQL = "select * from userinfo where SERIALNUMBER='" & GetSerialNumber("c:\") & "' and yhm='" & LCase(txtUserName.Text) & "'"
adoRS.Open SQL, DB, adOpenDynamic, adLockReadOnly

If adoRS.EOF Then
'向LOGINMSG添加登录信息
SQL = "insert into LOGINMSG(CLIENTTYPE,STATE,SERIALNUMBER,WINUSERNAME,APPUSERNAME,LOGINTIME,LOGOUTTIME,CNAME,VER) values('Client','ERROR','" & GetSerialNumber("c:\") & "','" & My_GetUserName & "','" & txtUserName.Text & "',getdate(),NULL,'" & My_GetComputerName & "','" & strVerUpgrade & "')"
DB.Execute SQL
adoRS.Close
MsgBox "请确认你对此软件的合法使用权,再重新打开程序。" & Chr(10) & "如有问题请与系统管理员联系!", vbOKOnly + vbCritical, " 非法使用"
Exit Sub
End If
adoRS.Close

qiuye258 2008-06-27
  • 打赏
  • 举报
回复
谢谢以楼上所有朋友!我也查了很多相关资料,认为绑定机器的硬盘序列号和CPU序列号比较简单方便!
但是具体是代码是怎样的呢,望指教!
feelsgood 2008-06-27
  • 打赏
  • 举报
回复
绑定机器的硬盘序列号和CPU序列号
加载更多回复(4)

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧