76、同一个
Form 中若要将 OptionButton 分组,该如何做? 77、VB 32-bits
之后的版本,无论用 Len 或是 LenB 都无法正确的计算中英文混合字串的长度,有没有解决的办法? 78、Visual Basic
程式开发完成后,可否把执行时相关的文档一并销售? 79、我想知道某一部电脑出现在
"网路上的芳邻" 时的名称,也就是"电脑名称",该如何做? 80、我想知道某一部电脑目前的
Login User 是谁,该如何做?
76、同一个 Form 中若要将 OptionButton
分组,该如何做?
在同一个 Container 中,只能放置一组 OptionButton,所以若要在一个 Form 中放置一组以上之 OptionButton
时,必须以不同之 Container 区隔。
而在 VB 中可当作 Container 的物件有 Form / PictureBox / Frame ...等。
77、VB 32-bits 之后的版本,无论用 Len 或是 LenB
都无法正确的计算中英文混合字串的长度,有没有解决的办法?
这是由于 VB 32-bits 都是采 Unicode,Unicode 的储存方式无论中英文字,均是以
2bytes 来储存,有两个方式可以解决:
解法1: |
'假设欲计算字串 str1 的长度 Dim str1 As
String Dim i As Long Dim c As Long Dim n As Long
For
i = 1 To Len(str1) c = Asc(Mid(Str, i,
1)) If c >= 0 And c < 128
Then n = n + 1
'计算英文
Else n = n + 2
'计算中文 End If Next i |
解法2: |
Lenb(Strconv("abcd中英文混合字efg",
vbFromUnicode)) |
78、Visual Basic
程式开发完成后,可否把执行时相关的文档一并销售?
在下列条件下可以不须支付权利金便可以重制并散布 Run-time Modules (限于可执行文档、安装文档、ISAM
和Rebuild文档):
1.将 Run-time Modules
配合作为您的软件的一部份一同散布。 2.不使用微软的名称,标章或商标来行销您的软体。 3.附加一个您软件的有效著作权通知。 4.同意对微软或其供应商因为您软体的散布和使用所导致的请求、诉讼,包括律师费、赔偿、为微软或其供应商辩护使其不受损害。
79、我想知道某一部电脑出现在 "网路上的芳邻"
时的名称,也就是"电脑名称",该如何做?
其实出现在 "网路上的芳邻" 中的名称, 就是我们在 "控制面板" --> "网路" --> "个人资料" -->
"电脑名称" , 要抓这个名称, 有好几个方法, 但有的比较复杂, 例如, 直接从注册表抓, 以下的方法则比较简单. ( VB4-32
以上)
请在声明区中放入以下声明 :
Private Declare Function GetComputerName Lib "kernel32" Alias
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function ComputerName() As String Dim cn As String Dim ls
As Long Dim res As Long
cn = String(1024, 0) ls = 1024 res
= GetComputerName(cn, ls)
If res <> 0 Then ComputerName =
Mid(cn, 1, InStr(cn, Chr(0)) - 1) Else ComputerName = "" End
If End Function
程序中要使用时只要直接 call 即可.
例 : Msgbox "ComputerName=" & ComputerName
80、我想知道某一部电脑目前的 Login User 是谁,该如何做?
请在声明区中放入以下声明 :
Private Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function UserName() As String Dim cn As String Dim ls As
Long Dim res As Long
cn = String(1024, 0) ls = 1024 res =
GetUserName(cn, ls)
If res <> 0 Then UserName = Mid(cn, 1,
InStr(cn, Chr(0)) - 1) Else UserName = "" End If End
Function
程序中要使用时只要直接 call 即可.
例 : Msgbox "UserName=" &
UserName |