根据电脑MAC地址判定是否应该启动相应程序
本帖最后由 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地址作为凭证来启动某一程序。这样就能保证这个程序只能在这台电脑使用。
532918457 发表于 2024-10-28 10:09
为什么我的就是不行的呢?
wmic nicconfig where "ipenabled=true" get ipaddress, MACaddress 这个命令导出的MAC的符号是:不是- 如果多张网卡,那么是否可以先用cmdipconfig /all来获取所有网卡信息并写入文本里,然后逐行去匹配你要执行的mac地址。 可以使用wmic nicconfig where "ipenabled=true" get ipaddress, MACaddress > 1.txt 可以用这个命令对,本机的所有 的网卡输入IP地址和MAC到文本1.txt中,然后你可以去读取这个文件中你所需要判断的哪个MAC就行。 然后再使用filereadline这个读这个1.txt文件的行内容,读出来的内容,再判断一下,是不是你所需对应的MAC就行了 ttmv2019sx 发表于 2024-10-24 14:31
可以使用wmic nicconfig where "ipenabled=true" get ipaddress, MACaddress > 1.txt 可以用这个命令对 ...
没用过这些命令,究竟是怎么使用法? 532918457 发表于 2024-10-24 15:33
没用过这些命令,究竟是怎么使用法?
这个命令,,你可以先在DOS下CMD中,输入上面的命令,会得到一个文件,你看一下这个文件里面的内容,是不是你所需要的,,这个是第一步,你先看 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 zhaoceshi 发表于 2024-10-25 09:08
求助,我的win10系统,不写#RequireAdmin这个没权限在temp目录下添加1.txt,运行会“没有匹配到MAC+>13:40:24 AutoIt3.exe 完成::0”会提示这个,加了#RequireAdmin后,他不报错但也没有执行这两句代码,应该怎么办?
ConsoleWriteError("匹配到MAC,准备启动某个程序。")
run("E:\AU3\云平台登录神器.exe"); 替换为你想要启动的程序路径
532918457 发表于 2024-10-25 13:42
求助,我的win10系统,不写#RequireAdmin这个没权限在temp目录下添加1.txt,运行会“没有匹配到MAC+>13:40 ...
不好意思,刚才测试下,发现文本生成慢于代码的运行速度导致这个情况出现。把run函数改成RunWait函数即可。
RunWait(@ComSpec & " /c " & 'wmic nicconfig where "ipenabled=true" get ipaddress, MACaddress > %temp%\1.txt',"",@SW_HIDE)
zhaoceshi 发表于 2024-10-25 14:18
不好意思,刚才测试下,发现文本生成慢于代码的运行速度导致这个情况出现。把run函数改成RunWait函数即可 ...
为什么我的就是不行的呢?
每天学习新知识! 每天学习新知识! 感谢老哥,一直以来为我解答问题,我粗心直接在CMD那里是横杆的所以没留意到
页:
[1]