function Get_MACAddress: string;
var
UuidCreateFunc: function(var guid: TGUID): HRESULT; stdcall;
hr: HRESULT;
guid: TGUID;
hLibrary: THandle;
begin
hLibrary := LoadLibrary('RPCRT4.DLL');
if Win32MajorVersion >= 5 then
// windows 2000 or above
@UuidCreateFunc := GetProcAddress(hLibrary, 'UuidCreateSequential')
else
@UuidCreateFunc := GetProcAddress(hLibrary, 'UuidCreate');
hr := UuidCreateFunc(guid);
if Failed(hr) then
RaiseLastWin32Error;
result := GUIDToString(guid);
// extract the last segment of the guid
result := Copy(result, 26, 12);
end;
yazmaya çalıştığım bi program için wake on lan a ve dolayısıyla mac adres bilgisine ihtiyacım var. forumda karşıma ilk bu mesaj çıktı, hemen denedim bende. bilgisayarımda bir onboard ethernet kartı ve bir de usb den kullandığım bluetooth dungle var. bluetooth bağlı değilken kodu çalıştırdığım halde bluetooth un mac adres bilgisi geldi.
(nerden mi biliyorum ipconfig /all dedim ve gelen mac adres değeri ortam bağlantısı kesik olarak görünen bluetooth pan network adapter e ait geldi...)
değişkeni içerisinde iki cihazında mac adresi geliyor olabilir. Orayı kontrol edin. Bu MAC adresilerini sanırım bağlantının özelliklerini gösteren dll'den alıyordur. Ağ bağlantısı çalışmıyorken bile almaya devam edebilir. Siz USB yi çıkardığınızda ağ bağlantısı kablo takılı değil uyarısına düşüyordur. Ama Windows MAC adresini hatırlıyordur.
Verdiğiniz kodu denedim işime yarıyor ancak sormak istediğim bişey var, hem lan, hemde wlan bağdaştırıcılarını kapatınca abuksabuk rakam ve harf karışımı bişey veriyor mac address ile hiç bi ilgilisi olmayan.. Bunun nedeni nedir? Mac adres ögrenebilmek için yerel ag bağlantısının yada kablosuzun açık olma şartı mı var?
mkysoft yazdı:Kodu başka bir siteden/forumdan aldığım için detayını bilemiyorum. Kullandığı dll dosyasıyla ilgili bir araştırma yapın isterseniz internette.