找回密码
 加入
搜索
查看: 42|回复: 6

[系统综合] 根据电脑MAC地址判定是否应该启动相应程序

[复制链接]
发表于 昨天 13:28 | 显示全部楼层 |阅读模式
悬赏20金钱未解决
本帖最后由 532918457 于 2024-10-24 13:31 编辑
#include <Array.au3>
 
; 获取MAC地址
Func GetMACAddress()
    Local $objWMIService = ObjGet("winmgmts:{authenticationLevel=pktPrivacy}\\\\.\\root\cimv2")
    Local $colItems = $objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled = True")
    Local $macAddress = ""
 
    For $objItem In $colItems
        $macAddress = $objItem.MACAddress
        ExitLoop
    Next
 
    Return $macAddress
EndFunc
 
; 根据MAC地址启动程序
Func LaunchProgramByMAC(ByRef $macAddress, ByRef $programPath)
    Local $desiredMac = "00:11:22:33:44:55"; 替换为你想要启动程序的MAC地址
    If $macAddress == $desiredMac Then
        Run($programPath)
    EndIf
EndFunc
 
; 主程序
Local $macAddress = GetMACAddress()
Local $programPath = "E:\AU3\123.exe" ; 替换为你想要启动的程序路径
LaunchProgramByMAC($macAddress, $programPath)
以上代码是由百度AI自动生成的,但是我也没明白他获取MAC地址用的命令的意思,我现在的场景是拥有多张网卡的,但是又怎么定位到我需要的网卡呢,是根据网卡的名字的吗?


我的目的是想根据某一台电脑的MAC地址作为凭证来启动某一程序。这样就能保证这个程序只能在这台电脑使用。

发表于 昨天 14:26 | 显示全部楼层
如果多张网卡,那么是否可以先用cmd  ipconfig /all  来获取所有网卡信息并写入文本里,然后逐行去匹配你要执行的mac地址。
发表于 昨天 14:31 | 显示全部楼层
可以使用wmic nicconfig where "ipenabled=true" get ipaddress, MACaddress > 1.txt    可以用这个命令对,本机的所有 的网卡输入IP地址和MAC到文本1.txt中,然后你可以去读取这个文件中你所需要判断的哪个MAC就行。
发表于 昨天 14:34 | 显示全部楼层
然后再使用filereadline这个读这个1.txt文件的行内容,读出来的内容,再判断一下,是不是你所需对应的MAC就行了
 楼主| 发表于 昨天 15:33 | 显示全部楼层
ttmv2019sx 发表于 2024-10-24 14:31
可以使用wmic nicconfig where "ipenabled=true" get ipaddress, MACaddress > 1.txt    可以用这个命令对 ...

没用过这些命令,究竟是怎么使用法?
发表于 昨天 15:56 | 显示全部楼层
532918457 发表于 2024-10-24 15:33
没用过这些命令,究竟是怎么使用法?

这个命令,,你可以先在DOS下  CMD中,输入上面的命令,会得到一个文件,你看一下这个文件里面的内容,是不是你所需要的,,这个是第一步,你先看
发表于 2 小时前 | 显示全部楼层
Local $mac = "00:11:22:33:44:55"; 替换为你想要启动程序的MAC地址
Local $tempTXT = @TempDir & "/1.txt"

Run(@ComSpec & " /c " & 'wmic nicconfig where "ipenabled=true" get ipaddress, MACaddress > %temp%\1.txt',"",@SW_HIDE)
$lmac = FileRead($tempTXT)
if StringInStr($lmac,$mac) Then
        ConsoleWriteError("匹配到MAC,准备启动某个程序。")
        run("E:\AU3\123.exe")  ; 替换为你想要启动的程序路径
Else
        ConsoleWriteError("没有匹配到MAC")
EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-25 11:21 , Processed in 0.090749 second(s), 18 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表