Hogyan tudom autoitban leolvasni a háló kártya számát?
Ez a hiba azt jelenti, hogy nem találja meg a "_GetMACFromIP" nevezetű függvényt, ami valóban azt jelenti, hogy nincs ott a függvény.
Két módon orvosolható a gond :
Abba az AU3 fájlban (hálókártya2.au3) bemásolod a fenti kódot a _GetMACFromIP függvény kódját (az első két sor kivételével az összes sor kell).
A másik megoldás készitesz (a szabályoknak megfelelően) egy AU3 fájlt ami az általad használt függvényeket tárolod és azt mindig beincludolod a programodhoz, ugyan úgy ahogy a képen is látszik :
#include <Array.au3>
#include <Inet.au3>
#include <MsgBoxConstants.au3>
#include <SajatFuggvenyeim.au3>
és az elkészitett SajatFuggvenyeim.au3 fájlt bemásolod az autoit "Include" mappájába (a többi au3 fájl mellé - innentől használhatod az INCLUDE utasitást).
Sok sikert.
üdv.
ez utóbbi jobban érdekel mert profibbnak látszik. Azonban lenne egy teljesen más kérdésem. Jelenleg rengeteg "saját" "függvényem" van, de másképp.
Func Dgep() ;#41
EndFunc
Ilyenek közt van s ezt pl.
Dgep()
utasítással hívom meg. Milyen esetekben indokolt ezt vagy e helyett azt választani, amit Te írtál?
Fura. Az alábbi program első msgboxban kiir egy ip számot, a másodikban azonban továbbra is nullákat é pontokat.
Lehet ez amiatt, hogy wifin van ép a laptop?
#include <Array.au3>
#include <Inet.au3>
#include <MsgBoxConstants.au3>
MsgBox (0, "IP cim", _GetIP())
$MAC = _GetMACFromIP (_GetIP())
MsgBox (0, "MAC Value", $MAC)
Func _GetMACFromIP ($sIP)
Local $MAC,$MACSize
Local $i,$s,$r,$iIP
;Create the struct
;{
; char data[6];
;}MAC
$MAC = DllStructCreate("byte[6]")
;Create a pointer to an int
; int *MACSize;
$MACSize = DllStructCreate("int")
;*MACSize = 6;
DllStructSetData($MACSize,1,6)
;call inet_addr($sIP)
$r = DllCall ("Ws2_32.dll", "int", "inet_addr","str", $sIP)
$iIP = $r[0]
;Make the DllCall
$r = DllCall ("iphlpapi.dll", "int", "SendARP","int", $iIP,"int", 0,"ptr", DllStructGetPtr($MAC),"ptr", DllStructGetPtr($MACSize))
;Format the MAC address into user readble format: 00:00:00:00:00:00
$s = ""
For $i = 0 To 5
If $i Then $s = $s & ":"
$s = $s & Hex(DllStructGetData($MAC,1,$i+1),2)
Next
;Must free the memory after it is used
DllStructDelete($MAC);
DllStructDelete($MACSize)
;Return the user readble MAC address
Return $s
EndFunc
Func DllStructDelete($stStruct)
$stStruct = 0
EndFunc
*nullákat és kettőspontokat.
ráadásul rendkívül lassan teszi
Teljesen mindegy, hogy a saját függvényeid mi módon hivod meg, és hogy hol vannak, elvileg ugyanúgy kell nekik viselkedniük include függvényként is mint ha a program lennének.
A másik dolog, a lassúság, tipikusan azt jelenti, hogy nincs olyan IP cim aminek a MAC cimét szeretnéd tudni.
Sok sikert.
üdv.
Na de ha nincs olyan IP cim akkor mi alapján ir ki IP cimet?
Ráadásul a másodiknál lassu az MAC cim leolvasása lenne.
Akkor van ip cim de nincs mac cim?
Ez a TCP/IPv4 és 6?
Az kizárja ezt a lehetőséget, hogy korábban használtam a laptopot vezetékes netről TCP/IPv4 beállitással és működött vagy ez független a felvetésedtől?
ellenben van egy furcsaság. Egy teljesen másik épületben más nethálozaton más ip cimen levő gépen működött.
De itt ahol nem működött a laptpon egy másik, asztali gépen ami nem wifin hanem kábelesen kapcsolódik ugyazzal az IP cimmel a routerrel megosztott nethez, azon ugyanigy nem működik. tehát nem a gép hálókártyája a ludas hanem a router?
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!