Собственные сборки операционной системы кибер-файл [руководство]

Тема в разделе "WASM.HEAP", создана пользователем Talomir, 22 янв 2023.

  1. Talomir

    Talomir Member

    Публикаций:
    0
    Регистрация:
    13 янв 2023
    Сообщения:
    51
    Адрес:
    Slovackia
    СВОИ СБОРКИ ФАЙЛОВОГО МЕНЕДЖЕРА КИБЕР-ФАЙЛ

    [​IMG]

    Наверное многие из вас мечтали сделать свою операционную систему. И, я надеюсь, не из-за желания писать и поддерживать тысячу драйверов всевозможных устройств: вы просто видите мир иначе, и считаете нужным не то, что вам предлагают маркетологи Microsoft и Google. Вам нужны другие программы, другие утилиты, другие методы работы с компьютером, другие цветовые решения и другой интерфейс.

    Может быть, вы - геймер, и вас в первую очередь интересует система для гейминга, с сотней-двумя лучших игр в поставке, с ботами, читами, модпаками и инструментами для их создания. Это можно было-бы сделать "из коробки".

    Может быть - вы инженер-конструктор, или электронщик, и от компьютера вам надо именно работа с САПР-ами, системами автоматизированного проектирования. Или же вам регулярно надо готовить задания для станков с ЧПУ или производственных роботов. Очевидно, что программы в поставке ОС тут должны быть совершенно другие. Их можно включить в дистрибутив.

    Но, может быть, вы - хэкер, занимающийся добычей информации и обратной инженерией каких-нибудь там биологических микрочипов, GSM-жучков или DECT-имлантантов. Для личной безопасности или в интересах общества. Вам нужны совершенно другие программы, а не поставляемые google или Microsoft. Так тоже можно сделать, можно скачать всё нужное вместе со сборкой операционной системы.

    Или же вы регулярно работаете со звуком и музыкой, вы - журналист или ведущий радио-станции, стриммер или youtub-ер, контент-мейкер или звукооператор, диктор или автор сценариев или аудио-книг. Тогда вам нужно совершенно другое программное обеспечение, а не поставляемое обычным пользователям.

    Именно о подготовке стандартизированных расширений операционной системы и идёт речь в данной статье.

    СИСТЕМА В СИСТЕМЕ
    Операционная система - набор программ для выполнения операций за компьютером. Система тут означает "совокупность", а операционная - "для операций", "действий", "работы".

    Для работы операционной системы ей нужен загрузчик, загружающий её с диска или по сети во время включения компьютера, драйвера устройств, обеспечивающий единообразный способ работы с разными устройствами компьютера другим программам, ядро, обеспечивающее связь программ пользователя и драйверов и организующее работу драйверов, и библиотеки полезных и часто-вызываемых подпрограмм, функций. Именно это множество, вместе с интерпретатором комманд и менеджером рабочего стола, вместе с несколькими пользовательскими программами, традиционно понимается под операционной системой и выпускается основными разработчиками, будь-то Windows, Unix, Solaris, FreeBSD, Linuz, iOS, Android, Plan9, QNX или другая ОС.

    Однако, в последние годы особую популярность приобрели расширения одной операционной системы - другими. Вместо выбора загрузки одной из нескольких операционных систем в меню загрузочной записи диска, пользователь может грузить ОС и запускать в ней другую ОС (например, грузить Windows и запускать в её окне Linux или FreeBSD), параллельно, дря работы сразу с двумя или с несколькими операционными системами. Обычно это делается эмулятором оборудования, виртуальной машиной типа VMWare или VirtualBox, но существуют подходы и запуска другой ОС как приложения основной системы. Именно так раньше запускались первые версии Linux под Windows 95 и именно так запускается современный DOS - файловый менеджер Кибер-файл, улучшенный аналог Norton Commander и всем известных его клонов FAR Manager, DOS Navigator, Volkov Commander, Total Commander. Такой подход, запуск другой операционной системы в основной, как приложения или в виртуальной машине, логично называть системой-в-системе. В окнах основной операционной системы могут быть запущены несколько других операционных систем, и в них - возможно следующих. Одна в другой, образуя структуру дерева выполнения операционных систем в памяти.

    Итак, файловый менеджер кибер-файл это система-в-системе, современный форк двухпанельного файловго менеджера Norton Commander, переписанный на надёжном высокоуровневом языке C-Sharp в Visual Studio 2018, призванный упростить работу за компьютером, с файлами и приложениями, и поставляемый с десятками лучших программ, как условно-бесплатных, так и полностью бесплатных. Это современный DOS поверх Windows 10/11, к которому привыкли миллиарды компьютерных пользователей по всему миру и который пришлось реанимировать с нуля опытному программисту, автору этой статьи.

    Внизу окна этого файлового менеджера располагаются кнопки быстрого запуска приложений и плагинов, а также быстрого переключения на папки. Также, приложения запускаются из контекстного меню правого клика мышки и в нём-же реализована часть открытия файлов приложениями.

    Набор поставляемых с кибер-файлом лучших нужных программ является системой, и начиная с версии 2.8.0 он сделан настраиваемым и расширяемым. Теперь каждый опытный пользователь или программист может выпустить свою сборку, операционную систему на основе кибер-файла, практически не программируя: добавляя папки с программами и правя конфигурационный файл этого менеджера, и собирая инсталлятор, например - в InnoSetup. Программ может быть 20, 40, 100 или даже 150, я не ограничиваю этот список, часть ограничений возникает только из требования для контекстного меню правой кнопки мыши помещаться на экран. Даёшь собственную сборку своей операционной системы!

    ФОРМАТ КОНФИГУРАЦИОННОГО ФАЙЛА CYBERFILE
    Ниже я привожу пример конфигурационного файла config.txt из папки CyberFile-2 и потом рассказываю назначение его записей и формат каждой записи. Итак.

    Код (Text):
    1. {
    2.   "BuildName": "Original",
    3.   "Plugins": {
    4.     "plugins": [
    5.       {
    6.         "ButtonText": "$CLI",
    7.         "CyberfileSubfolder": "CLI",
    8.         "ExecutableName": "",
    9.         "CommandLineArgs": "",
    10.         "RightMenuText": "",
    11.         "GiveFileNameInMenu": false
    12.       },
    13.       {
    14.         "ButtonText": "RTF",
    15.         "CyberfileSubfolder": "$SYS",
    16.         "ExecutableName": "write.exe",
    17.         "CommandLineArgs": "",
    18.         "RightMenuText": "",
    19.         "GiveFileNameInMenu": false
    20.       },
    21.       {
    22.         "ButtonText": "TXT",
    23.         "CyberfileSubfolder": "$SYS",
    24.         "ExecutableName": "notepad.exe",
    25.         "CommandLineArgs": "",
    26.         "RightMenuText": "",
    27.         "GiveFileNameInMenu": false
    28.       },
    29.       {
    30.         "ButtonText": "Books",
    31.         "CyberfileSubfolder": "BOOKS",
    32.         "ExecutableName": "",
    33.         "CommandLineArgs": "",
    34.         "RightMenuText": "",
    35.         "GiveFileNameInMenu": false
    36.       },
    37.       {
    38.         "ButtonText": "IDA Free",
    39.         "CyberfileSubfolder": "IDA Freeware",
    40.         "ExecutableName": "ida64.exe",
    41.         "CommandLineArgs": "",
    42.         "RightMenuText": "Open in IDA",
    43.         "GiveFileNameInMenu": true
    44.       },
    45.       {
    46.         "ButtonText": "x64dbg",
    47.         "CyberfileSubfolder": "x64dbg\\release\\x64",
    48.         "ExecutableName": "x64dbg.exe",
    49.         "CommandLineArgs": "",
    50.         "RightMenuText": "",
    51.         "GiveFileNameInMenu": false
    52.       },
    53.       {
    54.         "ButtonText": "IL Spy",
    55.         "CyberfileSubfolder": "ILSpy",
    56.         "ExecutableName": "ILSpy.exe",
    57.         "CommandLineArgs": "",
    58.         "RightMenuText": "Open in IL Spy",
    59.         "GiveFileNameInMenu": true
    60.       },
    61.       {
    62.         "ButtonText": "JavaDec",
    63.         "CyberfileSubfolder": "jd-gui-windows-1.6.6",
    64.         "ExecutableName": "jd-gui.exe",
    65.         "CommandLineArgs": "",
    66.         "RightMenuText": "",
    67.         "GiveFileNameInMenu": false
    68.       },
    69.       {
    70.         "ButtonText": "HexEdit",
    71.         "CyberfileSubfolder": "Frhed-1.6.0-exe",
    72.         "ExecutableName": "Frhed.exe",
    73.         "CommandLineArgs": "",
    74.         "RightMenuText": "Open as Hex",
    75.         "GiveFileNameInMenu": true
    76.       },
    77.       {
    78.         "ButtonText": "DllExp",
    79.         "CyberfileSubfolder": "DLLEXP",
    80.         "ExecutableName": "dllexp.exe",
    81.         "CommandLineArgs": "",
    82.         "RightMenuText": "",
    83.         "GiveFileNameInMenu": false
    84.       },
    85.       {
    86.         "ButtonText": "Sniffer",
    87.         "CyberfileSubfolder": "Ethereal",
    88.         "ExecutableName": "ethereal.exe",
    89.         "CommandLineArgs": "",
    90.         "RightMenuText": "",
    91.         "GiveFileNameInMenu": false
    92.       },
    93.       {
    94.         "ButtonText": "JabberX",
    95.         "CyberfileSubfolder": "JabberX",
    96.         "ExecutableName": "JabberX.exe",
    97.         "CommandLineArgs": "",
    98.         "RightMenuText": "",
    99.         "GiveFileNameInMenu": false
    100.       },
    101.       {
    102.         "ButtonText": "Psi",
    103.         "CyberfileSubfolder": "Psi-1.4",
    104.         "ExecutableName": "psi-portable.exe",
    105.         "CommandLineArgs": "",
    106.         "RightMenuText": "",
    107.         "GiveFileNameInMenu": false
    108.       },
    109.       {
    110.         "ButtonText": "Multi",
    111.         "CyberfileSubfolder": "MultiSearchEngine",
    112.         "ExecutableName": "MultiSearch.exe",
    113.         "CommandLineArgs": "",
    114.         "RightMenuText": "",
    115.         "GiveFileNameInMenu": false
    116.       },
    117.       {
    118.         "ButtonText": "Deluge",
    119.         "CyberfileSubfolder": "Deluge",
    120.         "ExecutableName": "deluge.exe",
    121.         "CommandLineArgs": "",
    122.         "RightMenuText": "",
    123.         "GiveFileNameInMenu": false
    124.       },
    125.       {
    126.         "ButtonText": "Trade",
    127.         "CyberfileSubfolder": "FLAT",
    128.         "ExecutableName": "Flat.exe",
    129.         "CommandLineArgs": "",
    130.         "RightMenuText": "",
    131.         "GiveFileNameInMenu": false
    132.       },
    133.       {
    134.         "ButtonText": "Radio",
    135.         "CyberfileSubfolder": "DiscordRadio",
    136.         "ExecutableName": "DiscordRadio.exe",
    137.         "CommandLineArgs": "",
    138.         "RightMenuText": "",
    139.         "GiveFileNameInMenu": false
    140.       },
    141.       {
    142.         "ButtonText": "Micro",
    143.         "CyberfileSubfolder": "Amplify Voice Recorder",
    144.         "ExecutableName": "AmplifyVoiceRecorder.exe",
    145.         "CommandLineArgs": "",
    146.         "RightMenuText": "",
    147.         "GiveFileNameInMenu": false
    148.       },
    149.       {
    150.         "ButtonText": "Scanner",
    151.         "CyberfileSubfolder": "CYBERSCAN-2",
    152.         "ExecutableName": "CYBERSCAN2.exe",
    153.         "CommandLineArgs": "",
    154.         "RightMenuText": "",
    155.         "GiveFileNameInMenu": false
    156.       },
    157.       {
    158.         "ButtonText": "PDF.mp3",
    159.         "CyberfileSubfolder": "CLI\\PDF-MP3",
    160.         "ExecutableName": "",
    161.         "CommandLineArgs": "",
    162.         "RightMenuText": "",
    163.         "GiveFileNameInMenu": false
    164.       },
    165.       {
    166.         "ButtonText": "Audacity",
    167.         "CyberfileSubfolder": "Audacity",
    168.         "ExecutableName": "Audacity.exe",
    169.         "CommandLineArgs": "",
    170.         "RightMenuText": "Open in Audacity",
    171.         "GiveFileNameInMenu": true
    172.       },
    173.       {
    174.         "ButtonText": "ShareX",
    175.         "CyberfileSubfolder": "ShareX",
    176.         "ExecutableName": "ShareX.exe",
    177.         "CommandLineArgs": "",
    178.         "RightMenuText": "",
    179.         "GiveFileNameInMenu": false
    180.       },
    181.       {
    182.         "ButtonText": "NoPad",
    183.         "CyberfileSubfolder": "npp-portable",
    184.         "ExecutableName": "notepad++.exe",
    185.         "CommandLineArgs": "",
    186.         "RightMenuText": "",
    187.         "GiveFileNameInMenu": false
    188.       },
    189.       {
    190.         "ButtonText": "",
    191.         "CyberfileSubfolder": "npp-portable",
    192.         "ExecutableName": "notepad++.exe",
    193.         "CommandLineArgs": "",
    194.         "RightMenuText": "Open in Notepad++",
    195.         "GiveFileNameInMenu": true
    196.       },
    197.       {
    198.         "ButtonText": "",
    199.         "CyberfileSubfolder": "$SYS",
    200.         "ExecutableName": "write.exe",
    201.         "CommandLineArgs": "",
    202.         "RightMenuText": "Open as RTF",
    203.         "GiveFileNameInMenu": true
    204.       },
    205.       {
    206.         "ButtonText": "GIMP",
    207.         "CyberfileSubfolder": "GIMP 2\\bin",
    208.         "ExecutableName": "gimp-2.10.exe",
    209.         "CommandLineArgs": "",
    210.         "RightMenuText": "",
    211.         "GiveFileNameInMenu": false
    212.       },
    213.       {
    214.         "ButtonText": "",
    215.         "CyberfileSubfolder": "GIMP 2\\bin",
    216.         "ExecutableName": "gimp-2.10.exe",
    217.         "CommandLineArgs": "",
    218.         "RightMenuText": "Open in GIMP",
    219.         "GiveFileNameInMenu": true
    220.       },
    221.       {
    222.         "ButtonText": "Paint",
    223.         "CyberfileSubfolder": "$SYS",
    224.         "ExecutableName": "mspaint.exe",
    225.         "CommandLineArgs": "",
    226.         "RightMenuText": "",
    227.         "GiveFileNameInMenu": false
    228.       },
    229.       {
    230.         "ButtonText": "",
    231.         "CyberfileSubfolder": "$SYS",
    232.         "ExecutableName": "mspaint.exe",
    233.         "CommandLineArgs": "",
    234.         "RightMenuText": "Open in Paint",
    235.         "GiveFileNameInMenu": true
    236.       },
    237.       {
    238.         "ButtonText": "",
    239.         "CyberfileSubfolder": "SumatraPDF",
    240.         "ExecutableName": "SumatraPDF-3.3.3-32.exe",
    241.         "CommandLineArgs": "",
    242.         "RightMenuText": "Open as PDF",
    243.         "GiveFileNameInMenu": true
    244.       },
    245.       {
    246.         "ButtonText": "",
    247.         "CyberfileSubfolder": "WinDjView",
    248.         "ExecutableName": "WinDjView.exe",
    249.         "CommandLineArgs": "",
    250.         "RightMenuText": "Open as Djvu",
    251.         "GiveFileNameInMenu": true
    252.       },
    253.       {
    254.         "ButtonText": "",
    255.         "CyberfileSubfolder": "IDA Freeware",
    256.         "ExecutableName": "ida64.exe",
    257.         "CommandLineArgs": "",
    258.         "RightMenuText": "Open in IDA",
    259.         "GiveFileNameInMenu": true
    260.       },
    261.       {
    262.         "ButtonText": "",
    263.         "CyberfileSubfolder": "ILSpy",
    264.         "ExecutableName": "ILSpy.exe",
    265.         "CommandLineArgs": "",
    266.         "RightMenuText": "Open in IL Spy",
    267.         "GiveFileNameInMenu": true
    268.       },
    269.       {
    270.         "ButtonText": "",
    271.         "CyberfileSubfolder": "Frhed-1.6.0-exe",
    272.         "ExecutableName": "Frhed.exe",
    273.         "CommandLineArgs": "",
    274.         "RightMenuText": "Open as Hex",
    275.         "GiveFileNameInMenu": true
    276.       },
    277.       {
    278.         "ButtonText": "SiteTxt",
    279.         "CyberfileSubfolder": "CLI\\NET",
    280.         "ExecutableName": "",
    281.         "CommandLineArgs": "",
    282.         "RightMenuText": "",
    283.         "GiveFileNameInMenu": false
    284.       },
    285.       {
    286.         "ButtonText": "Mkill",
    287.         "CyberfileSubfolder": "CLI\\MKILL",
    288.         "ExecutableName": "",
    289.         "CommandLineArgs": "",
    290.         "RightMenuText": "",
    291.         "GiveFileNameInMenu": false
    292.       },
    293.       {
    294.         "ButtonText": "Wipe",
    295.         "CyberfileSubfolder": "CLI\\FASTWIPE2",
    296.         "ExecutableName": "",
    297.         "CommandLineArgs": "",
    298.         "RightMenuText": "",
    299.         "GiveFileNameInMenu": false
    300.       },
    301.       {
    302.         "ButtonText": "John",
    303.         "CyberfileSubfolder": "CLI\\JOHN-1.9.0",
    304.         "ExecutableName": "",
    305.         "CommandLineArgs": "",
    306.         "RightMenuText": "",
    307.         "GiveFileNameInMenu": false
    308.       },
    309.       {
    310.         "ButtonText": "Putty",
    311.         "CyberfileSubfolder": "CLI\\PuTTY",
    312.         "ExecutableName": "",
    313.         "CommandLineArgs": "",
    314.         "RightMenuText": "",
    315.         "GiveFileNameInMenu": false
    316.       },
    317.       {
    318.         "ButtonText": "Zydis",
    319.         "CyberfileSubfolder": "CLI\\ZYDIS",
    320.         "ExecutableName": "",
    321.         "CommandLineArgs": "",
    322.         "RightMenuText": "",
    323.         "GiveFileNameInMenu": false
    324.       },
    325.       {
    326.         "ButtonText": "TorCycle",
    327.         "CyberfileSubfolder": "CLI",
    328.         "ExecutableName": "tor-change-ip-cycle.bat",
    329.         "CommandLineArgs": "",
    330.         "RightMenuText": "",
    331.         "GiveFileNameInMenu": false
    332.       },
    333.       {
    334.         "ButtonText": "ToPage",
    335.         "CyberfileSubfolder": "CLI\\NET",
    336.         "ExecutableName": "",
    337.         "CommandLineArgs": "",
    338.         "RightMenuText": "",
    339.         "GiveFileNameInMenu": false
    340.       },
    341.       {
    342.         "ButtonText": "SpltTxt",
    343.         "CyberfileSubfolder": "CLI\\NET",
    344.         "ExecutableName": "",
    345.         "CommandLineArgs": "",
    346.         "RightMenuText": "",
    347.         "GiveFileNameInMenu": false
    348.       },
    349.       {
    350.         "ButtonText": "UntTxt",
    351.         "CyberfileSubfolder": "CLI\\NET",
    352.         "ExecutableName": "",
    353.         "CommandLineArgs": "",
    354.         "RightMenuText": "",
    355.         "GiveFileNameInMenu": false
    356.       },
    357.       {
    358.         "ButtonText": "GrnCat",
    359.         "CyberfileSubfolder": "CLI\\NET",
    360.         "ExecutableName": "",
    361.         "CommandLineArgs": "",
    362.         "RightMenuText": "",
    363.         "GiveFileNameInMenu": false
    364.       },
    365.       {
    366.         "ButtonText": "ImgASC",
    367.         "CyberfileSubfolder": "CLI\\NET",
    368.         "ExecutableName": "ImageToAscii.exe",
    369.         "CommandLineArgs": "",
    370.         "RightMenuText": "",
    371.         "GiveFileNameInMenu": false
    372.       },
    373.       {
    374.         "ButtonText": "T-Con",
    375.         "CyberfileSubfolder": "CLI\\NET",
    376.         "ExecutableName": "",
    377.         "CommandLineArgs": "",
    378.         "RightMenuText": "",
    379.         "GiveFileNameInMenu": false
    380.       }
    381.     ]
    382.   },
    383.   "CurrentPalette": {
    384.     "WindowBackgroundColor": "153, 64, 30",
    385.     "PanelFrameColor": "1, 105, 222",
    386.     "PanelBackgroundColor": "120, 161, 63",
    387.     "PositionHighlightColor": "195, 217, 166",
    388.     "UpperBannerColor": "169, 115, 200",
    389.     "ProgramNameColor": "252, 119, 122",
    390.     "FireColor": "121, 130, 58",
    391.     "RegistrationColor": "17, 230, 67",
    392.     "UpperLinksColor": "242, 155, 255",
    393.     "RenamePanelBackgroundColor": "193, 118, 7",
    394.     "RenameInactiveColor": "55, 252, 71",
    395.     "RenameActiveColor": "93, 220, 16",
    396.     "CommandTextColor": "59, 223, 95",
    397.     "CommandTextBoxBackgroundColor": "166, 6, 27",
    398.     "CommanTextBoxForegroundColor": "22, 185, 138",
    399.     "ButtonType0Foreground": "151, 82, 147",
    400.     "ButtonType0Background": "109, 243, 52",
    401.     "ButtonType1Foreground": "149, 87, 118",
    402.     "ButtonType1Background": "87, 136, 89",
    403.     "ButtonType2Foreground": "218, 14, 205",
    404.     "ButtonType2Background": "223, 182, 43",
    405.     "ButtonType3Foreground": "56, 140, 221",
    406.     "ButtonType3Background": "94, 76, 150",
    407.     "ButtonType4Foreground": "183, 193, 152",
    408.     "ButtonType4Background": "27, 210, 124",
    409.     "ButtonType5Foreground": "31, 250, 45",
    410.     "ButtonType5Background": "184, 91, 72",
    411.     "BottomPanelBackground": "108, 84, 130",
    412.     "RecordMarkedCurrent": "211, 161, 164",
    413.     "RecordCurrent": "208, 6, 84",
    414.     "RecordMarked": "183, 96, 209",
    415.     "RecordDollarPoint": "145, 199, 79",
    416.     "RecordExeBat": "239, 221, 45",
    417.     "RecordPdf": "173, 56, 6",
    418.     "RecordPng": "252, 181, 49",
    419.     "RecordMpeg": "155, 122, 132",
    420.     "RecordDll": "250, 55, 141",
    421.     "RecordFile": "43, 34, 179",
    422.     "RecordDirectory": "133, 114, 98"
    423.   }
    424. }
    Конфигурационный файл имеет формат JSON, это человеко-машинный формат, позволяющий записывать состояния классов из памяти на диск и читать их с диска. Ну, не классов, а объектов, если вы знакомы с ООП. Файл начинается с поля BuildName, это имя сборки, высвечиваемое при старте программы в заголовке главного окна справа. Тут надо прописать название своей сборки.

    Далее, в файле идут две больших секции: секция плагинов, то есть программ, поставляемых с кибер-файлом и запускаемых из него, и секция палитры приложения - цветов панелей, файлов, папок, кнопок, и так далее. Эту секцию в ручную лучше не править, её прекрасно заполняет искусственный интеллект компьютера при переключении между Black и Random внизу справа в кибер-файле. Подберите хорошее сочетание цветов и нажмите Save - палитра сама сохранится в конфиг.

    Итак, секция плагинов - именно её надо править, если вы создаёте собственную сборку кибер-файла. Это набор записей для каждой программы, и я привожу пример одной записи ниже для расшифровки её полей. Вы копируете и вставляете запись в текстовом редакторе для каждой добавляемой программы, после чего правите значения её полей. Для одной программы может быть две записи в конфиге, одна - для кнопки запуска, одна - для контекстного меню правой кнопки мыши. Если программ больше, чем помещается в главном окне менеджера - их список с кнопками запуска можно промотать стрелками в правом нижнем углу окна.

    Код (Text):
    1. {
    2.         "ButtonText": "RTF",
    3.         "CyberfileSubfolder": "$SYS",
    4.         "ExecutableName": "write.exe",
    5.         "CommandLineArgs": "",
    6.         "RightMenuText": "",
    7.         "GiveFileNameInMenu": false
    8.       },
    9.  
    ButtonText - текст, отображаемый на кнопке запуска программы. Кнопки упорядочиваются с заполнением из конфига и нумеруются с низу-вверх слева-направа, то есть сначала описывается нижний ряд кнопок, потом - верхний ряд. Если сделать это поле пустыми кавычками, то запись будет рассматриваться при чтении конфига как пункт меню правой кнопки мыши, а если поле заполнено - это описание кнопки на панели.

    CyberfileSubfolder - поддиректория в папке установки файлового менеджера кибер-файл, например значение CLI обозначает папку C:\CyberFile-2\CLI . Если в этом поле прописать $SYS, то будет подразумеваться системная папка C:\WINDOWS

    ExecutableName - имя программы, которую надо запускать при клике на кнопку или при выборе пункта меню правого клика мыши. Если сделать это поле пустыми кавычками, то запись будет означать просто открытие директории, это надо, например, для быстрого открытия папки с книгами или для открытия папки с утилитами командной строки.

    CommandLineArgs
    - аргументы командной строки, вставляемые после имени исполняемого файла и перед именем передаваемого программе файла на открытие, если файл передаётся. При клике на кнопку или пункт меню, программе всегда будут передаваться данные аргументы.

    RightMenuText - текст пункта меню правого клика мышки, если запись относится к меню, а не к кнопке запуска. Игнорируется кнопками и используется пунктами меню.

    GiveFileNameInMenu - передавать ли подсвеченный файл запускаемой правым кликом мышки программе, true - да, false - нет.

    Вот и все поля для заполнения при добавлении программы в свою сборку кибер-файла. Ниже я привожу фрагмент конфига, где одна и та-же программа стартует и при нажатии кнопки на панели, и при выборе пункта меню мыши.

    Код (Text):
    1. {
    2.         "ButtonText": "NoPad",
    3.         "CyberfileSubfolder": "npp-portable",
    4.         "ExecutableName": "notepad++.exe",
    5.         "CommandLineArgs": "",
    6.         "RightMenuText": "",
    7.         "GiveFileNameInMenu": false
    8.       },
    9.       {
    10.         "ButtonText": "",
    11.         "CyberfileSubfolder": "npp-portable",
    12.         "ExecutableName": "notepad++.exe",
    13.         "CommandLineArgs": "",
    14.         "RightMenuText": "Open in Notepad++",
    15.         "GiveFileNameInMenu": true
    16.       },
    17.  
    Это добавленный плагин всем известного текстового редактора для программистов Notepad++. Первая запись описывает кнопку запуска программы на панели снизу, у неё не пустой ButtonText, вторая запись описывает открытие файла в Notepad++ по правому клику мыши - у неё пустой ButtonText. Также, в описании меню стоит в true поле GiveFileNameInMenu - текущий подсвеченный файл на панели менеджера будет передаваться Notepad++ при его старте аргументом командной строки.

    Итак, конфиг прост, его легко читать и редактировать в текстовом редакторе notepad++. Отметьте пожалуйста, что после последней записи не должно быть запятой, а все остальные записи отделяются друг от друга запятыми. Копирование, вставка и редактирование записей о программах в конфиге это всё, что надо, чтобы сделать сборку своей операционной системы без программирования! А может быть - и с оным, если вы хотите зарелизить свои программы, бесплатные или условно - бесплатные, особенно, если вы нехилый кодер или коммерческий программер. С вами был Таломир Миротал, лаборатория искусственного интеллекта и радио-хакинга Технологии Боттинга 12, январь 2023. Скачать сборку CyberFile-2.8.0 Original с десятками хакерских программ и сотнями книг по хэкингу можно будет со времени обновления 23:54 22.01.2023 на сайте разработчика http://unhide.site
    --- Сообщение объединено, 22 янв 2023 ---
    Кибер-файл 2.8.0 Original Build закачан на анхайд.
    --- Сообщение объединено, 22 янв 2023 ---
    [​IMG]
     
    Последнее редактирование: 22 янв 2023
  2. Talomir

    Talomir Member

    Публикаций:
    0
    Регистрация:
    13 янв 2023
    Сообщения:
    51
    Адрес:
    Slovackia
    Ещё одну фотку, чтобы непосвящённому было понятно, что такое система кибер-файл...

    [​IMG]