открытие elementclient.exe - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок
28.05.2012, 19:01
#1
Пехотинец
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
открытие elementclient.exe
открытие elementclient.exe
Windows.WinExec('C:\Games\Perfect World\element\elementclient.exe', Windows.SW_NORMAL);
вылетает ошибка..через sellexecute тоже самое,если этот адрес в папке прописать,то открывается..:
[Ссылки могут видеть только зарегистрированные пользователи. ]
28.05.2012, 20:48
#2
Пехотинец
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
Re: открытие elementclient.exe
CreateProcess
Тут указывается каталог запуска. Мне кажется что при запуске вашим способом текущим считается каталог вашей проги и клиент пытается найти в нём нужные ему файлы, которых тут в помине нет.
У меня запуск такой(с++):
Код:
// Запуск игры
void CLIENT::RunGame(AnsiString path)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
AnsiString dir=path+"\\element";
AnsiString name=dir+"\\elementclient.exe";
GetStartupInfo(&si);
if(!CreateProcess(name.c_str(),"console:1", NULL, NULL, FALSE, 0, NULL, dir.c_str(), &si, &pi))
{
ShowMessage("Не удалось запустить клиент. Проверьте правильность указанной папки с игрой.");
}
}
Как параметр передавать строку "C:\\Games\\Perfect World" именно с двойными слешами.
PS:
Цитата:
Легче всего использовать WinExec. Однако Microsoft не рекомендует его использование, а предлагает пользоваться CreateProcess. Но для выполнения тех или иных задач он вполне подходит. Почему же нежелателен вызов WinExec дело все в том, что фактически он содержит обращение к еще одному устаревшему системному вызову LoadModule, который обращается к CreateProcess со значениями аргументов по умолчанию
________________
╔═╗
║ ˑ ˑ ╬ ╬
╚═╝
Последний раз редактировалось dwa83; 28.05.2012 в 20:57 .
Пользователь сказал cпасибо:
29.05.2012, 00:15
#3
Пехотинец
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
Re: открытие elementclient.exe
dwa83 , попробовал через create process таже самая ошибка вылетает..(
Код:
var
Rlst: LongBool;
StartUpInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
Error: integer;
begin
FillChar(StartUpInfo, SizeOf(TStartUpInfo), 0);
with StartUpInfo do
begin
cb := SizeOf(TStartUpInfo);
dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
wShowWindow := SW_SHOWNORMAL;
end;
Rlst := CreateProcess('C:\\Games\\Perfect World\\element\\elementclient.exe', ' elementclient.exe', nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo);
if Rlst then
with ProcessInfo do begin
WaitForInputIdle(hProcess, INFINITE); // ждем завершения инициализации
CloseHandle(hThread); // закрываем дескриптор процесса
CloseHandle(hProcess); // закрываем дескриптор потока
end
else Error := GetLastError;
end;
29.05.2012, 00:19
#4
Главнокомандующий
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
Re: открытие elementclient.exe
Meg(0) , и где же в вашем коде передается рабочая директория?
Цитата:
CreateProcess('C:\\Games\\Perfect World\\element\\elementclient.exe', ' elementclient.exe', nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil , StartUpInfo, ProcessInfo);
вместо желтого вставить
Код:
'C:\\Games\\Perfect World\\element'
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
Пользователь сказал cпасибо:
29.05.2012, 00:30
#5
Пехотинец
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
Re: открытие elementclient.exe
TBX1n , о,огромное пасиб))
Добавлено через 53 минуты
а как потом найти хэндл этого окна?
так пробовал,не получается
vHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
Последний раз редактировалось Meg(0); 29.05.2012 в 01:23 .
Причина: Добавлено сообщение
29.05.2012, 10:00
#6
Главнокомандующий
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
Re: открытие elementclient.exe
Цитата:
а как потом найти хэндл этого окна?
1. Из
ProcessInfo получаем хендл процесса и треда, в котором работает приложение
2. Делаем
WaitForInputIdle передавая туда хендл процесса и максимальное время ожидания
3. Используем
EnumThreadWindows , чтобы найти все окна, созданные в треде процесса
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
Последний раз редактировалось Kitsune; 29.05.2012 в 10:03 .
29.05.2012, 12:00
#7
Пехотинец
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
Re: открытие elementclient.exe
пасиб,но сделаю всё проще через find window
29.05.2012, 12:01
#8
Сержант
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
Re: открытие elementclient.exe
Минуточку, в дельфи же достаточно одного слеша при записи путей до файлов, не?
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
29.05.2012, 12:09
#9
Главнокомандующий
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
Re: открытие elementclient.exe
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
29.05.2012, 13:00
#10
Пехотинец
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
Re: открытие elementclient.exe
TBX1n , FindWindow(nil,Pchar('Perfect World')); 100% гарантия))
29.05.2012, 14:18
#11
Главнокомандующий
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
Re: открытие elementclient.exe
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Похожие темы
Тема
Автор
Раздел
Ответов
Последнее сообщение
[Помогите!] Неработает elementclient
павел94
Общение и обсуждение Perfect World
10
31.03.2012 23:38
[Помогите!] Elementclient 1.4.4
sashasuv2010
Вопросы и ответы, обсуждения
4
19.01.2012 15:31
elementclient.exe
gamer0ns
Общение и обсуждение Perfect World
0
25.12.2011 11:14
Elementclient
KTyJIx
Общение и обсуждение Perfect World
1
13.11.2009 20:19
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:28 .