Здравствуйте, гость ( Вход | Регистрация )



Гостевой доступ к форуму из Москвы: Телефоны: +7(495)7859696,7376201,7376233,7868796,7390241 Login: demo Password: demo
 
ОтветитьСоздать новую тему
> winapi прога на delphi, нужен совет(?)
-=@L!=-
сообщение Nov 16 2005, 18:36
Сообщение #1


Постоянный пользователь
****

Группа: Новички
Сообщений: 482
Регистрация: 26-August 05
Пользователь №: 96
Заходит на форум с гостевика или полного инета.



Есть окно, которое прячется в трей. Надо посылать окну горячую клавишу.
Написана прога, которая это делает.
Сценарий:
Показать окно в фоне
Послать клавишу
Скрыть окно
Не устраивает только одно - высокая загрузка процессора в момент работы проги.
Эти процедуры повторяются каждые 5 секунд.
Есть ли другой способ сделать то же самое?
Подробней:
Есть FlashGet. В списке закачек 100 файлов.
3 качаются, 97 на "стрёме"(ждут пока сольются эти 3).
Как только дисконнект, так все те, что были на стрёме, покрываются "слоем" smile.gif крестиков, т.е. качаться они уже не будут. Те 3 так и долбятся, ожидая коннекта.
Было принято решение написать прогу, которая шлёт окну плешьгета клавишу F8 (закачать всё).
Ну а дальше вы уже знаете. smile.gif
--
Кто что скажет?
--
А ещё неплохо было бы темы свои разрешить переименовывать. dry.gif


--------------------
...Есть Правда. А есть ИСТИНА, которая ИМЕЕТ ЕЁ, Правду.
...н-е м-о-ё...

Изображение
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
linden
сообщение Nov 16 2005, 21:55
Сообщение #2


Постоянный пользователь
***

Группа: Пользователи
Сообщений: 126
Регистрация: 23-June 05
Из: Москва
Пользователь №: 13
Заходит на форум с полного инета.



На VB за 5 минут такое написать мона =) причем без всяких дополнительных контролов, activeX и прочей ерунды =)


--------------------
Изображение
- Dead angel in a snow... It's beautiful -
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
-=@L!=-
сообщение Nov 16 2005, 23:54
Сообщение #3


Постоянный пользователь
****

Группа: Новички
Сообщений: 482
Регистрация: 26-August 05
Пользователь №: 96
Заходит на форум с гостевика или полного инета.



Ну как бы... Прога уже есть. Весит ~10 килов, ничего не требует. smile.gif
Вопрос в том, чтобы сделать такое же, но без показа окна(или как угодно, но чтоб не "дёргался" проц).


--------------------
...Есть Правда. А есть ИСТИНА, которая ИМЕЕТ ЕЁ, Правду.
...н-е м-о-ё...

Изображение
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
-=@L!=-
сообщение Dec 18 2006, 04:34
Сообщение #4


Постоянный пользователь
****

Группа: Новички
Сообщений: 482
Регистрация: 26-August 05
Пользователь №: 96
Заходит на форум с гостевика или полного инета.



Видимо, никак. smile.gif


--------------------
...Есть Правда. А есть ИСТИНА, которая ИМЕЕТ ЕЁ, Правду.
...н-е м-о-ё...

Изображение
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
ismolnik
сообщение Dec 18 2006, 08:01
Сообщение #5


Суперадмин =)
Group Icon

Группа: Advanced
Сообщений: 2 107
Регистрация: 29-August 05
Из: ЗАО
Пользователь №: 107
Заходит на форум с полного инета.



\\Эти процедуры повторяются каждые 5 секунд.
Есть ли другой способ сделать то же самое?
Подробней:
Есть FlashGet. В списке закачек 100 файлов.
3 качаются, 97 на "стрёме"(ждут пока сольются...

пришли прогу


--------------------
This message written with recycled electrons. MSU
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
PINguin
сообщение Jan 5 2007, 03:12
Сообщение #6


PINguin
Group Icon

Группа: Advanced
Сообщений: 957
Регистрация: 21-August 05
Из: Страна Лимония
Пользователь №: 79
Заходит на форум с полного инета.



Sign 0f Misery вам поможет.
И без программирования и без геммороя.


--------------------
Изображение
Изображение
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение
mars
сообщение Jan 8 2007, 23:57
Сообщение #7


Пользователь
**

Группа: Пользователи
Сообщений: 86
Регистрация: 18-August 06
Из: Москва, район Аэропорт
Пользователь №: 539
Имя: Mar'asin Semen
Настроение: by default
Заходит на форум с гостевика.



Цитата(-=@L!=- @ Nov 17 2005, 00:54) *

Вопрос в том, чтобы сделать такое же, но без показа окна(или как угодно, но чтоб не "дёргался" проц).


Вариант1 (в Дельфи 7):
View -> Project Manager (Ctrl+Alt+F11).
Щёлкаем плюс рядом с Project1.exe,
потом правой кнопкой по Unit1 -> Remove From Project -> Yes. (это чтоб окна не было)
Далее правой кнопкой по Project1.exe -> View Source.
Теперь стираем строчки Application.Initialize и Application.Run.
В секцию Uses добавляем: Windows.
Теперь можно спокойно писать на WinApi.

Вариант2:
зачем форму показывать?
Просто по таймеру посылаем сообщение нужному окну:
Код
procedure Form1.OnTimer(Sender: TObject);
var
  hWindow: HWnd;
begin
  hWindow := FindWindow('<window class>', '<window title>');
  PostMessage(hWindow, WM_KEYDOWN, VK_F8, 1);
  PostMessage(hWindow, WM_KEYUP, VK_F8, 1);
end;


Разумеется можно написать поаккуратнее, у меня очень коряво.
ПРЕДУПРЕЖДАЮ: может и не сработать, я не проверял.
А вообще, см. help по winapi (идёт в комплекте с Delphi).

Сообщение отредактировал mars - Feb 2 2007, 01:12


--------------------
Сяпала калуша по напушке
Пользователь offlineПрофайлОтправить личное сообщение
Вернуться к началу страницы
+Цитировать сообщение

ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия Сейчас: 21st January 2021 - 10:05
 
     
Rambler's Top100 службы мониторинга серверов
Gentoo Powered Lighttpd Powered