Страница 3 из 27
Добавлено: Ср ноя 23, 2005 19:21
Ciber SLasH
В принципе API-функции можно вызывать через RunDll32.exe, но получить возвращённое значение не получится
Просто были мысли на WSH создать оконный интерфейс, т.е. создать окно "CreateWindowEx", напихать в него элементов и обрабатывать события... Тогда можно было бы фактически не имея компилятора лабать проги с оконным интерфейсом на любом компе с виндами...
Добавлено: Ср ноя 23, 2005 20:20
Ciber SLasH
Не пойму, почему не работает следующий JScript-код:
Код: Выделить всё
var WSH_Shell = WScript.CreateObject("WScript.Shell");
var SysPath = WSH_Shell.ExpandEnvironmentStrings("%WinDir%") + "\\system32";
WSH_Shell.Run(SysPath+'\\Rundll32.exe shell32,ShellExecuteA 0,"","","'+SysPath+'\\calc.exe","","",5');
?
Добавлено: Ср ноя 23, 2005 20:44
Volniy
Я, блин, болею сейчас, так что не очень-то на меня рассчитывайте
По делу: минимальный код для проверки факта свершившейся установки Helpera в системе
Код: Выделить всё
Set TCS = CreateObject("TCSCRIPT.Helper")
TCS.About
Set TCS = Nothing
Чтобы она свершилась, пользователь во-первых должен иметь права записи в реестр. Кстати, командная строка неверно тут была упомянута, должна быть
TCWSHelp.exe /REGSERVER (хотя для регистрации достаточно и простого запуска без командной строки). Тут есть важный момент: при использовании хелпера нужно быть уверенным, что он находится на том самом месте, где был при регистрации.
CaptainFlint, это как раз твой случай, ругается именно на отсутствие файла EXE-сервера, а не на регисрацию. Ты его, часом не из архива запускал? Проверь.
PS
CaptainFlint, ну и чего я тебе плохова сделал, а? Мыло мое вытри, плиз, из поста.
Добавлено: Ср ноя 23, 2005 21:01
CaptainFlint
Volniy
Ты его, часом не из архива запускал? Проверь.
Нет, конечно. Сам о такой возможности подумал, уже всё это проверял (уже работал немного с подобными вещами, теперь к этому делу аккуратнее отношусь). Однако запуск TCWSHelp.exe /REGSERVER всё исправил! (Совсем слепой я стал, не вчитался, когда ридми читал, показалось, там REGISTER). Теперь всё работает, спасибо!
PS CaptainFlint, ну и чего я тебе плохова сделал, а? Мыло мое вытри, плиз, из поста.
Ой, блин, извини, пожалуйста...

Не сообразил...
Добавлено: Чт ноя 24, 2005 10:37
Batya
CaptainFlint
Однако запуск TCWSHelp.exe /REGSERVER всё исправил!
Дааа... Не ожидал от тебя такого

У меня даже мысли не было посмотреть синтаксис приведенной тобой команды. Все-таки копи-паст великая вещь
Ciber SLasH
Не пойму, почему не работает следующий JScript-код:
Я совсем не знаю, как работать с Rundll32. Что должно происходить? Приведи просто командную строку, которая работает.
По крайней мере, работает так:
Код: Выделить всё
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("calc.exe");
Добавлено: Чт ноя 24, 2005 10:49
CaptainFlint
Batya
Не ожидал от тебя такого
Я сам от себя не ожидал такого.

Просто в ридми такой упор делался на то, что всё регистрится автоматом, что с явным указанием ключа я запустил так, лишь бы отделаться и проверить путь, который 100% ничего не изменит

До копи-паста дело просто не успело дойти.
Добавлено: Чт ноя 24, 2005 10:58
Ciber SLasH
Вот, криво, но всё-таки работающий пример вызова API-функции
MessageBoxA:
Код: Выделить всё
var WSH_Shell = WScript.CreateObject("WScript.Shell");
WSH_Shell.Run('Rundll32.exe user32.dll,MessageBoxA "API-функция: MessageBoxA"', 0x40)
Добавлено: Чт ноя 24, 2005 12:15
Batya
Добавлено: Чт ноя 24, 2005 16:27
Volniy
Batya писал(а):Исполнитель функций 32разрядных библиотек[/url]
Это далеко не новинка, видел и покруче (поищи по словам "wsh API Toolkit OCX"), он и результат функций возвращает. У меня, кстати, есть один красивый Class c аналогичными делами, могу, если надо, впихнуть его в свой хелпер. А надо?
--
По поводу глюка автоматической регистрации. Похоже, он проявляется, если в полном пути к EXE есть пробелы (тут один на Английской странице уже заметил это дело и у меня тоже воспроизвелось оно). Учитывая тот факт, что авторегистрацию делаю не я, а сам компилятор, тут я ничем не могу помочь, хотя есть тут одна идейка...
--
PS Команды /REGSERVER и /UNREGSERVER - это не моя придурь, а стандартные команды (де)регистрации всех 32-битных EXE-серверов.
Можно, например, WinWord /REGSERVER испробовать, весьма прикольно выходит.
Добавлено: Чт ноя 24, 2005 16:39
CaptainFlint
Volniy
По поводу глюка автоматической регистрации. Похоже, он проявляется, если в полном пути к EXE есть пробелы (тут один на Английской странице уже заметил это дело и у меня тоже воспроизвелось оно).
Первый раз, когда я экспериментировал, в пути, действительно, были пробелы. Но потом я решил на всякий случай без них, распаковал весь архив в C:\tmp\tcwshelp_b10\ - что в лоб, что по лбу.
Правда, теперь, уже после того, как сработал ключ /REGSERVER, авторегистрация начала работать (т.е. если сделать /UNREGSERVER (проверяю, действительно, скрипт перестаёт работать), а потом просто запустить TCWSHelp.exe, то регистрация нормально проходит, в том числе, когда путь с пробелами).
Добавлено: Чт ноя 24, 2005 17:09
Volniy
CaptainFlint писал(а):Правда, теперь, уже после того, как сработал ключ /REGSERVER, авторегистрация начала работать (т.е. если сделать /UNREGSERVER (проверяю, действительно, скрипт перестаёт работать), а потом просто запустить TCWSHelp.exe, то регистрация нормально проходит, в том числе, когда путь с пробелами).
У меня тоже так было. Непонятные какие-то дела. Я просто доку, наверное, перепишу.
Добавлено: Чт ноя 24, 2005 17:51
Batya
Volniy
Это далеко не новинка, видел и покруче (поищи по словам "wsh API Toolkit OCX"), он и результат функций возвращает. У меня, кстати, есть один красивый Class c аналогичными делами, могу, если надо, впихнуть его в свой хелпер. А надо?
Наверное, надо.
Мне хочется того же, что и
Ciber SLasH:
Просто были мысли на WSH создать оконный интерфейс, т.е. создать окно "CreateWindowEx", напихать в него элементов и обрабатывать события... Тогда можно было бы фактически не имея компилятора лабать проги с оконным интерфейсом на любом компе с виндами...
Где бы еще почитать про API-функции, желательно по-русски.
И еще... Что-то по поиску, который ты предложил, все скаченные архивы zip (примеры, ocx) не открываются. Что за архивы буржуи выкладывают?
Добавлено: Чт ноя 24, 2005 18:16
Volniy
Batya писал(а):Мне хочется того же, что и Ciber SLasH
Окна - это уж слишком. Как он их там будет субклассить в скриптах? У меня была идея конструктора форм. Тоесть задать набор сттандартных элементов, а уже пользователь сам выбирает, что из них показывать и в каком месте формы. Но потом посмотрел, что это геморрой весьма конкретный и отказался я от этой идеи.
Где бы еще почитать про API-функции, желательно по-русски.
Есть в сети немного, но в основном, на Английском, конечно. Привыкай. Или лучши купи хорошую книгу по API.
Что за архивы буржуи выкладывают?
Вот выложил тот, что есть у меня.
Добавлено: Пт ноя 25, 2005 23:09
Lev
Никак не могу разобраться с Буфером обмена. Создаю в буфере текст - "фыва", на всякий случай проверяю содержимое.
Код: Выделить всё
Dim TCS
Set TCS = CreateObject("TCSCRIPT.Helper")
TCS.SetTextToClip ("фыва")
msgbox TCS.GetTextFromClip
Начинаю вставлять - в одних программах - фыва
в других - ôûâà, думается тут каким-то боком примостился Юникод.
И никак не придумывается, чего надо сделать, чтобы везде было "фыва".

Может сам Хелпер должен быть подкручен?
Добавлено: Сб ноя 26, 2005 02:01
Volniy
Lev писал(а):
Начинаю вставлять - в одних программах - фыва
в других - ôûâà, думается тут каким-то боком примостился Юникод.
И никак не придумывается, чего надо сделать, чтобы везде было "фыва".

Ты прав, это глюк Юникода. Там получается, что содержимое буфера обмена зависит от активной раскладки клавиатуры. Если она русская - все нормально, если нет - глюк. На данный момент я в хелпере не работаю с буфером напрямую, а только делаю обертку для готовых методов VB. Это они так работают. Аналогичная проблема и с методом SendKeystroke - если шлешь русский текст, то может быть послано такое же черте-че. Короче, проблема есть. Правда, ее можно уговорить одним стандартным рег-файликом, но это нежелательно. Я как-нибудь попробую переписать эти функции через WinAPI.