понедельник, 17 ноября 2008 г.

Использование API функций в SilkTest

Иногда в Silktest возникает необходимость в использовании Windows API. Например когда необходимо получить доступ к директории "Cookies" путь к которой содержит имя пользователя, под которым Вы в данный момент залогинены на компьютере. SilkTest предоставлет нам такую возможность.

Для получения доступа к функциям из внешних DLL, необходимо использовать конструкцию вида:

[-] dll dllName.dll
[ ] [ReturnType] FuncName ( [ArgList] ) [alias dllFuncName]

где:
dllName.dll - имя библиотеки dll, функции которой предполагаетс использовать.
ReturnType - возвращаемый тип. (Является необязательным параметром)
FuncName - имя импортируемой функции. Может отличаться от имени, которое указано в DLL. Если имя функции указывается другое, то необходимо указать последний параметр alias
ArgList - список принимаемых аргументов. (Является необязательным параметром)
alias dllFuncName - имя функции, как оно указано в DLL. Указывается только в том случае, если имя FuncName отличается от оригинального имени функции.

Пример:

// Импорт функции для получения имени залогиненного в данный момент пользователя.
[-] dll "advapi32.dll"
[ ] LONG DLL_GetUserName(out STRING lpBuffer, inout LONG nSize) alias "GetUserNameW"

// Использование импортированной функции.
[ ] STRING sUserName // Переменная имени полученного пользователя.
[ ] LONG nSize = 0 // Переменная длинны имени полученного пользователя.
[ ] DLL_GetUserName(sUserName, nSize)

Комментариев нет:

Постоянные читатели