Stan |
Отправлено: 02.08.2005, 14:13 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
Есть программка,которая открывает на сервере окно с двумя парметрами,когда таких окон много то сервак забивается!как перехватить открытие окна!?!!??
Заранее спасибо!!!!!! |
|
Doga |
Отправлено: 02.08.2005, 14:30 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Если эта ссылка не поможет:
https://rxlib.ru/forums/index.php?ac...91fdd9e7f41455a
,то вот Вам другая:
http://www.cbuilder.ru/faqs/faq2.html
Ответ № 18.
Отредактировано Doga — 02/08/2005, 14:31
|
|
Stan |
Отправлено: 03.08.2005, 12:56 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
а можно ли блокировать через Fork()??? |
|
Stan |
Отправлено: 03.08.2005, 14:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
я подумал,что надо уточнить,а то все заходят и выходят!
у меня есть Dos окно,которое надо перехватить,чтобы оно вообще не открывалось! |
|
Stan |
Отправлено: 04.08.2005, 11:43 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
Нашел в Инете код на перехват оконных сообщений:
Заголовочный файл:
class TForm1 : public TForm
{
__published: // IDE-шные компоненты
TMemo *Memo1;
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
private: // Пользовательские объявления
public: // Пользовательские объявления
__fastcall TForm1(TComponent* Owner);
WNDPROC OldWindowProc;
};
CPP file:
LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM w,
LPARAM l)
{
//Обрабатываем нужное нам сообщение
if (msg == WM_VSCROLL)
ShowMessage("The vertical scrollbar is scrolling!");
//Если нам необходимо прекратить дальнейшую обработку сообщения,
//то выходим и возвращаем ноль
//Вызываем старую оконную процедуру,
//которая обработает сообщение.
return CallWindowProc((FARPROC)Form1->OldWindowProc, hWnd, msg, w, l);
}
//----------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OldWindowProc = (WNDPROC)SetWindowLong(Memo1->Handle,
GWL_WNDPROC, (long)NewWindowProc);
}
//----------------------------------------------------------------------
void __fastcall TForm1::
когда я его компилирую,он выдает мне ошибку в этой строке:
LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM w,
LPARAM l),ошибка следующая:[C++ Error]File1.cpp(1):E2141 Declaration syntax error!
|
|
Vlad |
Отправлено: 04.08.2005, 14:16 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
QUOTE | у меня есть Dos окно,которое надо перехватить,чтобы оно вообще не открывалось! |
Ну и пусть себе не закрывается. Тебе нужно просто закрывать его , если оно висит скажем более N минут или часов.
Можно сделать и по другому. Я бы написал просто скрипт (vbs or js), который запускал бы эту прогу с парамтрами и смотрел бы свой файл лога, где было бы время запуска и указател на окно(pid или еще что)
и если прошло более N минут, грохалбы его и все! Можно и на борланде это же сделать, следилку запущенных приложений и или процессов, с принудительным убиванием. |
|
Stan |
Отправлено: 04.08.2005, 14:40 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
ты не совсем правильно понял!!эти окна сами закрываются,но когда их много,тогда сервак глючит!!просто надо чтобы вообще не открывалось!!
значит мне надо,когда окно попытается открыться использовать функцию pid?! |
|
Vlad |
Отправлено: 04.08.2005, 15:26 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Нет! Тогда тебе ни что не поможет. Винда выделяет память, ресурсы под каждое твоё приложение, тем более они досовые. Что ты их свернешь, что развернешь, хоть спрачь их, сколько они лопали ресурсов, столько и будут. Здесь можно попробывать написать прогу (можно скрипт) , которая не позволит запустить ну допустим более 25 или 50 приложений, а 51 не даст активизироваться, запустится. Мне просто интересно, сколько их у тебя запускается? И что за сервак. Например терминальный сервер ( 2 процовый с 8 гигами мозгов) спокойно держит поболее 50 rdp клиентов — терминалов. И не че хватает. |
|
Stan |
Отправлено: 04.08.2005, 15:48 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
честно я не считал...
просто,эти окна-это платежки в банке,которые высвечиваются в виде dos окна!и вот когда они приходят,то начинает тормозить...так что тут не 2 процессорный с 8 гигами,к сожалению! |
|
Vlad |
Отправлено: 04.08.2005, 15:54 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Стучись в Асю. Просто дальше разговор про банк-клиенты, это не тема для этого форума. Могу тебе хороший вариант подсказать, если конечно подойдет |
|
Stan |
Отправлено: 04.08.2005, 15:55 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
а номер какой?! |
|
Vlad |
Отправлено: 04.08.2005, 15:59 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
кликни на нике, там страница с данными |
|
Stan |
Отправлено: 04.08.2005, 16:02 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
ок!вечером тебе стукну,если будешь! |
|
Vlad |
Отправлено: 04.08.2005, 16:05 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Не ко мне только в рабочее время. Я дома пока без инета. вообщем до 18-00 мск можно стучаться |
|
Stan |
Отправлено: 04.08.2005, 16:08 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
Хреново!я тоже на работе где то до 5-6,но я ограничен в "правах"...аську я даже скачать не могу,на мыло вообще не заходит!!на все ТАБУ!!! |
|
Vlad |
Отправлено: 04.08.2005, 16:11 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
если ты в Мск, можно созвониться. Если нет, то давай по почте. |
|
Stan |
Отправлено: 04.08.2005, 16:13 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 10
|
я миранду скачал,она с асей коннектится?! |
|
Vlad |
Отправлено: 04.08.2005, 16:34 |
|
Машинист паровоза
Группа: Участник
Сообщений: 231
|
Лучше Jaber у него есть шлюзы на асю, а пойдет он по пути интернетэксплорера. Пофугу ему будут все препоны сисадминов, если ты в инет ходиш, он пролезет |
|