1

Konu: Harddisk serino bulma

merhaba fox dostları.Foxpro ile üzerinde çalışılan makinanın,HDD seri numarasını,mümkünse Donandım ile ilgili diğer bilgileri(Ana kart no,Eternet kartı mac adresi gibi) bilgileri nasıl tesbit edebilirim?:)

En büyük sermaye nakit,nakit sermaye vakittir...

2

Re: Harddisk serino bulma

ethernet karti ID bulma

Visual Fox Pro
Function getmacID()

&& usage set proc to tools.prg addi
&& lcmacID=getMacID()
&& ? lcmacid ...
********************************************************************************
Local pGUID,rGUID,lcOldError, lnResult
Declare Integer CoCreateGuid In 'OLE32.dll' String @pguid
Declare Integer StringFromGUID2 In 'OLE32.dll' ;
    string rguid, String @lpsz, Integer cchMax
Declare Integer UuidCreateSequential In 'RPCRT4.dllString @ Uuid
 
pGUID=Replicate(Chr(0),16)
rGUID=Replicate(Chr(0),80)
 
lcOldError = On('error')
On Error lnResult = CoCreateGuid(@pGUID)
lnResult = UuidCreateSequential(@pGUID)
On Error &lcOldError
 
LcMac= Substr( Iif( lnResult = 0 And ;
    StringFromGUID2(pGUID,@rGUID,40) # 0, ;
    StrConv(Left(rGUID,76),6), "" ), 26,12)
 
&&return substr( iif( lnResult = 0 and ;
StringFromGUID2(pGUID,@rGUID,40) # 0, ;
StrConv(left(rGUID,76),6), "" ), 26,12)
&&? lcmac
 
Return LcMac
Endfunc


HDD serial i bulma

Visual Fox Pro
Function DiskSerial

&*******************************************************************************
Lparameter cDisk
Declare SHORT GetVolumeInformation In Win32API ;
    STRING wroot, ;
    STRING wnombuf, ;
    LONG wnomsize, ;
    STRING wnumero, ;
    STRING wmx, ;
    STRING wflag, ;
    STRING wsysbuf, ;
    INTEGER wsyssize
 
Local wroot, wnombuf, wnumero, wmx
Local wflag, wsysbuf, wnomsize, wsyssize
Local n1,n2,n3,n4, w1,w2,w3,w4
 
wroot = Iif(Empty(cDisk), Sys(5), cDisk + ':') + "\" && disque courant
wnombuf = Space(255)
wnumero = Space(10)
wmx = Space(255)
wflag = Space(255)
wsysbuf = Space(255)
wnomsize = 255
wsyssize = 255
 
GetVolumeInformation (wroot, @wnombuf, @wnomsize, @wnumero, ;
    @wmx, @wflag, @wsysbuf, @wsyssize)
 
n4 = Asc(Substr(wnumero,1,1))
n3 = Asc(Substr(wnumero,2,1))
n2 = Asc(Substr(wnumero,3,1))
n1 = Asc(Substr(wnumero,4,1))
 
 
w1 = Transform(n1,'@0')
w2 = Transform(n2,'@0')
w3 = Transform(n3,'@0')
w4 = Transform(n4,'@0')
 
 
Return ;
    RIGHT(w1,2) +;
    RIGHT(w2,2) +;
    "
-"         +;
    RIGHT(w3,2) +;
    RIGHT(w4,2)

CPU ID bulma

Visual Fox Pro
Function get_cpu_id

Lparameters tcCPUID
 
LOCAL lcComputerName, loWMI, lowmiWin32Objects, lowmiWin32Object,cCPUID
 
lcComputerName = GETWORDNUM(SYS(0),1)
loWMI = GETOBJECT("WinMgmts://" + lcComputerName)
lowmiWin32Objects = loWMI.InstancesOf("Win32_Processor")
FOR EACH lowmiWin32Object IN lowmiWin32Objects
*    WITH lowmiWin32Object
*        ? "ProcessorId: " + TRANSFORM(.ProcessorId)
*   ENDWITH
cCPUID = lowmiWin32Object.ProcessorId
ENDFOR
Return cCPUID
EndFunc

Mainboard ID bulma

Visual Fox Pro
FUNCTION get_mb_id

LPARAMETERS tcMBID
LOCAL loWMI,BaseBoards,Motherboard,lcMBID
 
loWMI = GETOBJECT("WinMgmts://./root/cimv2")
BaseBoards = loWMI.InstancesOf("Win32_BaseBoard")
FOR EACH Motherboard IN BaseBoards
*?"Product: " + MotherBoard.Product
*?"SerialNumber: " + MotherBoard.SerialNumber
    lcMBID =  Motherboard.SerialNumber
NEXT
RETURN lcMBID
ENDFUNC
http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

3

Re: Harddisk serino bulma

soykan üsdadım çok teşekkür ederim

En büyük sermaye nakit,nakit sermaye vakittir...

4

Re: Harddisk serino bulma

soykan üsdadım örnegin ana kart numarasını tespit ettğimde,elde ettiğim bu bilgiyi bir dosyaya yazıyorum,yazdığım bu bilgiye dışarıdan ulaşılmasını nasıl önlerim?.kullanıcının yada dışarıdan birinin dosyayı açıp görmesini istemiyorum.Böyle bir yöntem foxproda varmı? Clipper de uzantısı (mem) olan bir teknikle yapıyorduk ama uzun yıllar geçti üzerinden hatırlayamadım :-)

En büyük sermaye nakit,nakit sermaye vakittir...

5

Re: Harddisk serino bulma

basit yollardan biri yazdigin dbf i uzantisini .dll .ocx yada baska bir sey yapabilirsin

kullanirken use mb.dll yada mb.ocx gibi kullanirsin bu sekilde cift tıklayarak calistirilirmak istenirsede vfp ile iliskili dosya olmadigi icin calistirmaz windows

yada bu bilgileri encrypt ederek kaydedersin acsada okuyamaz okurken decrypt edersin.

asagidaki linkte bununla ilgili .fll dosyasi var

http://www.sweetpotatosoftware.com/SPSB … ec6dc.aspx

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

6

Re: Harddisk serino bulma

Windows Registry'ya yazabilirsin

/o---------------------o\
     www.haser.com
\o---------------------o/

7

Re: Harddisk serino bulma

Neyzen,
Amacım cesaretini kırmak ya da ukalalık etmek değil sadece yıllarca aldığım burnumu sürten derslerin sonucu:

get_cpu_id ve get_mb_id OS ve donanım bağımlı. WMI kurulmuş olmalı + OS desteği olmalı + her CPU ile calışmaz.

Disk_serial formatın verdiği seri numarası, cok bilindik bir yontem ve değiştirmek için ne kadar kucuk bir kod gerektiğine inanamazsın (yanlis olmasın tam hatırlamıyorum ama en son yazdıgım 30 byte altındaydı ve yazmak icin sadece command prompta ulasmak yeterli). Istediğine değiştirebilirsin. Yani geçmek isteyen kurulu olan yerdekine bakar, onu aynısına kurar. Asıl serinumarasını da WMI ile alabirisin ancak WMI'in dertlerini gectiysen.

GetMacId en guveniliri win95'ten itibaren calisiyor ancak onun da derdi network driverlarının onu değiştirebilmesi. Eskiden beri mumkundu, yapan yoktu, son zamanlarda gene hortladı. Makineler aynı network ortamına girmediği surece de aynı id kullanılabiliyor.

Neyse asıl dert donanım bağımlı olması. Benim başıma asıl gelen, yıllar sonra kullanıcı donanımı değiştirmeye kalkışınca çalışmadığını görüyor ve seni buluyor. Yıllar sonra o müşteri için kullandığın yontemi hatırlarsan ne ala. Ya benim yaptığım gibi değişik programlarına değişik yöntemler uygulama, ya da hangisine ne uyguladığını çok iyi sakla:) Bence en iyi yontemler donanım bağımlı olmayanlar. Sorma soyleyemem. Hayal gucunu kullan ve ne kadar az kişi bilirse o kadar iyi:)

8

Re: Harddisk serino bulma

soykan
cpu id ve harddisk seri bulma rutini
2003 server a uzak masaüstüyle bağlandığında hangi makinanın id sini veriyor. deneme fırsatın oldu mu?

9

Re: Harddisk serino bulma

erdalyalcin yazdı:

soykan
cpu id ve harddisk seri bulma rutini
2003 server a uzak masaüstüyle bağlandığında hangi makinanın id sini veriyor. deneme fırsatın oldu mu?


baglandigin makinanin ID sini gorursun

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

10

Re: Harddisk serino bulma

arkadaşlar hepinize gerçekten çok teşekkür ederim.

En büyük sermaye nakit,nakit sermaye vakittir...

11

Re: Harddisk serino bulma

üsdatlar,baglandigin makinanin "IP" adresini, ve "Tam bilgisayar adını" nasıl öğrenebiliriz diye bir soru sorsam çok mu abartmış olurum :-)

En büyük sermaye nakit,nakit sermaye vakittir...

12

Re: Harddisk serino bulma

Sys(0) ile bilgisayar ve kullanıcı adını öğrenebilirsin.
IP adresi bilmiyorum sad

/o---------------------o\
     www.haser.com
\o---------------------o/

13

Re: Harddisk serino bulma

neyzen yazdı:

üsdatlar,baglandigin makinanin "IP" adresini, ve "Tam bilgisayar adını" nasıl öğrenebiliriz diye bir soru sorsam çok mu abartmış olurum :-)


Visual Fox Pro
loSock = CREATEOBJECT('MSWinsock.Winsock.1')

? loSock.LocalIP
http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

14

Re: Harddisk serino bulma

tarkan bilgi için teşekkür ederim

En büyük sermaye nakit,nakit sermaye vakittir...

15

Re: Harddisk serino bulma

harikasın soykan üsdadım çok işime yaradı sağolasın

En büyük sermaye nakit,nakit sermaye vakittir...

16

Re: Harddisk serino bulma

HDD seriali veren program volüm seri numarasını veriyor. Birde Harddisklerin hardware seri numarası var. Everest ve benzeri programlarla bu numarayı görebilirsiniz.

Örnek1:
Model: SAMSUNG HD080HJ
Serial: S08EJ1MYA32429

Örnek2:
Model: WDC WD800JD-55MUA1
Serial: WD-WMAMD5732319

Model numarasını WMI ile alabiliyorum ama seri numarasını çözemedim. Bilgisi olan varmı ?

17

Re: Harddisk serino bulma

HDD'nin model bilgisini veren program:

Visual Fox Pro
lccomputername=GETWORDNUM(SYS(0),1)

lowmi2=GETOBJECT("WinMgmts://"+lccomputername)
lowmiwin32objects=lowmi2.instancesof("Win32_DiskDrive")
FOR EACH lowmiwin32object IN lowmiwin32objects
    WITH lowmiwin32object
    ? "SURUCU    : ",TRANSFORM(.CAPTION)+" ("+TRANSFORM(.interfacetype)+")"
    ? "BOYUT        : ",TRANSFORM(.SIZE)
    ? "BOLUM SAYISI    : ",TRANSFORM(.partitions)
    ? "SERI NO    : ",TRANSFORM(.pnpdeviceid)
    ? "IMZA        : ",SUBSTR(TRANSFORM(.signature,"@0"),3,8)
    ?
    ENDWITH
ENDFOR

Buradaki ".pnpdeviceid" bilisindende seri no çıkacağını biliyorum.

18

Re: Harddisk serino bulma

(Yine de kullanmayin derim)

Visual Fox Pro
Create Cursor myDisks (DriveLetter c(1),SerialNumber c(50),Model c(50),DeviceID c(50),VolumeName c(50),VolumeSerialNumber c(20))

 
wmiServices  = Getobject("winmgmts:{impersonationLevel=Impersonate}!//.")
wmiDiskDrives =  wmiServices.ExecQuery("SELECT Model,DeviceID FROM Win32_DiskDrive")
 
For Each wmiDiskDrive In wmiDiskDrives
  lcDeviceID = Trim(Strtran(wmiDiskDrive.DeviceID,'\','\\'))
  wmiDiskPartitions = wmiServices.ExecQuery(;
    'ASSOCIATORS OF {Win32_DiskDrive.DeviceID="' +;
    m.lcDeviceID + '"
} WHERE '+ ;
    'AssocClass = Win32_DiskDriveToDiskPartition')
 
  For Each wmiDiskPartition In wmiDiskPartitions
    wmiLogicalDisks = wmiServices.ExecQuery( ;
      'ASSOCIATORS OF {Win32_DiskPartition.DeviceID="'+;
      wmiDiskPartition.DeviceID + '"
} WHERE '+;
      'AssocClass = Win32_LogicalDiskToPartition')
 
    For Each wmiLogicalDisk In wmiLogicalDisks
      wmiDiskVolumes = wmiServices.ExecQuery(;
        "Select deviceID,VolumeName,VolumeSerialNumber from Win32_LogicalDisk"+;
        " where deviceID = '" + wmiLogicalDisk.deviceID + "'" )
      For Each oVolume In wmiDiskVolumes
        lcVolumeName          = oVolume.VolumeName
        lcVolumeSerialNumber  = oVolume.VolumeSerialNumber
        Exit
      Endfor
 
      wmiDisks =  wmiServices.ExecQuery(;
        'SELECT * FROM Win32_PhysicalMedia where Tag="'+m.lcDeviceID+'"')
      For Each wmiDisk In wmiDisks
        Insert Into myDisks ;
          (DriveLetter,SerialNumber,Model,DeviceID,VolumeName,VolumeSerialNumber) ;
          values ;
          (wmiLogicalDisk.DeviceID,;
          wmiDisk.SerialNumber,;
          wmiDiskDrive.Model,;
          wmiDiskDrive.DeviceID,;
          m.lcVolumeName,;
          m.lcVolumeSerialNumber)
      Endfor
    Endfor
  Endfor
Endfor
Browse

19

Re: Harddisk serino bulma

hyperlock var güven bilgisayar ın. onu deneyebilirsiniz. yeri beşiktaşta. http://www.guvensoft.com/HyperLock/index.html

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com