Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 852

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
У меня к вам такой вопрос? Есть два проекта:
К первому проекту есть доступ всем.
Второй проект с паролем, тоесть доступ
ограничен, теперь вопрос? Как мне объеденить
эти два проекта, только первым загружатся должен
проект у которого есть доступ всем, а второй
проект, ну пусть будет привязан к кнопке,
открывался бы при нажатии на кнопку, запрашивая
пароль, и если пароль верный открывался, а первый закрывался.
И если можно ещё:
Какой файл запускает exe файлы в Windows, я пробовал
Shell1.Open(\'C:\Program Files\Beetle
Bomp\BeetleBomp.exe\');
но он запускает не все игры. Есть игры взломаные
Патчем trial-защиту в exe-шнике, их он не запускает, но Windows его запускает, как этот файл вставить в Delphi чтобы с моей программы запускались все игры. Как быть?
Заранее благодарен.

Толков Геннадий Викторович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)
Вопрос отправлен: 14 августа 2007, 01:22
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Цитата:


Как мне объеденить
эти два проекта, только первым загружатся должен
проект у которого есть доступ всем, а второй
проект, ну пусть будет привязан к кнопке,
открывался бы при нажатии на кнопку, запрашивая
пароль, и если пароль верный открывался, а первый закрывался.


В первом приложении на обработчик OnClick кнопки запуска второго приложения пишем, например:

ShellExecute(Handle,
              \'open\',
              \'Имя_EXE-файла_2й_программы.exe\',
              IntToStr(Integer(Handle)), // Передаём в качестве параметра хэндл формы 1-го приложения 2-му приложению
              nil,
              SW_ShowNormal);

Запустится 2-я программа и спросит пароль. После ввода верного пароля 2-я программа посылает 1-й программе (точнее, окну, хэндл которого - это StrToInt(ParamStr(1))) сообщение, например, WM_USER + 1:

  PostMessage(THandle(StrToInt(ParamStr(1))), WM_USER + 1, 0, 0);

На форму 1-го приложения положи компонент AppEvents, а в его обработчик события OnMessage напиши отлов сообщения WM_USER + 1 (его, кстати, можно и без компонента написать, не важно):

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if Msg.message = WM_USER + 1
    then Application.Terminate(); // Завершение 1-го приложения.
end;

Цитата:

Какой файл запускает exe файлы в Windows, я пробовал


Запускай ЕХЕшники функциями WInExec(), ShellExecute() или CreateProcess().

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 14 августа 2007, 08:38
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 14 августа 2007, 11:21; участников в обсуждении: 1.
Вадим К

Вадим К (статус: Академик), 14 августа 2007, 11:21 [#1]:

Толков Геннадий Викторович: Аккуратно задавайте вопрос. Помните, что обсуждение взломов не разрешено на данном сайте. А ваш вопрос потенциально опасен
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:45
Выполнено за 0.03 сек.