Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Delphi] PC herkenning (https://forum.scholieren.com/showthread.php?t=717931)

Rhinus 11-01-2004 13:43

[Delphi] PC herkenning
 
Ik ben aan het programeren in Delphi en ik wil dat wanneer mijn programma gestart word er gekeken word op welke PC dit gebeurt. Omdat elke PC andere instellingen heeft.
Hoe kan daar erachterkomen?

(Denk aan IP-en op I-net)

Enlightenment 11-01-2004 14:08

Op welke PC?

Nouja je kan een waarde in het register schrijven, dat eenmalig een unieke waarde meegeven en zo de computer identificeren.

deathz0rz 11-01-2004 15:24

je kan het met deze registry key proberen: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId

Rhinus 11-01-2004 15:38

Ik snap jullie niet :).


Wat ik wil doen is:

1 database met daarop iets van 4 PC's. Bij opstarten moet je een wachtwoord invullen en een gebruikersnaam. Nu wil ik dat als je het programma opstart er als gebruikers naam de naam staat van de vorige die op die PC ingelogt heeft omdat de kans dat die weer inlogt vrij groot is (ieder eigen PC).

Hoe doe ik dat in Delphi?



Voor te kijken welke datum gebruik je de functie 'now'. Is er ook een functie waarmee je de PC-naam/code/weet ik wat kan oproepen?

deathz0rz 11-01-2004 15:54

Code:

uses ..., Registry;

...

var Registry: TRegistry;
    PCID: string;
begin
  Registry:=TRegistry.Create;
  Registry.RootKey:=HKEY_LOCAL_MACHINE;
  Registry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',False);
  try
    PCID:=Registry.ReadString('ProductId');
  except
    On Exception do;
  end;
  if length(PCID)=0 then
    Application.Messagebox('Fout bij inlezen registry','FOUT');
  Registry.Free;
end;


eddie 11-01-2004 16:28

Citaat:

Rhinus schreef op 11-01-2004 @ 16:38:
Is er ook een functie waarmee je de PC-naam/code/weet ik wat kan oproepen?
Vast wel.
Je wilt de loginaam van de persoon die is ingelogd op de PC.
In FoxPro is daar de SYS( 0 ) voor. Deze geeft bijvoorbeeld terug "ED # Erik Dokter"
Voor de # staat de computernaam. daar achter staat de inlognaam. hoogstwaarschijnlijk heeft Delphi daar soortgelijke functies voor. Moet je even zoeken. Bijvoorbeeld 'machine information'.

Rhinus 11-01-2004 18:53

Citaat:

deathz0rz schreef op 11-01-2004 @ 16:54:
Code:

uses ..., Registry;

...

var Registry: TRegistry;
    PCID: string;
begin
  Registry:=TRegistry.Create;
  Registry.RootKey:=HKEY_LOCAL_MACHINE;
  Registry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion',False);
  try
    PCID:=Registry.ReadString('ProductId');
  except
    On Exception do;
  end;
  if length(PCID)=0 then
    Application.Messagebox('Fout bij inlezen registry','FOUT');
  Registry.Free;
end;


Dit werk, nu is alleen mijn vraag. Wat houd dat nummer in? :)
Bedankt alvast. (y)

Enlightenment 12-01-2004 13:45

ProduktID is een hash (wiskunde bewerking) van het seriële nummer, voor zover ik weet.

Rhinus 16-01-2004 22:38

En dat is uniek 100% uniek? Ook als alle PC zelfde type zijn en alle PC's Windows van de zelfde CD hebben?

Wat is trouwens het verschil tussen een Frame en een Form?
(Ik ben nog vrij lekerig.)

Screaming Slave 16-01-2004 23:13

als het idd een hash is van de cdkey is die dus niet uniek, als je overal dezelfde cdkey hebt. pak dan ipv de pid het mac adres van je nic. (y)

Rhinus 16-01-2004 23:42

Het wat? :|

McMotion 17-01-2004 12:13

Citaat:

Rhinus schreef op 11-01-2004 @ 16:38:
Ik snap jullie niet :).


Wat ik wil doen is:

1 database met daarop iets van 4 PC's. Bij opstarten moet je een wachtwoord invullen en een gebruikersnaam. Nu wil ik dat als je het programma opstart er als gebruikers naam de naam staat van de vorige die op die PC ingelogt heeft omdat de kans dat die weer inlogt vrij groot is (ieder eigen PC).

je wilt dus de gebruikersnaam van de laatst ingelogde user onthouden van die PC onthouden? dan zet je die toch in je registry? kijk maar ff in de help van TRegistry

of bedoel je de laatst ingelogde user van alle computers? dan moet je gewoon op de database bijhouden welke user als laatste heeft ingelogd (de username in de database opslaan dus)

Rhinus 17-01-2004 12:25

Citaat:

McMotion schreef op 17-01-2004 @ 13:13:
je wilt dus de gebruikersnaam van de laatst ingelogde user onthouden van die PC onthouden? dan zet je die toch in je registry? kijk maar ff in de help van TRegistry

Oke. (y)


Alle tijden zijn GMT +1. Het is nu 10:52.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.