![]() |
Re: Mindest Passwort länge unter NT
Zitat:
|
Re: Mindest Passwort länge unter NT
Zitat:
|
Re: Mindest Passwort länge unter NT
Zitat:
|
Re: Mindest Passwort länge unter NT
Auweia, Micha, gleich mehrere Anfängerfehler.
1. Doku nicht gelesen 2. Prototyp falsch übersetzt (ich habe der Einfachheit halber DWORD genommen, das ist aber irrelevant) Also Read The Friendly Manual ... :zwinker:
Delphi-Quellcode:
Statt Pointer kannste natürlich auch wie immer PByte nehmen - so steht's ja im Header eigentlich. Ist aber schnuppe.
function NetUserModalsGet(Servername: LPCWSTR; Level: DWORD; var bufptr: Pointer): DWORD; stdcall; external 'Netapi32.dll';
function NetApiBufferFree(buf: Pointer): DWORD; stdcall; external 'Netapi32.dll'; var UserModalsInfo: PUSER_MODALS_INFO_0; dwRet: DWORD; const NERR_Success = 0; begin UserModalsInfo := nil; dwRet := NetUserModalsGet(nil, 0, Pointer(UserModalsInfo)); if ((dwRet = NERR_Success) and Assigned(UserModalsInfo)) then ... else ...; if Assigned(UserModalsInfo) then NetApiBufferFree(UserModalsInfo); end. Nachtrag Kleiner Tip noch: der "DWORD"-Wert den du zurückbekamst war ein Pointer auf dem Heap (hat man am Hex(!)-Zahlenwert schon gesehen). |
Re: Mindest Passwort länge unter NT
Die Doku habe ich gelesen. Was habe ich denn falsch gesmcht?
|
Re: Mindest Passwort länge unter NT
Zitat:
![]() Zitat:
Code:
#ifndef UNICODE
#define UNICODE #endif #include <stdio.h> #include <windows.h> #include <lm.h> int wmain(int argc, wchar_t *argv[]) { DWORD dwLevel = 0; [color=red]USER_MODALS_INFO_0 *pBuf = NULL;[/color] NET_API_STATUS nStatus; LPTSTR pszServerName = NULL; if (argc > 2) { fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]); exit(1); } // The server is not the default local computer. // if (argc == 2) pszServerName = argv[1]; // // Call the NetUserModalsGet function; specify level 0. // nStatus = NetUserModalsGet(pszServerName, dwLevel, [color=red](LPBYTE *)&pBuf);[/color] // // If the call succeeds, print the global information. // [color=red]if (nStatus == NERR_Success) { if (pBuf != NULL)[/color] { printf("\tMinimum password length: %d\n", pBuf->usrmod0_min_passwd_len); printf("\tMaximum password age (d): %d\n", pBuf->usrmod0_max_passwd_age/86400); printf("\tMinimum password age (d): %d\n", pBuf->usrmod0_min_passwd_age/86400); printf("\tForced log off time (s): %d\n", pBuf->usrmod0_force_logoff); printf("\tPassword history length: %d\n", pBuf->usrmod0_password_hist_len); } } // Otherwise, print the system error. // else fprintf(stderr, "A system error has occurred: %d\n", nStatus); // // Free the allocated memory. // [color=red]if (pBuf != NULL) NetApiBufferFree(pBuf);[/color] return 0; } Zitat:
Code:
[b]function[/b] NetUserModalsGet(Servername: LPCWSTR; Level: DWORD; [color=red][u]var[/u][/color] bufptr: Pointer): DWORD; [b]stdcall[/b]; [b]external[/b] 'Netapi32.dll';
|
Re: Mindest Passwort länge unter NT
Danke. Ich dachte, ich hätte den Pointer deklariert, so wie ich es gemacht habe. Gut, das mit dem var stimmt, das habe ich übersehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz