Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2014, 07:40   #1
VMG
Пользователь
 
Аватар для VMG
 
Регистрация: 11.02.2014
Сообщений: 12
Восклицание Перенос Edit в ShellExecute или переменые в ShellExecute

Доброго времени суток !
Пользуюсь Delphi XE 5

Пишу программу , в которой водиться логин и пароль и кнопка играть.

Алгоритм:
Edit1 - Вводиться логин
Edit2 - Вводиться пароль
Button1 - Кнопка играть

Скрипт:
Нужно что бы с Edit1 и с Edit2 при нажатие на Button1
Запускалась приложение(игра) и в конце пути дописывала то что введено в Label1 и Label2

тоесть вообще суть такая
если создать (*.bat) и туда поместить код (game.exe Admin 1111)
то запустит игру и автоматически авторизуеться под логином Admin паролем 1111 и пойдёт игровой сценарий далее

хочу сделать маленький ланчер , но застрял с скриптами

вот пробывал сделать пример:

Код:
procedure Tlauncher.Button1Click(Sender: TObject);
var a:string; b:string;
begin
 a:=Edit1.Text;
 b:=Edit1.Text;
 ShellExecute(Handle,'open','game.exe','+caption:=a +caption:=b',nil,SW_SHOWNORMAL);
 if launcher.CloseQuery then launcher.Close;
end;

ну в общем скрипт компилиться и запускаеться , но ...
логин +caption:=a
пароль +caption:=b

в общем застрял я вот на этой веселухе !
VMG вне форума Ответить с цитированием
Старый 11.02.2014, 08:16   #2
VMG
Пользователь
 
Аватар для VMG
 
Регистрация: 11.02.2014
Сообщений: 12
Восклицание

Попробывал такой скрипт :

без переменных

Код:
procedure Tlauncher.runClick(Sender: TObject);
begin
 ShellExecute(Handle,'open','game.exe',PChar(Edit1.text),nil,SW_SHOWNORMAL);
 if launcher.CloseQuery then launcher.Close;
end;
Логин начал отправляться в игру успешно !

Далее попробывал так :
Последний nil заменил на PChar(Edit2.text) и почему то пароль не отправился в игру
то есть полный второй скрипт
Код:
procedure Tlauncher.runClick(Sender: TObject);
begin
 ShellExecute(Handle,'open','game.exe',PChar(Edit1.text),PChar(Edit2.text),SW_SHOWNORMAL);
 if launcher.CloseQuery then launcher.Close;
end;
Первый nil который я ранее заменил на '+caption:=a +caption:=b' затем на PChar(Edit1.text) заработал и начал передавать текст успешно ,
а второй который я заменил на PChar(Edit2.text) оказываеться не хочет !

Как найти решение ?
Как использовать два Edit.text в первом nil с пробелом между ним ?

Последний раз редактировалось VMG; 11.02.2014 в 08:19.
VMG вне форума Ответить с цитированием
Старый 11.02.2014, 08:34   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А как две символьные строки сцепляют? Или три
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.02.2014, 08:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
ShellExecute(Handle,'open','game.exe',PChar(Edit1.text+' '+Edit2.text),SW_SHOWNORMAL);

Цитата:
Сообщение от Аватар Посмотреть сообщение
А как две символьные строки сцепляют? Или три

думаете, ему ваша подсказка поможет?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.02.2014, 09:32   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
думаете, ему ваша подсказка поможет?
Может на путь истинный направит. В чем сомневаюсь. WinAPI пользуется, а строки сцепить проблема
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.02.2014, 15:12   #6
VMG
Пользователь
 
Аватар для VMG
 
Регистрация: 11.02.2014
Сообщений: 12
Восклицание Переменые в ShellExecute

Цитата:
Сообщение от Аватар Посмотреть сообщение
А как две символьные строки сцепляют? Или три
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
ShellExecute(Handle,'open','game.exe',PChar(Edit1.text+' '+Edit2.text),SW_SHOWNORMAL);

думаете, ему ваша подсказка поможет?
Цитата:
Сообщение от Аватар Посмотреть сообщение
Может на путь истинный направит. В чем сомневаюсь. WinAPI пользуется, а строки сцепить проблема
Ну если бы был программистом с большим опытом то другое дело , включил бы мозг быстрей , а так по сути незачем включать и бо в нём вообще нету ничего что связано с Delphi
Ну а как говориться (!)-Учиться никогда не поздно


Благодарствую Вас от души , из действительности почему то не додумался до этого , да и я всё методом тыка делаю , пару дней пробываю программировать вообще , не говоря про Delphi
Как бы учусь , и начинаю понимать что это круто и затягивает очень

но есть ещё такой вопросик не по теме:
а имено:

правильности указания скрипта

какая разница между ?
Код:
ShellExecute(Handle,'open','game.exe',PChar(Edit1.text+' '+Edit2.text),SW_SHOWNORMAL);
Код:
ShellExecute(h,'open','game.exe',PChar(Edit1.text+' '+Edit2.text),SW_SHOWNORMAL);
(?)-Всего лиш сокращение Handle в h (для тех кто лениться писать полное слово )

Код:
ShellExecute(Handle,'open','game.exe',PChar(Edit1.text+' '+Edit2.text),SW_SHOWNORMAL);
Код:
ShellExecute(Handle,'open','game.exe',PChar(Edit1.text+' '+Edit2.text),nil,SW_SHOWNORMAL);
(?)-я так понял что первый nil это в своём роде как продолжения сценария , а второй nil можно вообще не указывать , дабы сократить длину скрипта ?

Код:
ShellExecute(Handle,'open','game.exe',nil,nil,SW_SHOWNORMAL);
Код:
ShellExecute(Handle,'open',PChar('game.exe'),nil,nil,SW_SHOWNORMAL);
(?)-Получаеться что 'game.exe' мы грубо ему указали без возможности на его изменения ?
(?)-А в PChar('game.exe') начало возможности предоставить изменения адреса к примеру через Edit ?

Но всё же ... название темы не соответствует к тому что получилось , ибо тут скрипт Edit поместить в ShellExecute , а хотелось бы и знать Переменые поместить в ShellExecute

как поместить за место PChar(Edit1.text+' '+Edit2.text) к примеру переменную a: а так же a: и b: ? так на будущее !
Потому что сейчас смотрю уроки в YouTube работа с условиями , да и задать альгоритм , если логин или пароль небыл введён и была нажата button1 то ему выдаст сообщение о том что бы ввёл данные !

как то так )

Благодарю очень сильно Вас за быделенное внимание и за затрату личного времени дабы помочь новичку !

Последний раз редактировалось VMG; 11.02.2014 в 15:38.
VMG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ShellExecute Fakov Общие вопросы Delphi 13 18.11.2022 16:47
ShellExecute ilyagovsa Помощь студентам 5 05.08.2013 11:32
ShellExecute arxidevill Общие вопросы Delphi 6 14.07.2010 12:00
shellExecute GAGARIN-NEW Общие вопросы Delphi 3 18.10.2008 12:04
ShellExecute SNUPY Общие вопросы Delphi 4 19.02.2008 22:59