1 (изменено: SergeyA, 2012-02-14 01:13:35)

Тема: JScript: Вызов функций из dll в JScript

Подскажите пожалуйста, нашёл в сети вот такой пример и сделал так:


var isRegistered = registerCFunction("MessageBox","D:\\WINDOWS\\system32\\user32.dll", "user32_MessageBox");

If (isRegistered==True);
{

   var returnValue = callC("MessageBox", 0, "HEllo", "MBox", 32);
   write(returnValue);

}

Но он не работает, пишет: Предпологается наличие объекта, JavaScript не знаю вообще... хотел поинтересоваться что этот пример делает и как им пользоватся?

2

Re: JScript: Вызов функций из dll в JScript

Думаю, что registerCFunction и callC — самописные (на JavaScript) функции, внутри которых используется что-то наподобие Dynwrapx. Напрямую из JScript/VBScript вы API-функцию никак не вызовете, нет в этих языках такой возможности. Если использование дополнительных DLL по какой-то причине нежелательно, посмотрите в сторону AutoHotkey, например. Там проблем с API никаких и скрипт можно скомпилировать в EXE, так что будет работать на любой машине даже без установки AutoHotkey. В то же время это скриптовый язык, с соответствующими удобствами по сравнению с компилируемыми языками.

3 (изменено: SergeyA, 2012-02-14 10:52:29)

Re: JScript: Вызов функций из dll в JScript

Спасибо за разъяснение, но я сам пишу на AutoIt, очень жаль что VBScript и Jscript не имеют возможности вызова функций из dll на прямую, в AutoIt нет возможности писать свои dll и ActiveX компоненты, я подумал, а что если написать WSC (Windows Script Component) на VBScript или JScript оказалось в каждом скриптовом языке есть свои не достатки, а использовать Dynwrapx для этого нет смысла, так как я могу в AutoIt напрямую с ним работать.

4

Re: JScript: Вызов функций из dll в JScript

SergeyA,еcли принципиально хочется использовать WSH c JS, то ознакомьтесь с этой темой и пользуйтесь DynWrapperX.

Если очень нравится язык JS, то можете внутри AutoIt использовать ScriptControl и портировать туда не достающие в WSH-JS функции.