QTP Script to get the MAC Address

PROCEDURE UuidCreate EXTERNAL "rpcrt4.dll":U :
DEFINE INPUT-OUTPUT PARAMETER opi-guid AS CHARACTER NO-UNDO.
END PROCEDURE.

PROCEDURE UuidCreateSequential EXTERNAL "rpcrt4.dll":U :
DEFINE INPUT-OUTPUT PARAMETER opi-guid AS CHARACTER NO-UNDO.
END PROCEDURE.

FUNCTION inttohex RETURNS CHARACTER (INPUT i AS INTEGER):
/* only for 0..255 integer values */
DEFINE VARIABLE cHex AS CHARACTER NO-UNDO INIT '0123456789ABCDEF':U.
DEFINE VARIABLE j1 AS INTEGER NO-UNDO.
DEFINE VARIABLE j2 AS INTEGER NO-UNDO.

j1 = TRUNCATE(i / 16, 0) .
j2 = i - (j1 * 16).
RETURN SUBSTR(cHex, j1 + 1, 1) + SUBSTR(cHex, j2 + 1, 1).
END.


FUNCTION GetMacAddress RETURNS CHAR:
DEFINE VARIABLE X AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE j AS INTEGER NO-UNDO.
DEFINE VARIABLE r AS CHARACTER NO-UNDO.

X = FILL(' ':U, 16).

IF RunningWindows2000() THEN
RUN UuidCreateSequential (INPUT-OUTPUT X).
ELSE
RUN UuidCreate (INPUT-OUTPUT X).

DO i = 11 TO 16:
r = r + ' ':U + inttohex(ASC(SUBSTR(X,i,1))).
END.
RETURN SUBSTR(R,2).
END.

DISPLAY GetMAcAddress() FORMAT "X(20)":U.

No comments:

Post a Comment