Как узнать количество успехов?

Lest

Client
Регистрация
20.03.2020
Сообщения
39
Благодарностей
21
Баллы
8
Столкнулся с необходимостью записи количества успехов. Как можно это сделать? Нашёл на форуме два способа вот и вот. Но добавлять +1 мне слишком геморно, так как каждый день эти успехи сбрасываются, и это долго шаманить придётся. А сниппет не работает. "Ошибка в действии "CS0234" "The type or namespace name 'XmlDocument' does not exist in the namespace 'System.Xml' (are you missing an assembly reference?)". [Строка: 4; Cтолбец: 30]" Есть ли какой-нибудь ещё способ узнать успехи? Или помогите сделать так, чтобы этот сниппет заработал.
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113
Вот сниппет (в оригинальном из этого поста есть небольшая опечатка, из-за чего он не будет работать):

Приношу извинения за ложное обвинения автора поста, указанного строкой выше, - там нет опечатки, код корректный. Но он будет работать только в 5й версии постера, но не в 7й. Код ниже работает и в 7й, и в 5й версии.


C#:
// НЕОБХОДИМО ПОДКЛЮЧИТЬ System.Xml в "Ссылки из GAC".

// В этой переменной надо указать имя проекта (точно как в ZP),
// для которого необходимо получить успехи
string name = "Test";

var tasks = ZennoPoster.TasksList;

foreach(string task in tasks)
{
    var doc = new System.Xml.XmlDocument();
    doc.LoadXml("<Task>" + task + "</Task>");
    var nameNode = doc.SelectSingleNode("Task/Name");

    if(nameNode != null && nameNode.InnerText.Equals(name))
    {
        System.Xml.XmlNode node;
        // Для 5й версии ZennoPoster
        node = doc.SelectSingleNode("Task/ExecutionSettings/DoneSuccesfully");
        // Для 7й версии ZennoPoster
        if (node == null)
        {
            node = doc.SelectSingleNode("Task/ExecutionSettings/DoneSuccessfully");
        }
        return node.InnerText;
    }
}
Для работы надо подключить System.Xml
66438

66425
 
Последнее редактирование:
  • Спасибо
Реакции: Lest

Lest

Client
Регистрация
20.03.2020
Сообщения
39
Благодарностей
21
Баллы
8
Вот сниппет (в оригинальном из этого поста есть небольшая опечатка, из-за чего он не будет работать):

Для работы надо подключить System.Xml
Сделал всё как вы сказали, вылазит в PM "Выполнение действия CSharp OwnCode. [Строка: 16; Cтолбец: 8] Ссылка на объект не указывает на экземпляр объекта.", если правильно ввести имя проекта и запустить Zennoposter, если либо ввести не то имя или не запускать Zennoposter, то в переменную записывается "ok". Если запускаю в постере и правильное имя, то всегда эта ошибка вылазит.
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113
Сделал всё как вы сказали, вылазит в PM "Выполнение действия CSharp OwnCode. [Строка: 16; Cтолбец: 8] Ссылка на объект не указывает на экземпляр объекта.", если правильно ввести имя проекта и запустить Zennoposter, если либо ввести не то имя или не запускать Zennoposter, то в переменную записывается "ok". Если запускаю в постере и правильное имя, то всегда эта ошибка вылазит.
Код запускаете из моего сообщения? Какая версия программы?

UPD: обновил предыдущий пост. Если Вы работаете в 5й версии, то нужно закоментировать строку 24 (добавить //) и раскоментировать строку 21 (убрать // в начале). Ничего уже не надо комментировать, код будет работать в обеих версиях постера (5й и 7й).
 
Последнее редактирование:
  • Спасибо
Реакции: Lest

Lest

Client
Регистрация
20.03.2020
Сообщения
39
Благодарностей
21
Баллы
8
Код запускаете из моего сообщения? Какая версия программы?

UPD: обновил предыдущий пост. Если Вы работаете в 5й версии, то нужно закоментировать строку 24 (добавить //) и раскоментировать строку 21 (убрать // в начале).
Работаю в 5й версии. Теперь работает отлично, спасибо огромное! :bp:
 
  • Спасибо
Реакции: nicanil

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 761
Благодарностей
2 401
Баллы
113
Код запускаете из моего сообщения? Какая версия программы?

UPD: обновил предыдущий пост. Если Вы работаете в 5й версии, то нужно закоментировать строку 24 (добавить //) и раскоментировать строку 21 (убрать // в начале).
Можно узнать как-то из шаблона на какой версии Зенно (5 или 7) он работает?
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113
Можно узнать как-то из шаблона на какой версии Зенно (5 или 7) он работает?
Когда-то давно использовал для себя такой вариант - клик
Но, судя по последнему сообщению в той теме, с 7й версией могут быть проблемы.

Для теста запустил на самой последней версии постера код return System.Reflection.Assembly.GetEntryAssembly().FullName; и он вернул корректный результат - ZennoPoster, Version=7.2.1.0, Culture=neutral, PublicKeyToken=null
 
  • Спасибо
Реакции: BAZAg

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113
В очередной раз (кажется это уже 4й) обновил свой пост:dy:
Теперь ничего не надо комментировать - просто берём и вставляем в свой проект и он будет работать независимо от того 5я у вас версия или 7я (главное не забываейте указывать своё имя проекта и переменную, куда должен записаться результат).
 
  • Спасибо
Реакции: Koqpe

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)