Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 327
от 17.12.2005, 18:48

Администратор:Калашников О.А.
В рассылке:Подписчиков: 238, Экспертов: 51
В номере:Вопросов: 3, Ответов: 7


Вопрос № 31314: Здраствуй народ. Работаю под W2000 SP4 с Delphi 7. Вопрос вот в чем: Моя программа выполняет файловые операции, довольно продолжительное время. Если ее закрыть другим приложением, а потом это-же приложение свернуть, то моя программа "с лица спад...
Вопрос № 31328: Здравствуйте уважаемые эксперты! Помогите пожалуйста!!! 1. Можно-ли сделать так, чтобы при нажатии на левую кнопку мыши комп думал, что я нажал на F. P.S. Это должно происходить в другой запущеной прогамме. 2. Если можно, то как? ...
Вопрос № 31332: Здравствуйте эксперты ! Вопрос такой как можно узнать запущенна определённая прога или нет и если нет то выполнить определённую функцию, а запущенно то ничего не делать(известен только заголовок проги) если можно с небольшим исходничком ...

Вопрос № 31.314
Здраствуй народ. Работаю под W2000 SP4 с Delphi 7. Вопрос вот в чем: Моя программа выполняет файловые операции, довольно продолжительное время. Если ее закрыть другим приложением, а потом это-же приложение свернуть, то моя программа "с лица спадает", т.к. никаких обновлений формы я не делаю (заисключением процента выполнения), что бы не тормозить работу. Как можно востановить форму, когда программа становиться видимой (если возможно, частично видомой, т.е. не полностью закрыта другим приложением), а так же как вывести на верх мое приложение с обновлением формы при выборе моего приложения в нижней строке "Панели инструментов".
Отправлен: 12.12.2005, 11:41
Вопрос задал: Карасев Алексей Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Werewolf
Здравствуйте, Карасев Алексей Александрович!
В цикле обработке пропишите
Application.ProcessMessages;
Это позволит обработать очередь сообщений окна формы а затаем продолжить цикл.
Но правильнее организовывать обработку отдельным потоком, а затем методом Synchronize выводить прогресс.

Удачи.
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 12.12.2005, 11:46

Отвечает: streetcat
Здравствуйте, Карасев Алексей Александрович!
попробуй обновлять окно на onActivate формы. Но это вряд ли сработает. Если "файловые операции" выполняются циклом, то вставь в него что-то типа:
Application.ProcessMessages или аналогично на WinAPI
т.е. чтоб твое приложение в процессе работы отвечала на сообщения винды, например, на то же развертывание окна из значка на таскбаре.
это не будет сильно тормозить работу.
Ответ отправил: streetcat (статус: 8-ой класс)
Отправлен: 12.12.2005, 15:08


Вопрос № 31.328
Здравствуйте уважаемые эксперты!
Помогите пожалуйста!!!
1. Можно-ли сделать так, чтобы при нажатии на левую кнопку мыши комп думал, что я нажал на F.
P.S. Это должно происходить в другой запущеной прогамме.
2. Если можно, то как?
За ранее Спасибо! До свидания!
Отправлен: 12.12.2005, 15:53
Вопрос задал: MaCC (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, MaCC!
Это можно сделать, послав сообщение:
SendMessage(Window, WM_KEYDOWN, $46, 0);
Это стандартная посылка сообщения, где:
Window - хэндл окна, для которого сообщение предназначено
WM_KEYDOWN - это собственно сообщение и есть
$46 - код буквы F
В последний параметр обычно запихивают скан-код клавиши, кол-во повторений и т.п. чепуху.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 12.12.2005, 18:33
Оценка за ответ: 5
Комментарий оценки:
Спасибо ОГРОМНОЕ sir henry вы очень помогли (причём второй раз).


Вопрос № 31.332
Здравствуйте эксперты !
Вопрос такой как можно узнать запущенна определённая прога или нет и если нет то выполнить определённую функцию, а запущенно то ничего не делать(известен только заголовок проги) если можно с небольшим исходничком
Отправлен: 12.12.2005, 17:05
Вопрос задал: Dimon007 (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Dimon007!
Через API-функцию FindWindow. Примерно так:

Var H: HWnd;
...
H:=FindWindow('nil','Заголовок');
if (H > 32) then begin {действия, если программа запущена} end
else begin {не запущена} end;

---------
В то время как остальные процессоры уже закончили работу, процессоры VIA продолжают работать, работать и работать! :))
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 12.12.2005, 17:15

Отвечает: Zubex
Здравствуйте, Dimon007!
В приложении код, который ищет запущена программа или нет, если запущена, то посылает ей сообщение, а если не запущена то запускает ее...

Приложение:

---------
Если не знаешь что сказать - лучше промолчи...

Ответ отправил: Zubex (статус: 3-ий класс)
Отправлен: 12.12.2005, 17:34

Отвечает: REFERI
Здравствуйте, Dimon007!
В приложении полный код.
Все что вам нужно знать это имя программы.
Удачи в кодинге!

Приложение:

---------
Не судите, да не судимы будете...

Ответ отправил: REFERI (статус: Студент)
Отправлен: 12.12.2005, 18:48

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Dimon007!

Используйте API функцию FindWindow (Выдержка из SDK дана в приложении)

в lpClassName в вашем случае передается NIL.
в lpWindowName - заголовок искомого окна.

Если функция найдет данное окно, то вернет указатель на окно, иначе NIL...

Приложение:

Ответ отправил: Лучников Юрий Владимирович (статус: 4-ый класс)
Отправлен: 13.12.2005, 00:29


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное