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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2016, 22:32   #11
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

В режим отладчика можно перейти, необязательно для этого писать свой код, из Делфи отладчик вполне подойдёт для атача
eoln вне форума Ответить с цитированием
Старый 24.05.2016, 23:40   #12
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
В режим отладчика можно перейти, необязательно для этого писать свой код, из Делфи отладчик вполне подойдёт для атача
В смысле?
Я как то могу из делфи любую программу( не делфи) в процессе ее нормальной работы подвиснуть в нужный момент и отпустить?
Что то с трудом верится.
Illusiony вне форума Ответить с цитированием
Старый 25.05.2016, 00:31   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
В смысле?
Я как то могу из делфи любую программу( не делфи) в процессе ее нормальной работы подвиснуть в нужный момент и отпустить?
Что то с трудом верится.
а вы попробуйте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.05.2016, 00:36   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Ну имитировать
зраду задумал? а ну колись, kurwa!
https://www.youtube.com/watch?v=eMRlNqmyP_8
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 28.05.2016, 15:02   #15
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Исследуемая программа, в которой нужно имитировать "подвисание" не запускается через exe, при запуске exe с начало запускается лаунчер а в нем уже кнопка запуска нужной программы(.
Это означает что я не смогу запустить ее через отладчик, так чтобы она могла работать в нормальном для нее режиме?
Illusiony вне форума Ответить с цитированием
Старый 28.05.2016, 16:16   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
Исследуемая программа, в которой нужно имитировать "подвисание" не запускается через exe, при запуске exe с начало запускается лаунчер а в нем уже кнопка запуска нужной программы(.
Это означает что я не смогу запустить ее через отладчик, так чтобы она могла работать в нормальном для нее режиме?
есть много способов найти нужный ProcessID, начиная с банального списка Exe=>PID.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.05.2016, 16:17   #17
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Можно не запускать её отладчиком, а только отлаживать отладчиком ))
run - attach process и выбрать из списка (64 и 32 разрядные программы в разных списках, выбор разрядности там же в окне выбора процесса)
eoln вне форума Ответить с цитированием
Старый 28.05.2016, 16:29   #18
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Пепел Феникса,eoln спасибо.

По ходу возникли еще вопросики:
1) При такой отладки стороннего приложения я ставлю паузу для имитации зависания во вкладке Запуск-Пауза. Но мне для быстрого нажатия ( и еще по причине что курсор перемещается в эту стороннюю программу) данной функции необходимо чтобы была назначена горячая клавиша ( глобальная, чтобы она работала при фокусе на любом приложении) которой по умолчанию ей (Запуск-Пауза) не назначена. Можно ли назначить?
2) У меня есть
Код:
procedure TForm1.FormDestroy(Sender: TObject);
Как правильно вызвать ее явно? чтобы она вызывала события OnDestroy ?
Или просто прописать Form1.Destroy;?
В
Код:
TForm1.FormDestroy
у меня делается один запрос на сервер и выводится сообщение о ошибке :
Код:
 try
                   str:=idhtp1.Post(server+'/delphi_status_change.php',LoginInfo);
                    except
                          on E: Exception do begin
                              ShowMessage(E.MEssage+'Сообщение');
                        end;
                   end;
Либо просто можно сделать такой запрос на сервер, далее корректно завершить работу программы, при этом вывести сообщение о ошибке.

Последний раз редактировалось Illusiony; 28.05.2016 в 17:30.
Illusiony вне форума Ответить с цитированием
Старый 28.05.2016, 18:12   #19
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

1) RegisterHotKey и ловим сообщение WM_HOTKEY
Можно хуками решить или поискать компонент типа hokey, но для глобальных операций
Кстати, ArtMoney вроде умела замораживать процесс и там, кажется, были горячие клавиши. Или другие игро-взломалки можно посмотреть.

2)
Цитата:
Как правильно вызвать ее явно? чтобы она вызывала события OnDestroy ?
...
Либо просто можно сделать такой запрос на сервер, далее корректно завершить работу программы, при этом вывести сообщение о ошибке.
Я запутался где тут вопрос))
Вызов procedure FormDestroy не приводит к уничтожению формы. Это обычная процедура (правда, с немного пугающим именем) и ничего более. Выполнится только тот код, который описан в этой процедуре. Вызвать эту процедуру можно так же, как и любую другую - FormDestroy(Sender). Если сендер не известен или его нет, то nill сойдёт.
Чтобы генерировать событие OnDestroy (который приведёт к выполнению процедуры FormDestroy и уничтожению формы), нужно убить форму. Если форма в приложении одна или она главная (если проект стандартный), то можно просто вызвать application.terminate, при условии что работа приложения закончена, ибо убийство формы на самом деле не конец жизни, а переход в загробное царство (читать как отказ от визуализации).
eoln вне форума Ответить с цитированием
Старый 28.05.2016, 18:18   #20
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

eoln, по поводу первого вопроса. В смысле?
Код:
RegisterHotKey и ловим сообщение WM_HOTKEY
Я имею ввиду в самой среде делфи-отладчика. Или я не понял Вас или Вы меня.

Огромное спасибо на счет совета по ArtMoney, очень помогло. Сейчас работаю. Я при долгой анимации пытаюсь завершить свою программу на delphi с помощью Form1.Destroy;
При испытании приложение закрывается выдет ошибку Read, но в диспетчере задач остается процесс.
У меня есть и Form2, попытался сделать и его:
Form1.Destroy;
Form2.Destroy;
Все тоже самое.

Как корректно завершить свою программу( чтобы в памяти не оставалось процесса), при этом перед завершением вывести нужное сообщение и сделать запрос на сервер?

Последний раз редактировалось Illusiony; 28.05.2016 в 20:03.
Illusiony вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправить ошибку в задачке на языке Си Artur2048 Помощь студентам 1 02.12.2013 05:57
Массивы,паскаль. Ошибка в задачке Jafrey Помощь студентам 7 13.05.2011 22:19
Нужна помощь в интересной задачке.. swink Паскаль, Turbo Pascal, PascalABC.NET 15 11.05.2009 15:10
Помощь в Задачке для начинающих С++ Woha Общие вопросы C/C++ 7 24.10.2008 20:11