[ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.05.09
Prihlásený: 21.05.10
Príspevky: 33
Témy: 8 | 8
Bydlisko: Bánovce nad...
NapísalOffline : 07.07.2009 11:58 | Delphi užívateľský účet

Zdravím,
pls hľadal som na nete ale nemôžem sa dopátrať ako by som mohol vytvoriť užívateľský účet v delphi. Problém, že chcem spraviť program:
spustím ho a budem tam mať edity na meno a na heslo potom nejaký tooglebox na typ účtu...no len ja chcem ten program spraviť sám a mám len problém že neviem ako taký účet vytvoriť. proste nejaké príkazy alebo čo. inak vedel by som vytvoriť účet aj s použitím príkazového riadku...resp by som si z editov pobral čo potrebujem a vytvoril si súbor.bat...a bolo by najlepšie keby sa ten súbor automaticky sám otvoril...ale asi nie len tak v delphi..proste aby som naimitoval dvojklik alebo enter..a aby sa otvoril prirodzene...

No ale aj tak by so to najradšej mal tou prvou možnosťou vytvoriť účet priamo cez delphi...
Ďakujem veľmi pekne.


_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Offline

Skúsený užívateľ
Skúsený užívateľ
Delphi užívateľský účet

Registrovaný: 11.01.09
Prihlásený: 22.02.25
Príspevky: 1397
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 07.07.2009 12:26 | Delphi užívateľský účet

Vytvor si tento unit:

Kód:
unit CriaNTUser;

{
Cria usuario de NT
Copyright 1997 por Mauro Sant' Anna
Todos os direitos reservados
}

interface

uses
  Windows;

// Create user
function CriaUsuario(
  const XUsuario, XSenha, XComentario, XServidor: string): integer;

// Add to group
function AdicionaAoGrupo(const XServidor, XUsuario, XGrupo: string): integer;

// Remove from group
function EliminaDoGrupo(const XServidor, XUsuario, XGrupo: string): integer;

function ErrToMsg(const Err: integer): string;

implementation

type
  T_USER_INFO_1 = record
    usri1_name: PWideChar;
    usri1_password: PWideChar;
    usri1_password_age: integer;
    usri1_priv: integer;
    usri1_home_dir: PWideChar;
    usri1_comment: PWideChar;
    usri1_flags: integer;
    usri1_script_path: PWideChar;
  end;
  PInteger = ^Integer;

function NetUserAdd(
    servername: PWideChar;
    level: integer;
    const buf: T_USER_INFO_1;
    parm_err: PInteger
   ): integer; stdcall; external 'netapi32.dll';

function NetGroupAddUser(servername: PWideChar;
                         GroupName: PWideChar;
                         username: PWideChar): integer; stdcall; external 'netapi32.dll';

function NetGroupDelUser(servername: PWideChar;
                         GroupName: PWideChar;
                         username: PWideChar): integer; stdcall; external 'netapi32.dll';

const
  USER_PRIV_USER = 1;
  UF_SCRIPT = 1;
  NERR_BASE = 2100;
  NERR_InvalidComputer = NERR_BASE + 251;
  NERR_NotPrimary = NERR_BASE + 126;
  NERR_GroupExists = NERR_BASE + 123;
  NERR_UserExists = NERR_BASE + 124;
  NERR_PasswordTooShort = NERR_BASE + 145;
  NERR_SpeGroupOp = NERR_BASE+134; // The operation is not allowed on specified special groups, which are user groups, admin groups, local groups, or guest groups.
  NERR_UserNotFound = NERR_BASE+121;// The user name could not be found.
  NERR_GroupNotFound = NERR_BASE+120; // The group name could not be found.
  NERR_UserNotInGroup = NERR_BASE+137; // The user does not belong to this group.
 cTamStr = 256;

procedure StrToMB(const S: string; Buffer: PWideChar);
begin
  fillchar(Buffer^, cTamStr * 2, 0);
  MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, Pointer(S), length(S), Buffer, cTamStr);
end;

function ErrToMsg(const Err: integer): string;
begin
  Result := 'Ok';
  case Err of
    ERROR_ACCESS_DENIED: Result := 'Access Denied';
    NERR_InvalidComputer: Result := 'InvalidComputer';
    NERR_NotPrimary: Result := 'NotPrimary';
    NERR_GroupExists: Result := 'GroupExists';
    NERR_UserExists: Result := 'UserExists';
    NERR_PasswordTooShort: Result := 'PasswordTooShort';
    NERR_SpeGroupOp: Result := 'The operation is not allowed on specified special groups, which are user groups, admin groups, local groups, or guest groups.';
    NERR_UserNotFound: Result := 'The user name could not be found.';
    NERR_GroupNotFound: Result := 'The group name could not be found.';
    NERR_UserNotInGroup: Result := 'The user does not belong to this group.';
  end;
end;

function CriaUsuario(
  const XUsuario, XSenha, XComentario, XServidor: string): integer;
var
  U: T_USER_INFO_1;
  Err, Ret: integer;
  Usuario, Senha, Comentario, Servidor: array[0..cTamStr] of widechar;

procedure Converte;
begin
  StrToMB(XUsuario, Usuario);
  StrToMB(XSenha, Senha);
  StrToMB(XComentario, Comentario);
  StrToMB(XServidor, Servidor);
end;

begin
  Converte;
  with U do
  begin
    usri1_name := Usuario;
    usri1_password := Senha;
    usri1_priv := USER_PRIV_USER;
    usri1_home_dir := nil;
    usri1_comment := 'Teste de cadastramento';
    usri1_flags := UF_SCRIPT;
    usri1_script_path := NIL;
  end;
  Ret := NetUserAdd(Servidor, 1, U, @Err);
  Result := Ret;
end;

function AdicionaAoGrupo(const XServidor, XUsuario, XGrupo: string): integer;
var
  Usuario, Servidor, Grupo: array[0..cTamStr] of widechar;
begin
  StrToMB(XUsuario, Usuario);
  StrToMB(XServidor, Servidor);
  StrToMB(XGrupo, Grupo);
  Result := NetGroupAddUser(Servidor, Grupo, Usuario);
end;

function EliminaDoGrupo(const XServidor, XUsuario, XGrupo: string): integer;
var
  Usuario, Servidor, Grupo: array[0..cTamStr] of widechar;
begin
  StrToMB(XUsuario, Usuario);
  StrToMB(XServidor, Servidor);
  StrToMB(XGrupo, Grupo);
  Result := NetGroupDelUser(Servidor, Grupo, Usuario);
end;

end.

a pomocou zadefinovaných funkcií môžeš pracovať s užívateľskými účtami.

Btw, ak by si predsa len zvolil riešenie pomocou *.bat súboru, nemusíš imitovať dvojklik, existujú funkcie, ako WinExec alebo ShellExecute (pri použití tejto pripoj unit ShellAPI), ktoré otvoria nejaký súbor.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.05.09
Prihlásený: 21.05.10
Príspevky: 33
Témy: 8 | 8
Bydlisko: Bánovce nad...
Napísal autor témyOffline : 07.07.2009 12:58 | Delphi užívateľský účet

fakt ti pekne ďakujem ale vieš keď ja som len taký odvar zatiaľ...poteboval by som vysvetliť že ako vytvorím ten unit??...ak myslíš že to je ako vytvorenie knižnice v pascale tak to viem...ale moc tomu nerozumiem...
a ešte by som potreboval aj nejaké vysvetlivky k tým funkciám...lebo som z nich trochu vymletý...a všimol som si tam aj nejaké procedúry...a tie nepotebujem?? alebo ako??

vopred sa ospravvedlňujem za svoju debilitu. :oops:


_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Offline

Skúsený užívateľ
Skúsený užívateľ
Delphi užívateľský účet

Registrovaný: 11.01.09
Prihlásený: 22.02.25
Príspevky: 1397
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 08.07.2009 10:21 | Delphi užívateľský účet

Áno, unit v Delphi je z hľadiska využitia to isté, ako unit (knižnica) v pascale. V menu Delhi vyberieš File | New | Unit. Potom ho uložíš (vytvorí sa iba *.pas súbor) a môžeš ho zatvoriť.
Potom už dáš klasicky vytvoriť nový projekt do ktorého musíš pridať tento unit. To urobíš takto: v menu vyber Project | Add to Project a potom vyhľadaj cestu, kam si ho uložil. Teraz Delphi vie, kde je uložený tento unit, ale ešte ho treba pripojiť, ako každý iný používaný unit a teda pridať ho do uses:

Kód:
uses
  Windows, SysUtils, MojUnit;  // tu je viac unitov, dal som to len pre ukážku


A teraz k tvojmu problému s účtami. Ja sám presne neviem, ako fungujú tieto funkcie, našiel som to na nete (preto tá španielčina). Ale dá sa vychádzať z API funkií, ktoré sa tu používajú. Nájdi si help súbor WIN32.HLP, ktorý sa nachádza štandardne v "C:\Program Files\Common Files\Borland Shared\MSHelp" a v tomto helpe si nájdi tieto funkcie: NetUserAdd, NetGroupAddUser, NetGroupDelUser. Po pochopení ich parametrov pochopíš aj funkcie tohto unitu.
(Napríklad, funkcia pre vytvorenie nového účtu by mohla vyzerať takto:

Kód:
CriaUsuario('MojUcet', 'TotoJeHeslo', 'Komentar, ktory funkcia ani nepouzije :)', PChar(nil));
)


 [ Príspevkov: 4 ] 


Delphi užívateľský účet



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Uzivatelsky ucet

v Operačné systémy Microsoft

3

576

31.12.2009 10:14

ivanpet

V tomto fóre nie sú ďalšie neprečítané témy.

Vista - uzivatelsky ucet

v Operačné systémy Microsoft

2

513

15.08.2008 12:44

Merm

V tomto fóre nie sú ďalšie neprečítané témy.

Užívateľský účet na Windows XP

v Operačné systémy Microsoft

5

532

08.10.2008 0:13

Josef

V tomto fóre nie sú ďalšie neprečítané témy.

ako obist uzivatelsky ucet - heslo

v Operačné systémy Microsoft

8

1778

06.03.2009 15:39

teac77

V tomto fóre nie sú ďalšie neprečítané témy.

vista -neprejdem cez uživateľský účet

v Operačné systémy Microsoft

3

460

27.02.2011 12:20

mirom

V tomto fóre nie sú ďalšie neprečítané témy.

Predam Origin ucet, Uplay ucet

v Kôš

6

56

26.05.2019 19:32

cherryman

V tomto fóre nie sú ďalšie neprečítané témy.

delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1161

11.05.2008 12:02

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

Origin ucet, Uplay ucet

v Kôš

1

23

26.05.2019 19:17

werwest

V tomto fóre nie sú ďalšie neprečítané témy.

uzivatelsky priecinok nepristupny

v Operačné systémy Microsoft

5

522

30.06.2011 17:59

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

Doska, procesor a ram - uzivatelsky PC do 400€

v PC zostavy

7

373

28.12.2015 18:21

kombinacka

V tomto fóre nie sú ďalšie neprečítané témy.

ucet

v Operačné systémy Unix a Linux

3

919

06.02.2009 17:02

Igor

V tomto fóre nie sú ďalšie neprečítané témy.

Temp účet

v Operačné systémy Microsoft

1

724

19.11.2009 20:08

KRUHO

V tomto fóre nie sú ďalšie neprečítané témy.

Steam účet

v Kôš

3

117

08.01.2016 14:14

werwest

V tomto fóre nie sú ďalšie neprečítané témy.

Google účet

v Ostatné programy

0

452

07.09.2014 10:18

Fry

V tomto fóre nie sú ďalšie neprečítané témy.

ucet administratora

v Operačné systémy Microsoft

21

1014

03.05.2009 16:02

ottoke28

V tomto fóre nie sú ďalšie neprečítané témy.

Študentský účet

v Ekonomika, práca, biznis, podnikanie a peniaze

3

625

10.02.2016 11:48

Webess



© 2005 - 2025 PCforum, edited by JanoF