Code: Select all
Enumeration COMPUTER_NAME_FORMAT
#ComputerNameNetBIOS
#ComputerNameDnsHostname
#ComputerNameDnsDomain
#ComputerNameDnsFullyQualified
#ComputerNamePhysicalNetBIOS
#ComputerNamePhysicalDnsHostname
#ComputerNamePhysicalDnsDomain
#ComputerNamePhysicalDnsFullyQualified
#ComputerNameMax
EndEnumeration
Import "Kernel32.lib"
GetComputerNameEx(NameType, lpBuffer.s, nSize) As "GetComputerNameExW"
EndImport
; Prototype GetComputerNameEx(NameType, r.s, size)
; OpenLibrary(1, "Kernel32.dll")
; Global GetComputerNameEx.GetComputerNameEx = GetFunction(1, "GetComputerNameExW")
; CloseLibrary(#PB_All)
Procedure.s GetComputerName(NameType = #ComputerNamePhysicalDnsFullyQualified)
Protected r.s, size = 512
r = Space(size)
If GetComputerNameEx(NameType, r, @size)
ProcedureReturn Trim(r)
EndIf
EndProcedure
Debug GetComputerName()
; ---------------------------
; PureBasic - Linker error
; ---------------------------
; POLINK: error: Unresolved external symbol 'GetComputerNameExW'.
;
; POLINK: fatal error: 1 unresolved external(s).
;
;
; ---------------------------
; OK
; ---------------------------