Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/41: Рейтинг темы: голосов - 41, средняя оценка - 4.68
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
1

Написание программы для запуска файла игры Aion.exe

11.01.2012, 10:04. Показов 7450. Ответов 18
Метки нет (Все метки)

Доброго времени суток.
Возник такой вопрос: есть всем известная игра Aion для которой понадобилось написать фаил запуска.
Нужно что бы программа запускала Aion.bin.
Есть часть кода программы, которую нужно довести до ума:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        try
        {
            IPHostEntry Host = Dns.GetHostEntry("***");
            IPAddress IP = Host.AddressList[0];
 
            Process Aion = new Process();
            Aion.StartInfo.WorkingDirectory = "...";
            Aion.StartInfo.FileName = "aion.bin";
            Aion.StartInfo.Arguments = string.Format("-ip:{0} -port:2106 -cc:1 -noauthgg -ls -charnamemenu", IP);
            Aion.Start();
        }
        catch (Exception e)
        {
            // Debug
        }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2012, 10:04
Ответы с готовыми решениями:

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

Игры для PC после запуска выдают ошибку об установочном файле exe.
у меня с компом какая то фигня устанавливаю игру (любую не важно) она устанавливается всё норм,но...

Сервер для запуска exe программы
Посаветуйте дешевый сервер или хостинг на котором я могу запустить программу, чтобы она работала...

Для запуска программы надо запустить её из командной строки: SBAppLocale.exe 1033 "C:\Program Files\Captcha Sniper\CaptchaSniper.exe"
Добрый день. Для запуска программы надо запустить её из командной строки: SBAppLocale.exe 1033...

18
гроза ленивых студентов
453 / 408 / 51
Регистрация: 27.03.2011
Сообщений: 823
11.01.2012, 11:49 2
что в твоем понимании значит "довести до ума"?
0
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
11.01.2012, 12:47  [ТС] 3
Это значит сделать её возможной для компиляции для дальнейшего запуска из файла .exe .

Добавлено через 34 минуты
Должно получится что то подобное, только это не правильный код....
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Net;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                IPHostEntry Host = Dns.GetHostEntry("186.178.189.1");
                IPAddress IP = Host.AddressList[0];
 
                Process Aion = new Process();
                Aion.StartInfo.WorkingDirectory = "/bin32";
                Aion.StartInfo.FileName = "aion.bin";
                Aion.StartInfo.Arguments = string.Format("-ip:{0} -port:2106 -cc:1 -noauthgg -ls -charnamemenu", IP);
                Aion.Start();
            }
            catch (Exception e)
            {
                // Debug
            }
 
        }
    }
}
0
Эксперт .NET
4338 / 2000 / 387
Регистрация: 27.03.2010
Сообщений: 5,450
Записей в блоге: 1
11.01.2012, 17:47 4
А какие исключения вылетают то хоть? Вот у меня не установлен Aion, мне не просто узнать, что там у тебя за проблема. Ты вообще по сути то отпиши, какие исключения, какие сообщения...

Добавлено через 32 секунды
И точно надо запускать файл в формате .bin?
0
44 / 44 / 3
Регистрация: 12.03.2011
Сообщений: 100
11.01.2012, 18:28 5
C#
1
2
3
4
5
                   Process date = new Process();
                    ProcessStartInfo Aion = new ProcessStartInfo("Aion.bin");
                    Aion.WindowStyle = ProcessWindowStyle.Normal;
                    date.StartInfo = Aion;
                    date.Start();
так попробуйте
1
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
11.01.2012, 22:11  [ТС] 6
Начну с корня проблемы:
Началось все с желания создать свой сервер. Сервер установил, откорректировал и настроил.
Появилась проблема с подключением. Для того что бы подключиться к серверу требуется конектиться через DNS сервер, так как IP у меня динамичный и чуть что с инетом, он сразу меняется.
Облазил много форумов по настройке сервером и наткнулся на zone-game.info. Там мне объяснили что конекиться нужно через bat с таким вот кодом:
Код
@echo off
start bin32\aion.bin сс:1 -ip:***.*.**.*** -port:2106 -nowebshop -ng -noauthgg -ls -charnamemenu -noweb -ingameshop -minigame
Но bat не поддерживает DNS адреса.
Возникла мысль написать программку для запуска.
Запуск игрового клиента осуществляется с помощью запуска aion.bin с параметрами "-port:2106 -nowebshop -ng -noauthgg -ls -charnamemenu -noweb -ingameshop -minigame" обязательно ip или dns адресом.
Тут мне админ сайта подсказал код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        try
        {
            IPHostEntry Host = Dns.GetHostEntry("***");
            IPAddress IP = Host.AddressList[0];
 
            Process Aion = new Process();
            Aion.StartInfo.WorkingDirectory = "...";
            Aion.StartInfo.FileName = "aion.bin";
            Aion.StartInfo.Arguments = string.Format("-ip:{0} -port:2106 -cc:1 -noauthgg -ls -charnamemenu", IP);
            Aion.Start();
        }
        catch (Exception e)
        {
            // Debug
        }
И сказал что он написан на C#, так же сказал что из этого кода как раз и компилируется нужная мне программка, но когда я попробовал скомпилировать программу, компилятор долго ругался.
Вывод: программа не дописана.
0
Эксперт .NET
4338 / 2000 / 387
Регистрация: 27.03.2010
Сообщений: 5,450
Записей в блоге: 1
12.01.2012, 00:25 7
Цитата Сообщение от Casper-SC Посмотреть сообщение
А какие исключения вылетают то хоть?
Ещё раз спрашиваю, какие?


Цитата Сообщение от SuLLeN Посмотреть сообщение
И сказал что он написан на C#, так же сказал что из этого кода как раз и компилируется нужная мне программка
Может и вправду компилируется?

А так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Diagnostics;
using System.Net;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                IPHostEntry host = Dns.GetHostEntry("186.178.189.1");
                IPAddress ipAddress = host.AddressList[0];
 
                Process aionProcess = new Process();
                aionProcess.StartInfo.WorkingDirectory = "/bin32";
                aionProcess.StartInfo.FileName = "aion.bin";
                aionProcess.StartInfo.Arguments = string.Format("-ip:{0} -port:2106 -cc:1 -noauthgg -ls -charnamemenu", ipAddress);
                aionProcess.Start();
            }
            catch (Exception e)
            {
                // Debug
            }
        }
    }
}
Отличается от твоего тем, что у тебя нету пространства имён using System.Diagnostics; ну и переменные названы в верном стиле.
1
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
12.01.2012, 11:45  [ТС] 8
А какие исключения вылетают то хоть?
Я не понимаю вопроса... вы имеете в виду ошибки?
Вот что говорит компилятор:

А так?
Компилируется отлично, только программа не выполняет требования, а именно она не запускает aion.bin как процесс.
0
Миниатюры
Написание программы для запуска файла игры Aion.exe  
Эксперт .NET
4338 / 2000 / 387
Регистрация: 27.03.2010
Сообщений: 5,450
Записей в блоге: 1
12.01.2012, 17:20 9
Что за среда разработки у вас? Какие-то странные ошибки. А .bin вообще может разве запускаться на выполнение?
0
NickoTin
12.01.2012, 17:26
  #10

Не по теме:

Цитата Сообщение от Casper-SC Посмотреть сообщение
А .bin вообще может разве запускаться на выполнение?
Да, нужно только в структуре ProcessStartInfo свойство UseShellExecute в false установить. Тогда расширение файла не будет иметь значение. Если заголовок файла соответствует PE, то загрузчик винды ничего даже не скажет.

3
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
12.01.2012, 20:28  [ТС] 11
Похимичил и что то получилось:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Net;
using System.Diagnostics;
using System.ComponentModel;
 
namespace aiontest
{
    class aiontestProcess
    {
        public static void Main()
        {
            Process aiontestProcess = new Process();
 
            try
            {
                IPHostEntry host = Dns.GetHostEntry("aion123321.dyndns.com");
                IPAddress ipAddress = host.AddressList[0];
 
                Process aionProcess = new Process();
                aiontestProcess.StartInfo.UseShellExecute = false;
                aiontestProcess.StartInfo.WorkingDirectory = "\bin32";
                aiontestProcess.StartInfo.FileName = "aion.bin";
                aiontestProcess.StartInfo.Arguments = string.Format("-ip:{0} -port:2106 -cc:1 -noauthgg -ls -charnamemenu", ipAddress);
                aiontestProcess.Start();
            }
                catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Только процесс aion.bin так и не запускается.
0
Почетный модератор
Эксперт .NET
8692 / 3644 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
12.01.2012, 20:54 12
А так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Net;
using System.Diagnostics;
using System.ComponentModel;
 
namespace aiontest
{
    class aiontestProcess
    {
        public static void Main()
        {
            Process aiontestProcess = new Process();
 
            try
            {
                IPHostEntry host = Dns.GetHostEntry("aion123321.dyndns.com");
                IPAddress ipAddress = host.AddressList[0];
 
                Process aionProcess = new Process();
                aiontestProcess.StartInfo.UseShellExecute = false;
                aiontestProcess.StartInfo.WorkingDirectory = ".\\bin32";
                aiontestProcess.StartInfo.FileName = "aion.bin";
                aiontestProcess.StartInfo.Arguments = string.Format("-ip:{0} -port:2106 -cc:1 -noauthgg -ls -charnamemenu", ipAddress);
                aiontestProcess.Start();
            }
                catch (Exception e)
            {
                Console.WriteLine(e.Message + "\r\n----\r\n" + e.StackTrace);
                Console.ReadLine();
            }
        }
    }
}
Если в консоль будет выведен текст, копируйте его сюда, значит где-то ошибка с Вашей стороны, т.к. аналогичный код у меня замечательно работает при 2х условиях:
  1. Заменил aion123321.dyndns.com на google.com;
  2. В папке с aion.bin существует папка bin32.
    p.s. Мне пока непонятно, зачем Вы устанавливаете значение WorkingDirectory, путь к папке должен существовать. Возможно из-за этого ничего и не запускается, т.к. папки нет.
1
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
13.01.2012, 12:22  [ТС] 13
SSTREGG, большое вам спасибо!=) Работает отлично, только осталась 1 проблема:

Не удается найти указанный файл.
----
в System.Diagnostics.Process.StartWithCreateProcess(ProcessSta rtInfo StartInfo)
в System.Diagnostics.Process.Start()
в aiontest.aiontestProcess.main()

Видимо дело в директории.
Файл лаунчера должен располагаться в корневой папке игры (D:\Aion) и обращаться к файлу aion.bin (D:\Aion\bin32\aion.bin)

Как правильно изменить директорию?

Добавлено через 41 минуту
Лаунчер не обязательно будет на диске D, это тоже надо учесть.
0
1 / 1 / 1
Регистрация: 22.07.2011
Сообщений: 21
13.01.2012, 12:32 14
можно сделать так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            if (File.Exists(Application.StartupPath + "\\bin32\\aion.bin")) //проверяем есть ли файл 
            {
                
                System.Diagnostics.Process.Start(Application.StartupPath + "\\bin32\\aion.bin"); 
// запускаем его где Application.StartupPath указывает директорию в которой находится ваш лаунчер
 
// можно сделать с параметрами запуска так 
// System.Diagnostics.Process.Start(Application.StartupPath + "\\bin32\\aion.bin", "параметра запуска");
            }
            else
            {
                MessageBox.Show(this.Text = Application.StartupPath + " Не удалось найти aion.bin", "Ошибка", MessageBoxButtons.OK);
            }
1
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
14.01.2012, 09:35  [ТС] 15
А как этот код правильно инкрустировать в мой код?
0
Эксперт .NET
4338 / 2000 / 387
Регистрация: 27.03.2010
Сообщений: 5,450
Записей в блоге: 1
14.01.2012, 11:51 16
Цитата Сообщение от SuLLeN Посмотреть сообщение
А как этот код правильно инкрустировать в мой код?
Похоже, что так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                IPHostEntry host = Dns.GetHostEntry("aion123321.dyndns.com");
                IPAddress ipAddress = host.AddressList[0];
                string aionBinFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin32", "aion.bin");
                if (File.Exists(aionBinFile)) //проверяем есть ли файл 
                {
 
                    ProcessStartInfo procStartInfo = new ProcessStartInfo(aionBinFile, 
                        string.Format("-ip:{0} -port:2106 -cc:1 -noauthgg -ls -charnamemenu", ipAddress));
                    procStartInfo.UseShellExecute = false;
                    Process.Start(procStartInfo);
                }
                else
                {
                    Console.WriteLine(Console.Title = AppDomain.CurrentDomain.BaseDirectory + " Не удалось найти aion.bin");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message + "\r\n----\r\n" + e.StackTrace);
                Console.ReadLine();
            }
        }
    }
}
1
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
14.01.2012, 13:02  [ТС] 17
Casper-SC и B J, большое вам спасибо!=) Все работает замечательно=)

Добавлено через 1 минуту
Не подскажете, как для exe-шника иконку сделать?
0
Эксперт .NET
4338 / 2000 / 387
Регистрация: 27.03.2010
Сообщений: 5,450
Записей в блоге: 1
14.01.2012, 13:07 18
Цитата Сообщение от SuLLeN Посмотреть сообщение
Не подскажете, как для exe-шника иконку сделать?
Проект -> Свойства -> там далее будет пункт - "Значок и манифест".
1
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
14.01.2012, 14:01  [ТС] 19
Спасибо!=)

 Комментарий модератора 
Один вопрос - одна тема.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2012, 14:01

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Скрипт для запуска exe файла
пдскажите скрипт,с помощью которого можно запустить ехе-файл.Пожалуйста.Напишите на мыло.Заранее...

Примерный код для запуска программы bat или exe
Здраствуйте, нужен примерный код в PascalABC.NET чтобы запустить например ****.bat или ****.exe...

Для каждого exe-файла создать bat-файл для его запуска
Не могу понять как создать exe файла создать бат файл для его запуска?

После запуска exe-файла выдаёт "Прекращена работа программы"
#include <iostream> #include <cstdlib> using namespace std; int main(){ cout << "Vvedite...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.