How to Get the Current Machine Name

Chris Kelleher

Administrator
Staff member
<BLOCKQUOTE><font size="1" face="Arial, Verdana">code:</font><HR><pre>/* Version 1: API-call */
DEF VAR cComputerName AS CHAR NO-UNDO.
DEF VAR iComputerNameLength AS INTE NO-UNDO INITIAL 2048.
DEF VAR iRetVal AS INTE NO-UNDO.


ASSIGN cComputerName = FILL(" ",iComputerNameLength). /* Memory Allocation
*/

RUN GetComputerNameA (INPUT-OUTPUT cComputerName,
OUTPUT iComputerNameLength, /* ...initial value must
be set! */
OUTPUT iRetVal).
cComputerName = RIGHt-TRIM(cComputerName).
MESSAGE "From API: " cComputerName.

/* Version 2: From registry */
&SCOP COMPUTERNAME_BASEKEY SYSTEM\CurrentControlSet\Control\ComputerName
LOAD "{&COMPUTERNAME_BASEKEY}".
USE "{&COMPUTERNAME_BASEKEY}".
GET-KEY-VALUE SECTION "ComputerName" KEY "ComputerName" VALUE cComputerName.
UNLOAD "{&COMPUTERNAME_BASEKEY}".
MESSAGE "From Registry: " cComputerName.

PROCEDURE GetComputerNameA EXTERNAL "kernel32":
DEFINE INPUT-OUTPUT PARAMETER lpszName AS CHAR.
DEFINE OUTPUT PARAMETER lpdwcBuffer AS LONG. /* size, min
MAX_COMPUTER_NAME_LENGTH + 1 */
DEFINE RETURN PARAMETER ReturnValue AS long.
END PROCEDURE.
[/code]
 
Top