Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Bydlisko: Bánovce nad...
Príspevok NapísalOffline : 07.07.2009 11:58

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ý: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOnline : 07.07.2009 12:26

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
Bydlisko: Bánovce nad...
Príspevok Napísal autor témyOffline : 07.07.2009 12:58

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ý: 26.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOnline : 08.07.2009 10:21

Á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));
)


Odpovedať na tému [ Príspevkov: 4 ] 


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

525

31.12.2009 10:14

ivanpet Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

2

440

15.08.2008 12:44

Merm Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ako obist uzivatelsky ucet - heslo

v Operačné systémy Microsoft

8

1739

06.03.2009 15:39

teac77 Zobrazenie posledných príspevkov

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

398

27.02.2011 12:20

mirom Zobrazenie posledných príspevkov

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

496

08.10.2008 0:13

Josef Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. delphi zapis cisla do editu v delphi

v Delphi, Visual Basic

3

1107

11.05.2008 12:02

p360t Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

5

483

30.06.2011 17:59

michalesku Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Doska, procesor a ram - uzivatelsky PC do 400€

v PC zostavy

7

343

28.12.2015 18:21

kombinacka Zobrazenie posledných príspevkov

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

v Operačné systémy Unix a Linux

3

843

06.02.2009 17:02

Igor Zobrazenie posledných príspevkov

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

v Obchody, reklamácie a právo

14

3174

06.12.2008 21:13

tairikuokami Zobrazenie posledných príspevkov

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

534

21.01.2016 15:38

brmbo Zobrazenie posledných príspevkov

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

v Siete

2

532

04.09.2009 10:32

kabell987 Zobrazenie posledných príspevkov

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

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

3

554

10.02.2016 11:48

Webess Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

1

655

19.11.2009 20:08

KRUHO Zobrazenie posledných príspevkov

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

[ Choď na stránku:Choď na stránku: 1, 2, 3, 4 ]

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

111

6625

06.04.2019 11:15

werwest Zobrazenie posledných príspevkov

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

v Ostatné programy

0

397

07.09.2014 10:18

Fry Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra