Иногда в 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)