Scripts plugin
- Author
- Message
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
Instructor, обновился и десятки скриптов vbs перестали работать...
После длительных поисков нашёл причину
Раньше работала такая конструкция
т.е. скрипт получал параметр и SendMessage срабатывал. Сейчас нет.
Сейчас срабатывает другая конструкция:
т.е. цифровой параметр стало обязательным переводить в цифровой тип.
Может можно это подправить, чтобы не исправлять десятки скриптов
После длительных поисков нашёл причину
Раньше работала такая конструкция
Code: Select all
-"Test.vbs" Call("Scripts::Main", 1, "+Test.vbs", `"4155"`)
Code: Select all
With AkelPad
Wnd = .GetMainWnd
n = WScript.Arguments(0)
Call .SendMessage(Wnd, 273, n, 0)
End With
Сейчас срабатывает другая конструкция:
Code: Select all
With AkelPad
Wnd = .GetMainWnd
n = CInt(WScript.Arguments(0))
Call .SendMessage(Wnd, 273, n, 0)
End With
Может можно это подправить, чтобы не исправлять десятки скриптов
-
Offline
- Posts: 1250
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
А разве передача `"4155"` со вложенными кавычками не является явным указанием трактовать этот параметр как строку?Andrey_A_A wrote:Code: Select all
-"Test.vbs" Call("Scripts::Main", 1, "+Test.vbs", `"4155"`)
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
Не знаю как это трактовать, но это работалотрактовать этот параметр как строку
А это как трактовать, если так тоже не работает?
Code: Select all
-"Test.vbs" Call("Scripts::Main", 1, "+Test.vbs", `4155`)
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Andrey_A_A
Раньше SendMessage принимал только числа (видимо VBScript сам производил конвертацию при передаче параметра методу SendMessage), теперь может принимать также и строки. WScript.Arguments(0) возвращает только строки, поэтому, чтобы передать число, необходима конвертация.
Не думать о конвертации позволит метод GetArgValue, т.к. тип наследуется от значения по умолчанию, но это другой подход к передаче параметров скрипту.
Раньше SendMessage принимал только числа (видимо VBScript сам производил конвертацию при передаче параметра методу SendMessage), теперь может принимать также и строки. WScript.Arguments(0) возвращает только строки, поэтому, чтобы передать число, необходима конвертация.
Не думать о конвертации позволит метод GetArgValue, т.к. тип наследуется от значения по умолчанию, но это другой подход к передаче параметров скрипту.
-
Offline
- Posts: 670
- Joined: Thu Jun 03, 2010 8:47 am
- Location: Сочи, Хоста
- Contact:
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Изменено: если в качестве дескриптора в методе ScriptHandle() используется ноль, то задействуется дескриптор текущего скрипта.
Добавлено: получение параметров синхронизации через метод ScriptHandle().
Исправлено: принудительный выход из цикла сообщений скриптов при выходе из программы.
Changed: if in ScriptHandle() method handle equal to zero, then current script handle is used.
Added: receive synchronization settings through a method ScriptHandle().
Fixed: forced to exit from scripts message loop when program closed.
Scripts plugin v13.1
Добавлено: получение параметров синхронизации через метод ScriptHandle().
Исправлено: принудительный выход из цикла сообщений скриптов при выходе из программы.
Changed: if in ScriptHandle() method handle equal to zero, then current script handle is used.
Added: receive synchronization settings through a method ScriptHandle().
Fixed: forced to exit from scripts message loop when program closed.
Scripts plugin v13.1
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Добавлено: отладка скриптов в отладчике в режиме реального времени (JIT).
Добавлено: метод DebugJIT() - точка останова (вызвать программу отладки).
Added: just in time (JIT) scripts debugging in debugger.
Added: method DebugJIT() - breakpoint (causes break into the debugger).
Scripts plugin v13.2
Добавлено: метод DebugJIT() - точка останова (вызвать программу отладки).
Added: just in time (JIT) scripts debugging in debugger.
Added: method DebugJIT() - breakpoint (causes break into the debugger).
Scripts plugin v13.2
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Попробовал потыкать из старых релизов АР(случайно выбирал версии от 4.5.0 - до текущей)... не пошло.
Попробовал поймать на MSVS 10.0.40219.1 SP1Rel(на другой машине)
Попробую где-то раздобыть студию по старше, может что и выплывет(прошлый раз работало то кажись на 2008-ой, хз может что и сломалось)...
Попробовал поймать на MSVS 10.0.40219.1 SP1Rel(на другой машине)
Попробую где-то раздобыть студию по старше, может что и выплывет(прошлый раз работало то кажись на 2008-ой, хз может что и сломалось)...
-
Offline
- Site Admin
- Posts: 6311
- Joined: Thu Jul 06, 2006 7:20 am
Добавлено: возможность устанавливать несколько перехватчиков сообщений одного типа в разные скрипты.
Исправлено: освобождение ресурсов после отладки.
Added: multisubclassing of one type in different scripts.
Fixed: releasing resources after debugging.
Scripts plugin v13.3
Исправлено: освобождение ресурсов после отладки.
Added: multisubclassing of one type in different scripts.
Fixed: releasing resources after debugging.
Scripts plugin v13.3