Windows Script Host
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4 ... 25, 26, 27  Next  :| |:
Total Commander -> Автоматизация Total Commander

#31:  Author: Ciber SLasHLocation: С.-Петербург PostPosted: Wed Nov 23, 2005 20:21
    —
В принципе API-функции можно вызывать через RunDll32.exe, но получить возвращённое значение не получится Sad

Просто были мысли на WSH создать оконный интерфейс, т.е. создать окно "CreateWindowEx", напихать в него элементов и обрабатывать события... Тогда можно было бы фактически не имея компилятора лабать проги с оконным интерфейсом на любом компе с виндами...

#32:  Author: Ciber SLasHLocation: С.-Петербург PostPosted: Wed Nov 23, 2005 21:20
    —
Не пойму, почему не работает следующий JScript-код:
Code:
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');

?

#33:  Author: VolniyLocation: Местный PostPosted: Wed Nov 23, 2005 21:44
    —
Я, блин, болею сейчас, так что не очень-то на меня рассчитывайте Sad

По делу: минимальный код для проверки факта свершившейся установки Helpera в системе
Code:
Set TCS = CreateObject("TCSCRIPT.Helper")
TCS.About
Set TCS = Nothing

Чтобы она свершилась, пользователь во-первых должен иметь права записи в реестр. Кстати, командная строка неверно тут была упомянута, должна быть TCWSHelp.exe /REGSERVER (хотя для регистрации достаточно и простого запуска без командной строки). Тут есть важный момент: при использовании хелпера нужно быть уверенным, что он находится на том самом месте, где был при регистрации. CaptainFlint, это как раз твой случай, ругается именно на отсутствие файла EXE-сервера, а не на регисрацию. Ты его, часом не из архива запускал? Проверь.

PS CaptainFlint, ну и чего я тебе плохова сделал, а? Мыло мое вытри, плиз, из поста.

#34:  Author: CaptainFlintLocation: Москва PostPosted: Wed Nov 23, 2005 22:01
    —
Volniy
Quote:
Ты его, часом не из архива запускал? Проверь.

Нет, конечно. Сам о такой возможности подумал, уже всё это проверял (уже работал немного с подобными вещами, теперь к этому делу аккуратнее отношусь). Однако запуск TCWSHelp.exe /REGSERVER всё исправил! (Совсем слепой я стал, не вчитался, когда ридми читал, показалось, там REGISTER). Теперь всё работает, спасибо!

Quote:
PS CaptainFlint, ну и чего я тебе плохова сделал, а? Мыло мое вытри, плиз, из поста.

Ой, блин, извини, пожалуйста... Sad Не сообразил...

#35:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Nov 24, 2005 11:37
    —
CaptainFlint
Quote:
Однако запуск TCWSHelp.exe /REGSERVER всё исправил!

Дааа... Не ожидал от тебя такого Smile У меня даже мысли не было посмотреть синтаксис приведенной тобой команды. Все-таки копи-паст великая вещь Wink

Ciber SLasH
Quote:
Не пойму, почему не работает следующий JScript-код:

Я совсем не знаю, как работать с Rundll32. Что должно происходить? Приведи просто командную строку, которая работает.
По крайней мере, работает так:
Code:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("calc.exe");

#36:  Author: CaptainFlintLocation: Москва PostPosted: Thu Nov 24, 2005 11:49
    —
Batya
Quote:
Не ожидал от тебя такого

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

#37:  Author: Ciber SLasHLocation: С.-Петербург PostPosted: Thu Nov 24, 2005 11:58
    —
Вот, криво, но всё-таки работающий пример вызова API-функции MessageBoxA:
Code:
var WSH_Shell = WScript.CreateObject("WScript.Shell");
WSH_Shell.Run('Rundll32.exe user32.dll,MessageBoxA "API-функция: MessageBoxA"', 0x40)

#38:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Nov 24, 2005 13:15
    —
Ciber SLasH
Вот чего нарыл:
Исполнитель функций 32разрядных библиотек

#39:  Author: VolniyLocation: Местный PostPosted: Thu Nov 24, 2005 17:27
    —
Batya wrote:
Исполнитель функций 32разрядных библиотек[/url]

Это далеко не новинка, видел и покруче (поищи по словам "wsh API Toolkit OCX"), он и результат функций возвращает. У меня, кстати, есть один красивый Class c аналогичными делами, могу, если надо, впихнуть его в свой хелпер. А надо?

--

По поводу глюка автоматической регистрации. Похоже, он проявляется, если в полном пути к EXE есть пробелы (тут один на Английской странице уже заметил это дело и у меня тоже воспроизвелось оно). Учитывая тот факт, что авторегистрацию делаю не я, а сам компилятор, тут я ничем не могу помочь, хотя есть тут одна идейка...

--

PS Команды /REGSERVER и /UNREGSERVER - это не моя придурь, а стандартные команды (де)регистрации всех 32-битных EXE-серверов.
Можно, например, WinWord /REGSERVER испробовать, весьма прикольно выходит.

#40:  Author: CaptainFlintLocation: Москва PostPosted: Thu Nov 24, 2005 17:39
    —
Volniy
Quote:
По поводу глюка автоматической регистрации. Похоже, он проявляется, если в полном пути к EXE есть пробелы (тут один на Английской странице уже заметил это дело и у меня тоже воспроизвелось оно).

Первый раз, когда я экспериментировал, в пути, действительно, были пробелы. Но потом я решил на всякий случай без них, распаковал весь архив в C:\tmp\tcwshelp_b10\ - что в лоб, что по лбу.
Правда, теперь, уже после того, как сработал ключ /REGSERVER, авторегистрация начала работать (т.е. если сделать /UNREGSERVER (проверяю, действительно, скрипт перестаёт работать), а потом просто запустить TCWSHelp.exe, то регистрация нормально проходит, в том числе, когда путь с пробелами).

#41:  Author: VolniyLocation: Местный PostPosted: Thu Nov 24, 2005 18:09
    —
CaptainFlint wrote:
Правда, теперь, уже после того, как сработал ключ /REGSERVER, авторегистрация начала работать (т.е. если сделать /UNREGSERVER (проверяю, действительно, скрипт перестаёт работать), а потом просто запустить TCWSHelp.exe, то регистрация нормально проходит, в том числе, когда путь с пробелами).

У меня тоже так было. Непонятные какие-то дела. Я просто доку, наверное, перепишу.

#42:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Nov 24, 2005 18:51
    —
Volniy
Quote:
Это далеко не новинка, видел и покруче (поищи по словам "wsh API Toolkit OCX"), он и результат функций возвращает. У меня, кстати, есть один красивый Class c аналогичными делами, могу, если надо, впихнуть его в свой хелпер. А надо?

Наверное, надо.
Мне хочется того же, что и Ciber SLasH:
Quote:
Просто были мысли на WSH создать оконный интерфейс, т.е. создать окно "CreateWindowEx", напихать в него элементов и обрабатывать события... Тогда можно было бы фактически не имея компилятора лабать проги с оконным интерфейсом на любом компе с виндами...

Где бы еще почитать про API-функции, желательно по-русски.

И еще... Что-то по поиску, который ты предложил, все скаченные архивы zip (примеры, ocx) не открываются. Что за архивы буржуи выкладывают?

#43:  Author: VolniyLocation: Местный PostPosted: Thu Nov 24, 2005 19:16
    —
Batya wrote:
Мне хочется того же, что и Ciber SLasH

Окна - это уж слишком. Как он их там будет субклассить в скриптах? У меня была идея конструктора форм. Тоесть задать набор сттандартных элементов, а уже пользователь сам выбирает, что из них показывать и в каком месте формы. Но потом посмотрел, что это геморрой весьма конкретный и отказался я от этой идеи.

Quote:
Где бы еще почитать про API-функции, желательно по-русски.

Есть в сети немного, но в основном, на Английском, конечно. Привыкай. Или лучши купи хорошую книгу по API.

Quote:
Что за архивы буржуи выкладывают?

Вот выложил тот, что есть у меня.

#44:  Author: Lev PostPosted: Sat Nov 26, 2005 00:09
    —
Никак не могу разобраться с Буфером обмена. Создаю в буфере текст - "фыва", на всякий случай проверяю содержимое.
Code:
Dim TCS
Set TCS = CreateObject("TCSCRIPT.Helper")
TCS.SetTextToClip ("фыва")
msgbox TCS.GetTextFromClip

Начинаю вставлять - в одних программах - фыва
в других - ôûâà, думается тут каким-то боком примостился Юникод.
И никак не придумывается, чего надо сделать, чтобы везде было "фыва". Sad
Может сам Хелпер должен быть подкручен?

#45:  Author: VolniyLocation: Местный PostPosted: Sat Nov 26, 2005 03:01
    —
Lev wrote:

Начинаю вставлять - в одних программах - фыва
в других - ôûâà, думается тут каким-то боком примостился Юникод.
И никак не придумывается, чего надо сделать, чтобы везде было "фыва". Sad

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



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4 ... 25, 26, 27  Next  :| |:
Page 3 of 27

Powered by phpBB © 2001, 2005 phpBB Group