Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
EEjester
1 / 1 / 0
Регистрация: 28.03.2013
Сообщений: 299
#1

Отследить появление окна об информации подключения - Delphi

12.03.2015, 21:00. Просмотров 1248. Ответов 36
Метки нет (Все метки)

На модеме в случае потере связи появляется окно в котором спрашивается хотите ли вы восстановить подключение.
Жутко это бесит!! Нужно перехватить появление этого сообщения.
Пробовал в таймере вот так но это жуткое извращение! и когда играешь например то сворачивается игра!!! БЕСИТ!
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure qwe1;
var
  H1:hwnd;
begin
  H1 := FindWindow(nil, 'Communication has been lost!');
  if H1 <> 0 then
   begin
    EmulateKey(H1, VK_RETURN);
    Exit;
   end;
end;
Можно ли как то без таймера отловить появление окна?

Добавлено через 23 часа 51 минуту
UP!!! нужна помощь! люди!!!

Добавлено через 4 часа 31 минуту
нашел вот такое:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var
  FuckEdrawHook: HHOOK;
 
function FuckEdrawProc(nCode: Integer; WParam, LParam: Longint): Longint; stdcall;
const
  STR_EVALUATION = 'Evaluation Version Reminder';
var
  P: PChar;
  Cpt: string;
begin
  if nCode = HCBT_CREATEWND then
  begin
    P := CBT_CREATEWND(Pointer(lParam)^).lpcs^.lpszName;
    if Assigned(P) then
    begin
      Cpt := StrPas(P);
      if Pos(STR_EVALUATION, Cpt) > 0 then
      begin
        Result := 1; 
        Exit
      end
    end
  end;
  Result := CallNextHookEx(FuckEdrawHook, nCode, WParam, LParam)
end;
 
initialization
 
FuckEdrawHook := SetWindowsHookEx(WH_CBT, FuckEdrawProc, 0, GetCurrentThreadID);
 
finalization
 
if FuckEdrawHook <> 0 then
  UnHookWindowsHookEx(FuckEdrawHook);
кто нить объяснит как пользоваться?

Добавлено через 11 часов 47 минут
Тему вверх! Прошу помощи!

Добавлено через 11 часов 38 минут
up! помогите!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2015, 21:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отследить появление окна об информации подключения (Delphi):

Появление окна - Delphi
Что мне надо сделать чтобы в одной форме нажал на кнопку и потом появилось вторая форма?

Постепенное появление окна. - Delphi
Добрый день! В прогу нужно вставить эффект постепенного закрытия окна с прозрачностью. Как сделать открытие окна с постепенным появлением,...

Плавное появление окна - Delphi
Подскажите пожалуйста код плавного появления окна при загрузке программы.

В момент выхода из программы обеспечьте появление окна для сохранения файла с данными - Delphi
В момент выхода из программы обеспечьте появление окна для сохранения файла с данными, если в него были внесены изменения. Данные...

Передача информации в окна - Delphi
День добрый. Задача: В создаваемой мною оболочке вводится текст, с определенной частотой я должен считывать этот текст и отправлять его,...

Чтение информации из чужого окна в 64-bit OS - Delphi
Привет! Процедура проверяет открыто ли окно Диспетчера задач, и если открыто - считывает из него список процессов в мой Memo1. Процедура...

36
Verevkin
279 / 268 / 61
Регистрация: 12.03.2015
Сообщений: 2,154
13.03.2015, 02:26 #2
Цитата Сообщение от EEjester Посмотреть сообщение
появляется окно в котором спрашивается хотите ли вы восстановить подключение
а что за программа показывает это окошко?
0
EEjester
1 / 1 / 0
Регистрация: 28.03.2013
Сообщений: 299
13.03.2015, 06:12  [ТС] #3
Программа от мадема 3G. С помощью нее я подключаюсь к интернету когда нет проводного.
0
Verevkin
279 / 268 / 61
Регистрация: 12.03.2015
Сообщений: 2,154
13.03.2015, 06:21 #4
Цитата Сообщение от EEjester Посмотреть сообщение
Программа от мадема 3G. С помощью нее я подключаюсь к интернету когда нет проводного.
тогда зачем эта прога болтается у тебя в памяти, когда не нужна? чтобы бесить тебя сообщением? не понимаю.
ответь, пожалуйста на мой вопрос, не соскакивая с темы! очень прошу!
0
EEjester
1 / 1 / 0
Регистрация: 28.03.2013
Сообщений: 299
13.03.2015, 06:52  [ТС] #5
она для того что бы работал сам мадем. без нее интернет не подключится.

Добавлено через 2 минуты
кстати нашел еще вот такой код, но тоже с ним не разобрался.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  protected
    procedure WndProc(var Message: TMessage); override;
  end;
 
var
  Form1: TForm1;
 
function RegisterShellHookWindow(Wnd : HWND) : BOOL; stdcall; external user32;
function DeregisterShellHookWindow(Wnd : HWND) : BOOL; stdcall; external user32;
 
implementation
 
{$R *.dfm}
 
var
  WM_SHELLHOOKMESSAGE : UINT;
 
function SetShellHook(hwndHook : HWND) : Boolean;
begin
  Result := False;
  WM_SHELLHOOKMESSAGE := RegisterWindowMessage('SHELLHOOK');
  if WM_SHELLHOOKMESSAGE <> 0 then
  begin
    if RegisterShellHookWindow(hwndHook) then
      Result := True;
  end;
end;
function UnSetShellHook(hwndHook : HWND) : Boolean;
begin
  Result := DeregisterShellHookWindow(hwndHook);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  if not SetShellHook(Handle) then
    ShowMessage('Не удалось установить хук');
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnSetShellHook(Handle);
end;
 
const
  HSHELL_FLASH = $8006;
 
procedure TForm1.WndProc(var Message: TMessage);
begin
  if Message.Msg <> WM_SHELLHOOKMESSAGE then
    inherited
  else
    case Message.WParam of
      HSHELL_FLASH :
        Memo1.Lines.Add(Format('Мигающее окно: HWND = %d', [Message.LParam]));
    end;
end;
 
end.
0
Verevkin
279 / 268 / 61
Регистрация: 12.03.2015
Сообщений: 2,154
13.03.2015, 06:59 #6
Цитата Сообщение от EEjester Посмотреть сообщение
она для того что бы работал сам мадем. без нее интернет не подключится.
да ты прям гений, америку открыл.
перефразирую вопрос: когда вылезает сообщение, в котором спрашивается "хотите ли вы восстановить подключение", ты нажимаешь в нём какую кнопку: "да" или "нет"?
вообще, в подобных прогах всегда есть настройка "восстанавливать соединение при обрыве связи".
0
EEjester
1 / 1 / 0
Регистрация: 28.03.2013
Сообщений: 299
13.03.2015, 07:05  [ТС] #7
Вооо! этот код работает!! Но как его модифицировать не что бы он отлавливал мигание а именно появление окон?

Добавлено через 1 минуту
Нужно нажать в это окно ДА, но это легко... А мне нужно отловить его появление.

p.s: Нету в нем настройки такой... Это и бесит.
0
Verevkin
279 / 268 / 61
Регистрация: 12.03.2015
Сообщений: 2,154
13.03.2015, 07:11 #8
Цитата Сообщение от EEjester Посмотреть сообщение
p.s: Нету в нем настройки такой... Это и бесит.
уверен, что нету?
тога стоит поискать прогу, в которой такая настройка есть.
или написать свою.
а чо за модем (производитель (не опсос), модель)?
0
EEjester
1 / 1 / 0
Регистрация: 28.03.2013
Сообщений: 299
13.03.2015, 08:27  [ТС] #9
Слушай ты лучше с кодом помоги а не языком чеши...

p.s: китайский 3g мадем, фиг знает какой марки, прога устанавливается вместе с дровами.
0
Verevkin
279 / 268 / 61
Регистрация: 12.03.2015
Сообщений: 2,154
13.03.2015, 08:45 #10
Цитата Сообщение от EEjester Посмотреть сообщение
Слушай ты лучше с кодом помоги а не языком чеши...
я пытался исключить костыли вообще, т.е. найти способ сдеать так, чтобы при обыве связи окно не появлялось. у меня тоже есть китайский 4ж-модем, а вот такого безобразия нету, причём без тыка по кнопкам программы из другой программы.
именно поэтому я и задавал вопросы - мне нужна была инфа для подбора альтернативного софта. я не «чесал языком», а реально хотел помочь ликвидировать проблему. но вижу, что тебе важнее отловить создание окна и прибить его до показа на экране, чем вообще исключить причину создания этого окна.
какая жаль.
0
EEjester
1 / 1 / 0
Регистрация: 28.03.2013
Сообщений: 299
13.03.2015, 08:53  [ТС] #11
Ну так поможешь?
0
Verevkin
279 / 268 / 61
Регистрация: 12.03.2015
Сообщений: 2,154
13.03.2015, 09:00 #12
Цитата Сообщение от EEjester Посмотреть сообщение
Ну так поможешь?
чем?
я пытался, ты был против.
0
krapotkin
3249 / 2889 / 785
Регистрация: 14.04.2014
Сообщений: 14,006
Записей в блоге: 12
13.03.2015, 09:01 #13
Цитата Сообщение от Verevkin Посмотреть сообщение
Слушай ты лучше с кодом помоги
http://www.gunsmoker.ru/2008/10/x-y-z.html
вот тут подробненько написано почему тебе задают вопросы и пытаются отговорить от всяких штук
0
EEjester
1 / 1 / 0
Регистрация: 28.03.2013
Сообщений: 299
13.03.2015, 09:06  [ТС] #14
я небыл против просто если бы можно было без костылей я бы сразу так и сделал. но жизнь заставляет хукать это гребаное окошко!
0
Verevkin
279 / 268 / 61
Регистрация: 12.03.2015
Сообщений: 2,154
13.03.2015, 09:09 #15
Цитата Сообщение от krapotkin Посмотреть сообщение
http://www.gunsmoker.ru/2008/10/x-y-z.html
вот тут подробненько написано почему тебе задают вопросы и пытаются отговорить от всяких штук
на паре других форумов по программизму эта ссылка давно торчит у меня в подписи.
это очень правильный текст!

Добавлено через 2 минуты
Цитата Сообщение от EEjester Посмотреть сообщение
если бы можно было без кастылей я бы сразу так и сделал
а вот я и пытаюсь узнать, можно без костылей или нет. а ты не только не помогаешь мне, но и мешаешь!
какого хрена ты так делаешь, а? отчаянно не понимаю!
0
13.03.2015, 09:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2015, 09:09
Привет! Вот еще темы с ответами:

Отследить появление DOM - JavaScript
Можно ли сделать так, чтобы при появлении (т.е. загрузке браузером, не при создании скриптом) DOM с определённым классом или id выполнялась...

Плавное появление и исчезание формы, отследить коэффициент прозрачности - Visual Basic .NET
В чем ошибка? При запуске программы она просто плавно исчезает, но не появляется обратно. Я думаю что из за того, что не правильно прописан...

Отследить появление файла по указанному пути и анализ его байтовой структуры - Visual Basic
Всем здравствуйте. Необходимо отслеживать файл, зная указанный путь??? Вроде как через функцию DIR, как точно не пойму... После того...

Отследить ошибку подключения модуля - C#
Здравствуйте! Использую в своей программе MySQL Connector. Если использую программу на компьютере где не установлен коннектор, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru