GetUserNameEx
Windows API समारोह की कोशिश करो।
const
NameUnknown = 0;
NameFullyQualifiedDN = 1;
NameSamCompatible = 2;
NameDisplay = 3;
NameUniqueId = 6;
NameCanonical = 7;
NameUserPrincipal = 8;
NameCanonicalEx = 9;
NameServicePrincipal = 10;
NameDnsDomain = 12;
function GetUserNameExString(ANameFormat: DWORD): string;
var
Buf: array[0..256] of Char;
BufSize: DWORD;
GetUserNameEx: function (NameFormat: DWORD; lpNameBuffer: LPSTR;
var nSize: ULONG): BOOL; stdcall;
begin
Result := '';
BufSize := SizeOf(Buf) div SizeOf(Buf[0]);
GetUserNameEx := GetProcAddress(GetModuleHandle('secur32.dll'), 'GetUserNameExA');
if Assigned(GetUserNameEx) then
if GetUserNameEx(ANameFormat, Buf, BufSize) then
Result := Buf;
end;
उदाहरण के लिए NameDnsDomain
प्रारूप का उपयोग कर, www.mydomain.com\user_name
परिणाम यदि आप "www.mydomain.com" डोमेन में लॉग इन किया जाएगा।
चूंकि अब मैंने इसे अपने आवेदन में अपनी जरूरतों के लिए लागू किया है, इसलिए @ आईपैथ की टिप्पणी सही छोड़ दी गई थी। GetComputerNameEx
का बेहतर उपयोग करें, और अपनी खुद की जरूरतों के लिए COMPUTER_NAME_FORMAT
में से एक निर्दिष्ट करें।
एक डेल्फी कार्यान्वयन इस (यूनिकोड संस्करण) दिखाई देगा:
interface
...
type
COMPUTER_NAME_FORMAT = (
ComputerNameNetBIOS,
ComputerNameDnsHostname,
ComputerNameDnsDomain,
ComputerNameDnsFullyQualified,
ComputerNamePhysicalNetBIOS,
ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain,
ComputerNamePhysicalDnsFullyQualified,
ComputerNameMax);
function GetComputerNameExString(ANameFormat: COMPUTER_NAME_FORMAT): WideString;
implementation
...
function GetComputerNameExW(NameType: COMPUTER_NAME_FORMAT; lpBuffer: LPWSTR;
var nSize: DWORD): BOOL; stdcall; external kernel32 name 'GetComputerNameExW';
function GetComputerNameExString(ANameFormat: COMPUTER_NAME_FORMAT): WideString;
var
nSize: DWORD;
begin
nSize := 1024;
SetLength(Result, nSize);
if GetComputerNameExW(ANameFormat, PWideChar(Result), nSize) then
SetLength(Result, nSize)
else
Result := '';
end;
डोमेन नाम.com पर चल रहे डोमेन सर्वर है अन्यथा यह सही होगा यदि आप सही फ़ंक्शन का उपयोग करते हैं तो भी यह खाली होगा। –
क्या यह एक सक्रिय निर्देशिका डोमेन है? –
आपका प्रश्न बहुत स्पष्ट नहीं है। इन सभी इंफोस ** मशीन ** से संबंधित हैं, ** ** ** ** नहीं। – OnTheFly