Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako ograničiti program da radi samo na jednom računaru?

[es] :: .NET :: Kako ograničiti program da radi samo na jednom računaru?

[ Pregleda: 2954 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-4.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Kako ograničiti program da radi samo na jednom računaru?28.01.2008. u 19:52 - pre 197 meseci
Pozdrav.

Pravim program koji će od korisnika zahtevati "ključ" da bi radio. Sad, ako mu ja dam ključ hteo bih da taj ključ može da se koristi samo na jednom kompu a ne na svakom.
Mislio sam da to uradim tako što bi mi korisnik dato "volume serial number" pa bih ja za njega napraviti "ključ" i poslao mu ga. Tako bi program mogao da se registruje samo na datom računaru.

Sad, problem je dobaviti taj serial number. Znam da to može da se uzme i za HD i za CD-ROM i ostalo ali ne znam kako.
Naime, tražeći na netu pročitao sam da postoji taj "volume serial number" za HD ali da se on menja prilikom formatiranja HD-a, pa sad ne znam kako da rešim problem sa dobavljanjem nekog broja koji je jedinstven za dati računar.

Nadam se da mi neko može pomoći u vezi sa ovim...

Uzgred, računari na kojima bi program bio instaliran ne moraju obavezno imati konekciju na internet. Dakle meni je problem da nabavim taj broj/šta-je-već koji je jedinstven za svaki komp, dalje mi je lako.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Kako ograničiti program da radi samo na jednom računaru?28.01.2008. u 20:02 - pre 197 meseci
Sto se hdd-a tice, postoji razlika izmedju srijskog broja particije (to je taj za koji si cuo da se promeni) ili broja hdd-a. Posto ti u svakom slucaju treba Win32 api (koliko mi je poznato), potrazi u Visual Basic forumu jer se tamo pominje.
Mozda mozes i preko Framework-a, preko WMI upita.
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-4.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: Kako ograničiti program da radi samo na jednom računaru?28.01.2008. u 20:18 - pre 197 meseci
Ću potražim, ali ne znam šta treba da potražim?


DOPUNA:
Našao sam temu, javljam se kad (ne) uspem da uradim ono što sam nameračio...
Hvala.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kako ograničiti program da radi samo na jednom računaru?28.01.2008. u 21:07 - pre 197 meseci
Treba ti malo vise od hardova da bi osigurao software, najbolje je da detektujes kljucne elemente sistema (maticna ploca, procesor, modeli hardova, itd) i od toga napravis hash koji "aktivacijom" potpises na serveru i vratis klijentu. Ako se bilo sta od hardvera promeni ode hash u drugom pravcu i trazis reaktivaciju. Nesto slicno i MS radi.

E sad, detekcija hardvera, mozes dosta da pokupis iz WMI-a kao sto ti je Shadowed preporucio, a mozes i da pokupis iz registry-a. Kljuc HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class ima kao podkljuceve sve registrovane klase uredjaja, podkljucevi koji imaju svoje podkljuceve su klase za koje postoji hardver u toj klasi. Mada iskreno, WMI ti je mnogo bolji ali nije garantovano da postoje WMI provajderi na svim sistemima.



Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-4.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: Kako ograničiti program da radi samo na jednom računaru?28.01.2008. u 21:45 - pre 197 meseci
Super, našao sam kod koji ovo radi - dobavlja id procesora.
Evo ga kod:
Code:

public string GetCPUId()
        {
            string cpuInfo =  String.Empty;
            string temp=String.Empty;
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach(ManagementObject mo in moc)
            {
                if(cpuInfo==String.Empty) 
                {// only return cpuInfo from first CPU
                    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
                }             
            }
            return cpuInfo;
        }

Više o tome na: http://www.eggheadcafe.com/articles/20030511.asp

Cenim da će nekom biti od koristi...

E sad:
Citat:
Mada iskreno, WMI ti je mnogo bolji ali nije garantovano da postoje WMI provajderi na svim sistemima.

A da li je taj WMI potreban za kod koji sam dao iznad?
Ako jeste, da li je taj WMI neka biblioteka koju mogu da distribuiram uz program?

A da, hoće li ovaj kod raditi na npr. Visti? Ili na 64-bitnim procesorima? Ili kako već to ide...
 
Odgovor na temu

Predrag Glumac
Luxembourg

Član broj: 167588
Poruke: 127
*.eunet.yu.



Profil

icon Re: Kako ograničiti program da radi samo na jednom računaru?28.01.2008. u 22:17 - pre 197 meseci
Citat:
A da li je taj WMI potreban za kod koji sam dao iznad?
Ako jeste, da li je taj WMI neka biblioteka koju mogu da distribuiram uz program?


Jeste, ManagementClass je nekakva wrapper klasa za WMI, koji je inace integralni servis jos od windows 2000. Problem je sto neki ljudi iskljuce taj servis.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Kako ograničiti program da radi samo na jednom računaru?28.01.2008. u 23:10 - pre 197 meseci
AKo hoces da vidis kako izgleda WMI stablo i gde da gadjas skriptom, skini
WMI Administrative Tools

u njemu imas WMI object browser da se lakse snadjes vizuelno.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.telekom.yu.



+104 Profil

icon Re: Kako ograničiti program da radi samo na jednom računaru?29.01.2008. u 14:23 - pre 197 meseci
Code:

Imports System
Imports System.Management
Imports System.Windows.Forms

Namespace WMISample

    Public Class MyWMIQuery

        Public Overloads Shared Function Main() As Integer

            Try
                Dim searcher As New ManagementObjectSearcher( _
                    "root\CIMV2", _
                    "SELECT * FROM Win32_PhysicalMedia") 

                For Each queryObj As ManagementObject in searcher.Get()

                    Console.WriteLine("-----------------------------------")
                    Console.WriteLine("Win32_PhysicalMedia instance")
                    Console.WriteLine("-----------------------------------")
                    Console.WriteLine("SerialNumber: {0}", queryObj("SerialNumber"))
                Next
            Catch err As ManagementException
                MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
            End Try
        End Function
    End Class
End Namespace


Kod za dobijanje serijskog broja hard diska (ne particije). Problem je samo što neki diskovi nemaju ovaj broj :(
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

[es] :: .NET :: Kako ograničiti program da radi samo na jednom računaru?

[ Pregleda: 2954 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.