| | |
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Autor | Správa |
---|
Registrovaný: 12.05.09 Prihlásený: 21.05.10 Príspevky: 33 Témy: 8 Bydlisko: Bánovce nad... |
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 |
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 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.
|
|
Registrovaný: 12.05.09 Prihlásený: 21.05.10 Príspevky: 33 Témy: 8 Bydlisko: Bánovce nad... |
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.
_________________ SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA |
|
Registrovaný: 11.01.09 Prihlásený: 26.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 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)); )
|
|
| Stránka: 1 z 1
| [ Príspevkov: 4 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Uzivatelsky ucet v Operačné systémy Microsoft | 3 | 525 | 31.12.2009 10:14 ivanpet | | Vista - uzivatelsky ucet v Operačné systémy Microsoft | 2 | 440 | 15.08.2008 12:44 Merm | | ako obist uzivatelsky ucet - heslo v Operačné systémy Microsoft | 8 | 1739 | 06.03.2009 15:39 teac77 | | vista -neprejdem cez uživateľský účet v Operačné systémy Microsoft | 3 | 398 | 27.02.2011 12:20 mirom | | Užívateľský účet na Windows XP v Operačné systémy Microsoft | 5 | 496 | 08.10.2008 0:13 Josef | | delphi zapis cisla do editu v delphi v Delphi, Visual Basic | 3 | 1107 | 11.05.2008 12:02 p360t | | uzivatelsky priecinok nepristupny v Operačné systémy Microsoft | 5 | 483 | 30.06.2011 17:59 michalesku | | Doska, procesor a ram - uzivatelsky PC do 400€ v PC zostavy | 7 | 343 | 28.12.2015 18:21 kombinacka | | ucet v Operačné systémy Unix a Linux | 3 | 843 | 06.02.2009 17:02 Igor | | mBank účet v Obchody, reklamácie a právo | 14 | 3174 | 06.12.2008 21:13 tairikuokami | | steam ucet v Počítačové hry | 7 | 534 | 21.01.2016 15:38 brmbo | | skrytý učet v Siete | 2 | 532 | 04.09.2009 10:32 kabell987 | | Študentský účet v Ekonomika, práca, biznis, podnikanie a peniaze | 3 | 554 | 10.02.2016 11:48 Webess | | Temp účet v Operačné systémy Microsoft | 1 | 655 | 19.11.2009 20:08 KRUHO | | Bankový účet [ Choď na stránku: 1, 2, 3, 4 ] v Ekonomika, práca, biznis, podnikanie a peniaze | 111 | 6625 | 06.04.2019 11:15 werwest | | Google účet v Ostatné programy | 0 | 397 | 07.09.2014 10:18 Fry |
| 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
|
|