Альтернативный способ подключение шаблонов и плагинов на c# в Zennoposter/Zennodroid

  • Автор темы Автор темы lutic
  • Дата начала Дата начала

lutic

Client
Регистрация
20.01.2024
Сообщения
97
Реакции
92
Баллы
18
Добрый день.
Есть много вариантов подключения шаблонов внутри проекта, но данный вариант нигде на форуме не проскакивал, и не был раннее, кроме моих тем о многофункциональном кубике.
Много раз создавая темы мы имеет возможность видеть что например плагин или чужой шаблон куда то ушли, так как по ошибке мы удалили эти фаилы или переместили в другую папку
1731758814777.png
И как видим, плагин надо снова искать.
С помощью использования временного хранилища данных чтобы загрузить файл мы преобразуем наш шаблон/плагин в код base64

В данном случаем мы конвертирует и шаблон, и плагин с именем test_c_plugin

Конвертировать можно с помощью php
PHP:
Развернуть Свернуть Копировать
<?php

$f = file_get_contents("test_c_plugin.zpg");
file_put_contents(__DIR__."/2.txt", base64_encode($f));
?>

Код самого плагина:
C#:
Развернуть Свернуть Копировать
void info(string word){  project.SendInfoToLog(word.ToString(), "[Guru][VX]", true);  }

foreach(string name in project.Context.Keys){
    info(name+": "+project.Context[name]); //Вывод всех возможных переменных
}


Далее получаем текст в base64 и вставляем в нашу заготовку
C#:
Развернуть Свернуть Копировать
project.Context["test"] = "Test1";  //данные что передаются в плагин для работы
project.Context["test1"] = "test2";  //данные что передаются в плагин для работы

byte[] fileBytes = Convert.FromBase64String(getplugin());
string tempFilePath = Path.Combine(Path.GetTempPath(), "test_plugin.zp");
File.WriteAllBytes(tempFilePath, fileBytes);
bool res = project.ExecuteProject(tempFilePath, null, true, true, true);
if(File.Exists(tempFilePath)){ File.Delete(tempFilePath); }

if(!res){ throw new Exception("Что то пошло не так!"); }


string getplugin(){
    return "Код base64";
}

До 1731759701817.png после 1731760024706.png


Теперь плагин или вложенный шаблон/проект часть единого/основного проекта

Результат выполнения
1731761076400.png


UDP: с зашифрованными плагинами такой трюк не сработает

Работает как с Zennoposter и Zennodroid


Спасибо за внимание

 

Вложения

  • 1731758814777.png
    1731758814777.png
    38,5 KB · Просмотры: 96
  • 2.txt
    2.txt
    21,7 KB · Просмотры: 76
  • test_c_plugin.zpg
    test_c_plugin.zpg
    16,3 KB · Просмотры: 88
  • test_c.zp
    test_c.zp
    11,3 KB · Просмотры: 81
  • run.zp
    run.zp
    35,2 KB · Просмотры: 83
  • 1731761076400.png
    1731761076400.png
    82,7 KB · Просмотры: 180
Последнее редактирование модератором:

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