Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Kорзина _ Глюк Со Скриптами В Ptokax Service/console

Автор: alex82 29.3.2009, 23:34

Такой вот глюк:
После установки PtokaX как system service перестают нормально работать скрипты - некоторые вовсе не работают, некоторые работают, но не совсем полноценно. Если удалить службу, и запустить птоку как консольное приложение, всё работает нормально.

Кто-нибудь с таким сталкивался?

PS. Службу устанавливал стандартным способом

Код
PtokaX.exe -i ptokax




__________________________________________________

Добавлено спустя некоторое время

Код
1    23:00:39    PtokaX_c.exe:3552    CREATE    C:\WINDOWS\system32\data\support.tbl


Нет слов.
Точнее есть, но все матерные. Это ж надо додуматься, блин, сохранять данные скриптов в system32 eyes_droped.gif

А вот ещё один шедевр:
Код
1    23:18:42    PtokaX_c.exe:7076    CREATE    C:\Documents and Settings\2\data\support.tbl    PATH NOT FOUND
В этом случае птока была запущена при помощи функции ShellExecute c атрибутом SW_HIDE.

Видимо понятие "относительные пути" в новой птоке отсутствует, а есть только абсолютные, и плавающие.

* мысленно пинает PPK ногой под зад *

Тема исчерпана, вопросов больше не имею.

Автор: Setuper 29.3.2009, 23:39

Я так полагаю, что всё будет работать, если в скриптах писать так: Core.GetPtokaXPath() ?
Я правильно понял?

Автор: alex82 30.3.2009, 0:04

Угу.

И если весь скрипт засунуть внутрь OnStartup()

Автор: Setuper 30.3.2009, 0:09

Ну не весь скрипт, а только те его части, которые требуют чтобы глобальные таблицы были определены.
В этом то и есть вся сила абсолютных путей - они всегда универсальны.

Автор: alex82 30.3.2009, 0:23

Цитата(Setuper @ 30.3.2009, 0:09) *
Ну не весь скрипт, а только те его части, которые требуют чтобы глобальные таблицы были определены.
В этом то и есть вся сила абсолютных путей - они всегда универсальны.

Знаешь, я ничего не имею против абсолютных путей.

Вот только вынуть бы функцию GetPtokaXPath() из таблицы Core.

* ещё раз мысленно пинает PPK ногой под зад *

Автор: Setuper 30.3.2009, 0:36

Да уж... Это нововведение (инициализировать таблицу Core только при запущенном хабе) появилось в API2, ведь в API1 таблица frmHub инициализировалась даже при остановленном хабе, и метод frmHub:GetPtokaXLocation() прекрасно работал.

Хотя я догадываюсь с чем это всё связано... Видимо это связано с возможностью смены почти всех настроек хаба без его остановки big_smile.gif

Автор: alex82 30.3.2009, 0:54

Интересная мысля:

Код
path = debug.getinfo(1).source:match("^@(.+\\).-$"):gsub("\\","/")

Что ты об этом думаешь?

Автор: Setuper 30.3.2009, 1:14

Отличная вещь! Это универсальный метод определения абсолютного пути. Он даже не зависит от хаба и отслеживает путь не до файла ptokax.exe, а до самого запущенного скрипта big_smile.gif

Хотя надо протестить на линуксе. Дума, что на линуксе надо писать так:

Код
path = debug.getinfo(1).source:match("^@(.+/).-$")

Поэтому самым универсальным, наверное, будет такой код:
Код
path = debug.getinfo(1).source:match("^@(.+[/\\]).-$"):gsub('\\','/')
В противном случае скрипты под линуксом будут работать неправильно big_smile.gif