Как передать данные в exe файл на C# при загрузке?

Ссылка скопирована
8 февраля 2026 1 ответ

Здравствуйте.
Уже видел подобный вопрос на этом форуме, но так и не понял как решить такую проблему.
Вся суть в том, что пользователь должен авторизироваться на сайте и скачать файл main.exe, который он сможет открыть и увидеть "ваш логин: (логин пользователя)". Как я понял, можно обойтись без компиляции .cs файла.
Как можно передать логин пользователя PHP скриптом в exe файл?
Спасибо.

Дополнительно:

Это лучше делать с ключом/лицензией в которую прописан логин.

  • А для чего вообще такое нужно? Какую проблему пытаетесь таким образом решить?
    Как вариант - можно посмотреть в сторону ресурсов или просто тащить вместе с экзешником какой-нибудь конфиг.
  • скачать файл main.exe, который он сможет открыть

    точно сможет открыть? А если у него Linux?

  • whynot1337
    дайте пользователю скачать два файла main.exe и main.exe.config

    который просто текстовый

    <?xml version="1.0" encoding="utf-8"?> <configuration>   <startup>     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>   </startup>   <appSettings>     <add key="key" value="персоналный ключ"/>

    <?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> </startup> <appSettings> <add key="key" value="персоналный ключ"/>

    если помогло - я положу в ответы вы отметите решением

  • Александр Ананьев, наверное предполагается по такому случаю снести линукс и у|вос становить виндоз
  • сергей кузьмин, тогда нужно ещё, чтобы скачивается образ виндовс и автоустановка xd
  • Аргументы уже передаются?
  • Ответы:

    1. Передавать имя пользователя в аргументах к программе, но тогда нужно уметь правильно запускать. Т.е. нужен установщик, который ярлык правильно настроит
    2. Отправлять вместе с программой файл конфигурации, из которого нужно читать имя пользователя.
    3. Скомпилировать с уже встроенным именем.

    Для последнего пункта можно сделать оптимизацию - весь проект (с логикой) хранить уже скопилированными, а при поступлении запроса компилировать exe. В него положить имя пользователя и просто скопировать готовые dll, а сам он просто будет прослойкой для самой программы.

    Также появилась идея о каком-нибудь шаблонном движке (по типу razor), который в потоковой обработке будет отправлять байты программы и в нужном месте подставит строку имени, но не знаю существует такое решение или нет (скорее нет)

    Проще всего просто дописать строку в конец самого exe файла, а в последнем байте - её длину. И при запуске приложения прочитать последний байт exe и далее вычислив начало и конец строки прочитать конец файла как строку. Чуть более сложный вариант в случае если надо пересобирать дистрибутив или добавить в него параметры какие-то: NSIS отлично работает под линуксом - так что можно ему передавать любые свои аргументы и делать сборку дистрибутива на лету.

    • а в последнем байте - её длину.

      Там можно обойтись без этого. Приложение может прочитать собственный PE заголовок, чтобы получить размер своего же образа. Соответственно, все, что будет за пределами образа - это оверлей с какими-то данными.

    • а контрольная сумма не але?
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Виктор Sys Ответ

    Для передачи данных в exe файл на C# при его загрузке, можно воспользоваться различными методами, в зависимости от того, какие данные нужно передать и как они должны обрабатываться в приложении.

    Одним из способов передачи данных может быть использование аргументов командной строки. Для этого необходимо в коде exe файла обработать параметры, переданные при запуске программы. Например, чтобы передать строку в exe файл, можно выполнить следующий код:

    static void Main(string[] args)
    {
        if(args.Length > 0)
        {
            string data = args[0];
            // Далее обрабатываем переданные данные
        }
    }

    static void Main(string[] args) { if(args.Length > 0) { string data = args[0]; // Далее обрабатываем переданные данные } }

    Другим способом передачи данных может быть использование файлов. Например, вы можете сохранить данные в файле перед запуском exe файла, а затем в самом приложении прочитать этот файл и обработать данные. Пример кода для чтения данных из файла в C#:

    string data = File.ReadAllText("data.txt");
    // Далее обрабатываем данные из файла

    string data = File.ReadAllText("data.txt"); // Далее обрабатываем данные из файла

    Также можно воспользоваться сетевым взаимодействием для передачи данных, используя сокеты или HTTP запросы. Например, вы можете отправить данные на сервер, который запустит exe файл и передаст ему данные в виде параметров командной строки.

    Надеюсь, что один из этих способов поможет вам передать данные в exe файл на C# при его загрузке. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно