关于使用Extern对象得到机器的当前登陆用户名
Dim result, user, leng
user = string(100, "*")
leng = 100
Extern.Declare micLong, "GetUserName", "advapi32.dll", "GetUserNameA", micString,micLong
result = Extern.GetUserName(user, leng)
原本在robot脚本中调用这个dll函数定义:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
改到用在QTP中以后,为什么一跑这段代码就出错呢?而且会引起QTP崩溃。求助高手如何在QTP中得到当前机器的登陆用户名。谢谢。
API的定义:
VB声明
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
说明
取得当前用户的名字
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数类型及说明
lpBufferString,一个字串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名
nSizeLong,初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量
示例
Dim s$, cnt&, dl&
cnt& = 199
s$ = String$(200,0)
dl& = GetUserName(s$, cnt)
Debug.Print Left$(s$, cnt); cnt
直接用environment不行么,不见得robot用了QTP也一样用啊 print Environment.Value("UserName") lyscser 兄说得对,有点绕远了。。。
不过这个算不算一个QTP的bug,哈哈 也谢谢风雪夜归人:)
页:
[1]