Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрет на сворачивание, Как перехватить событие? 
:(
    Опции темы
MihaAntr
Дата 4.8.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



У меня есть приложение(оболочка)...При его запуске рабочий стол скрывает и запрещается диспетчер задач. остается одна панель задач без "пуска"...
Но при нажати Виндовс+Д(показать рабочий) прога сворачивается.Как сделать так,чтобы она весела постоянно и не сварачивалась? Но, чтобы не было на переднем плане постоянно, просто как-бы исела в фоне? Я извиняюсь, если такая тема уже была, но я не нашел. Прошу помочь. Заранее блогадарен!
PM MAIL   Вверх
Alexeis
Дата 4.8.2006, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459





--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
_hunter
Дата 4.8.2006, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



странно как ты искал...
http://forum.vingrad.ru/index.php?showtopic=31971


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 4.8.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Внизу страницы линки посмотри. Например этот: http://forum.vingrad.ru/index.php?showtopi...st&p=237314
PM MAIL   Вверх
Alexeis
Дата 4.8.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Пол
Цитата(MihaAntr @  4.8.2006,  10:48 Найти цитируемый пост)
Но при нажати Виндовс+Д(показать рабочий) прога сворачивается.Как сделать так,чтобы она весела постоянно и не сварачивалась?

Ну Виндовс+Д и ALT + TAB, перехватывается хуком без проблем, после этого если отправить сообщение о восстановлении окна, то окно не успевает даже свернутся.
 А как побороть тоже действие произведенной со специального ярлыка? Там вроде вызывается iExplorer, c командной строкой к спец ярлыку. Как бы узнать по точнее эти параметры?

Это сообщение отредактировал(а) alexeis1 - 4.8.2006, 12:23


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
bems
Дата 4.8.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



прошу прощения, а проигнорировать WM_SYSCOMMAND если wParam=SC_MINIMIZE не помогает?


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Alexeis
Дата 4.8.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(bems @  4.8.2006,  13:47 Найти цитируемый пост)
 проигнорировать WM_SYSCOMMAND если wParam=SC_MINIMIZE не помогает?

В том то и прикол что не шлется ничего проге, в этом случае. (Событие OnMinimize) не происходит.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
bems
Дата 4.8.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



на мое окно команда "показать рабочий стол" не влияет, и я для этого ничего не делал. Окно у меня WS_EX_TOPMOST or WS_EX_LAYERED or WS_EX_TOOLWINDOW


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Alexeis
Дата 4.8.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Да и впровду 
Вот такое не прячется
Код

program winmin;
 
uses
  windows,
  messages;

{$R *.res}  

var
  wc      : TWndClassEx;
  MainWnd : HWnd;
  Mesg    : TMsg;

 
function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam;
                    Lparam:Lparam):Lresult; stdcall;
Begin
  case msg
  of
    wm_destroy :
    Begin
      postquitmessage(0);
      Result:=0;
      exit;
    End
    else
      Result:=DefWindowProc(wnd,msg,wparam,lparam);
  end;
End;

var
  xPos,yPos,nWidth,nHeight : Integer;

begin
  wc.cbSize        :=  sizeof(wc);
  wc.style         :=  cs_hredraw or cs_vredraw;
  wc.lpfnWndProc   :=  @WindowProc;
  wc.cbClsExtra    :=  0;
  wc.cbWndExtra    :=  0;
  wc.hInstance     :=  HInstance;
  wc.hIcon         :=  LoadIcon  (0, idi_application);
  wc.hCursor       :=  LoadCursor(0, idc_arrow);
  wc.hbrBackground :=  COLOR_BTNFACE + 1;
  wc.lpszMenuName  :=  nil;
  wc.lpszClassName :=  'WinMin : Main';
 
  RegisterClassEx(wc);
  xPos    :=100;
  yPos    :=150;
  nWidth  :=400;
  nHeight :=250;
 
  MainWnd:=CreateWindowEx(
            WS_EX_TOPMOST
            or WS_EX_TOOLWINDOW,
            'WinMin : Main',
            'Win Min',
            ws_overlappedwindow,
            xPos,
            yPos,
            nWidth,
            nHeight,
            0,
            0,
            Hinstance,
            nil
            );

  ShowWindow(MainWnd, CmdShow);

  While GetMessage(Mesg,0,0,0)
  do
    begin
      TranslateMessage(Mesg);
      DispatchMessage(Mesg);
    end;
end.


Но попытка установить такое для обычной формы
Код

procedure TForm1.FormCreate(Sender: TObject);
var
  wstyle : Cardinal;
begin
 wstyle := GetWindowLong(form1.Handle, GWL_EXSTYLE);
 wstyle := wstyle or WS_EX_TOPMOST or WS_EX_TOOLWINDOW;
 SetWindowLong(form1.Handle, GWL_EXSTYLE, wstyle);
end;


ни к чему хорошему не приводит smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
bems
Дата 4.8.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(alexeis1 @  4.8.2006,  15:18 Найти цитируемый пост)
Но попытка установить такое для обычной формы ни к чему хорошему не приводит   
 Может с Application.handle это сделать?



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Alexeis
Дата 4.8.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(bems @  4.8.2006,  17:16 Найти цитируемый пост)
Может с Application.handle это сделать?

Окно попрежнему прячется, причем настолько, что не появляется даже на панели задач, вне зависимости, видно оно  или нет
 smile  smile. Надобы записать smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 4.8.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(alexeis1 @  4.8.2006,  14:18 Найти цитируемый пост)
ни к чему хорошему не приводит

дык его наверное пересоздать надобно smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexeis
Дата 4.8.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(Romikgy @  4.8.2006,  21:34 Найти цитируемый пост)
дык его наверное пересоздать надобно 

Так при пересоздании оно создастся с ранее установленными параметрами (записанными в объекте) и настройки пропадают вообще. Это надо получить доступ к настройкам стиля окна и туда записать параметры. Только тогда пересозданное окно создастсмя с новыми значениями.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Демо
Дата 5.8.2006, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure Idle(Sender: TObject; var Done: Boolean);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnIdle := Idle;
end;

procedure TForm1.Idle(Sender: TObject; var Done: Boolean);
begin
  if isIconic(Application.Handle) then Application.Restore;
end;

end.




--------------------
    
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.