您当前的位置: 首页 >  vr

dawn

暂无认证

  • 1浏览

    0关注

    204博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

利用VRV检查WPS软件的安装率

dawn 发布时间:2021-10-26 22:50:05 ,浏览量:1

  VRV是一款非常好的国产安全软件,功能很强大,细节做得也比较精细。也有一点小瑕疵,比如在检查WPS软件的安装上有时候不准,这个问题让人犯愁,想了几个办法来解决。

  我的做法:

  ① 如果正确安装了WPS,但是却被扫描没有安装,就进行下面的操作。   打开C:\Windows\SysWOW64这个目录,并找到EdpUninstallSoftware.crc这个文件,删除它。重启计算机。

  ② 如果上述操作无法提取到WPS的安装,就卸载WPS,重新启动,再安装WPS。

  ③ 如果上述措施还是不行,就在磁盘上搜索uninstalledp.exe,运行,输入卸载密码(这个在后台软件上可以找到),然后再重新安装VRV软件。

  ④ 如果上面措施还是不行,终极大招,重做系统,重新注册,这个做法几乎没有失误。

  ⑤ 在控制页面上终端控制获取安装信息,这个操作没有成功过,总是报错,这也是软件要改进的地方。不清楚是从服务器上取数据还是直接从客户端上取,端口号也不清楚。

  正确计算机WPS的安装率。

  如果用户更换了IP地址,可能导致设备总数增加(MAC地址数没有)。

  所以要提高安装率并正确计算结果,第一找到没有安装的计算机,第二找到重复的记录。

  我在EXCEL中写了个小程序,在完成上面两步后计算安装率。

'对比两个表的数据列进行检查
Dim IFOR, JFOR As Integer
Dim SYQCY, SYTGS As String
Dim S1, S2, S3, S4, S5, S6 As String
Dim SResult As String              '记录检索结果
Dim allEquipment As Integer        '设备记录数
Dim OK As Integer
Dim ICOUNT As Integer
Dim allWps As Integer              'WPS安装记录数
Dim DuplicateRecord As Integer     '重复记录数
Dim explainTxt As String           '说明文字
Dim installationRate As Single     '安装率
Dim destTable As String            '对比的表
Dim srcTable As String             '源表
OK = 0
srcTable = "注册总数"
destTable = "WPS-Office安装记录"
DuplicateRecord = 0
allEquipment = 593
allWps = 580
'初始化
Sheets(srcTable).Activate
Columns("W:W").Select
Range("W560").Activate
Selection.Delete Shift:=xlShiftToLeft       '删除列内容
Sheets(destTable).Activate
Columns("K:K").Select
Range("K550").Activate
Selection.Delete Shift:=xlShiftToLeft
For IFOR = 3 To allEquipment
    Sheets(srcTable).Activate
    Range("I" + Trim(Str(IFOR))).Select
    SYQCY = UCase(Selection.FormulaR1C1)
    Sheets(destTable).Activate
    For JFOR = 3 To allWps
        'DoEvents   '释放系统控制权
        Range("I" + Trim(Str(JFOR))).Select
        SXJYT = UCase(Selection.FormulaR1C1)
        S1 = Left(SXJYT, 2)
        S2 = Mid(SXJYT, 3, 2)
        S3 = Mid(SXJYT, 5, 2)
        S4 = Mid(SXJYT, 7, 2)
        S5 = Mid(SXJYT, 9, 2)
        S6 = Right(SXJYT, 2)
        SXJYT = S1 + "-" + S2 + "-" + S3 + "-" + S4 + "-" + S5 + "-" + S6
        SResult = "没有安装!"
        If SYQCY = SXJYT Then
            '找到了
            SResult = "★"
            OK = OK + 1
            '记录找到的次数,大于1就表示是重复的记录,对比MAC地址
            Range("K" + Trim(Str(JFOR))).Select
            ICOUNT = Val(Selection.FormulaR1C1)
            ICOUNT = ICOUNT + 1
            If ICOUNT > 1 Then DuplicateRecord = DuplicateRecord + 1
            Selection.FormulaR1C1 = ICOUNT
            Exit For
        End If
    Next
    Sheets(srcTable).Activate
    Range("W" + Trim(Str(IFOR))).Select
    Selection.FormulaR1C1 = SResult
Next
allWps = allWps - 2
allEquipment = allEquipment - 2
installationRate = allWps / (allEquipment - DuplicateRecord)
installationRate = Round(installationRate * 100, 2)
explainTxt = "   设备总记录:" + Str(allEquipment)
explainTxt = explainTxt + vbCrLf + "   WPS安装数:" + Str(allWps)
explainTxt = explainTxt + vbCrLf + "   重复记录数:" + Str(DuplicateRecord)
explainTxt = explainTxt + vbCrLf + "   WPS没安装数:" + Str(allEquipment - allWps - DuplicateRecord)
explainTxt = explainTxt + vbCrLf + "   实际安装率:" + Str(installationRate) + "%"
MsgBox explainTxt, , "检查结果 10月28日 18:30"

  今天看了源程序,昨天为了快速得到结果用了两个For循环,第一个是应该的,第二个是可以避免的,第二个For循环换成一个Find函数就可以了,修改后程序的运行起来飞快。

Sub Dawn1029()
'对比两个表的数据列进行检查
Dim ifor As Integer
Dim SYQCY As String
Dim S1, S2, S3, S4, S5, S6 As String
Dim allEquipment As Integer        '设备记录数
Dim ICOUNT As Integer
Dim DuplicateRecord As Integer     '重复记录数
Dim explainTxt As String           '说明文字
Dim installationRate As Single     '安装率
Dim destTable As String            '对比的表
Dim srcTable As String             '源表
Dim findResult As Range            '检查结果
OK = 0
srcTable = "注册总数"
destTable = "WPS-Office安装记录"
DuplicateRecord = 0
allEquipment = 593
allWps = 580
allEquipment = 593
allWps = 580
'初始化
Sheets(srcTable).Activate
Columns("W:W").Select
Range("W560").Activate
Selection.Delete Shift:=xlShiftToLeft       '删除列内容
Sheets(destTable).Activate
Columns("K:K").Select
Range("K550").Activate
Selection.Delete Shift:=xlShiftToLeft
For ifor = 3 To allEquipment
    Sheets(srcTable).Activate
    Range("I" + Trim(Str(ifor))).Select
    SYQCY = UCase(Selection.FormulaR1C1)
    S1 = Left(SYQCY, 2)
    S2 = Mid(SYQCY, 4, 2)
    S3 = Mid(SYQCY, 7, 2)
    S4 = Mid(SYQCY, 10, 2)
    S5 = Mid(SYQCY, 13, 2)
    S6 = Right(SYQCY, 2)
    SYQCY = S1 + S2 + S3 + S4 + S5 + S6
    Sheets(destTable).Activate
    Set findResult = Range("I:I").Find(SYQCY)
    If Not (findResult Is Nothing) Then
        '找到
        SResult = "★"
        OK = OK + 1
        '记录找到的次数,大于1就表示是重复的记录,对比MAC地址
        Range("K" + Trim(Str(findResult.Row))).Select
        ICOUNT = Val(Selection.FormulaR1C1)
        ICOUNT = ICOUNT + 1
        If ICOUNT > 1 Then DuplicateRecord = DuplicateRecord + 1
        Selection.FormulaR1C1 = ICOUNT
    End If
    Sheets(srcTable).Activate
    Range("W" + Trim(Str(ifor))).Select
    Selection.FormulaR1C1 = SResult
Next
allWps = allWps - 2
allEquipment = allEquipment - 2
installationRate = allWps / (allEquipment - DuplicateRecord)
installationRate = Round(installationRate * 100, 2)
explainTxt = "   设备总记录:" + Str(allEquipment)
explainTxt = explainTxt + vbCrLf + "   WPS安装数:" + Str(allWps)
explainTxt = explainTxt + vbCrLf + "   重复记录数:" + Str(DuplicateRecord)
explainTxt = explainTxt + vbCrLf + "   WPS没安装数:" + Str(allEquipment - allWps - DuplicateRecord)
explainTxt = explainTxt + vbCrLf + "   实际安装率:" + Str(installationRate) + "%"
MsgBox explainTxt, , "检查结果 10月28日 18:30"
End Sub

  前面的程序运行起来后我是做别的事情等一会,耗时一般在22秒,修改后的程序只需要3秒就出了结果。

关注
打赏
1664252102
查看更多评论
立即登录/注册

微信扫码登录

0.0503s