[ 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
Online

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

Registrovaný: 11.01.09
Prihlásený: 23.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOnline : 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
Online

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

Registrovaný: 11.01.09
Prihlásený: 23.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOnline : 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

565

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

500

15.08.2008 12:44

Merm

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

448

27.02.2011 12:20

mirom

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

526

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

1770

06.03.2009 15:39

teac77

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

1151

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

517

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

369

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

907

06.02.2009 17:02

Igor

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

Uplay účet

v Kôš

1

19

15.08.2018 15:19

werwest

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

steam ucet

v Počítačové hry

7

593

21.01.2016 15:38

brmbo

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

Temp účet

v Operačné systémy Microsoft

1

711

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

442

07.09.2014 10:18

Fry



© 2005 - 2024 PCforum, edited by JanoF