Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2010, 21:09   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию [LAZARUS] Не получается убрать приложение с панели задач.

Код:
// SetWindowLong(wnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
//  ShowWindow(TWin32WidgetSet(WidgetSet).AppHandle, SW_HIDE);
//  ShowWindow(FRMMain.Handle, SW_HIDE);
//  FRMMain.ShowInTaskBar := stNever;
  h:=findwindow('Window','Squary');
  showwindow(h, sw_hide);
Ничего не работает.

UPD Даже способ от GunSmoker не проходит:
Код:
Procedure TFRMMain.CreateWnd;
 Var
  Taskbar: ITaskbarList;
 begin
  inherited;

  Taskbar := CreateComObject(CLSID_TaskbarList) as ITaskbarList;
  Taskbar.HrInit;
  Taskbar.DeleteTab(Handle);
 end;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 22.08.2010 в 21:31.
Alex Cones вне форума Ответить с цитированием
Старый 22.08.2010, 21:47   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Вы уверены, что на панели задач висит кнопка именно от этого окна, а не какая-то заглушка-переходник?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 22.08.2010, 22:12   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Я уже ни в чем не уверен.

SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 22.08.2010, 22:29   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Во-во. Вот это (0,0)-(0,0) у первого окна и наводит на мысль о заглушке.

Я уж не в курсе, как там у Лазарус.

Варианты:
- попробовать с Application.Handle.
- поискать.
- покопаться в свойствах формы.
- покопаться в документации.
- покопаться в исходниках формы.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 23.08.2010, 11:44   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Application.Handle = TWin32WidgetSet(WidgetSet).AppHandl e
Уже пробовал в первом посте.

Искал, нарыл это http://www.freepascal.ru/forum/viewtopic.php?f=5&t=4263 - не помогло.
В свойствах формы даже указывал showInTaskbar = FALSE, но из 4 процессов только 2 оказались скрытыми (как и при TRUE)


А может идти снизу вверх? Если я знаю хендл, например, формы, то я же могу узнать хендл "заглушки"? Вопрос отменяется, т.к. вывел на экран найденный по findwindow('Window','Squary'); хендл - он равен хендлу заглушки.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 23.08.2010 в 11:52.
Alex Cones вне форума Ответить с цитированием
Старый 23.08.2010, 12:08   #6
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Так, ладно, попробуем пойти другим путем - начнем сначала.

Исходные позиции:
1) Форма имеет стиль bsNone
2) Форма получает
Код:
With FRMMain Do
    SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_SHOWWINDOW);
По (почти) каждому OnPaint.
3) Форма имеет такие стили:
Код:
SetWindowLong(FRMMain.Handle, GWL_EXSTYLE,
   GetWindowLong(FRMMain.Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
  SetLayeredWindowAttributes(FRMMain.Handle, $FF00FF, 0, LWA_COLORKEY);
- Чтобы сделать $FF00FF прозрачным.

НО все это кажись не имеет значения, т.к. после комментирования этих свойств ничего не меняется.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 23.08.2010, 23:39   #7
Demure Monkey
 
Регистрация: 23.08.2010
Сообщений: 4
По умолчанию

Не совсем понял что вам надо, но может это поможет
Код:
ShowWindow(TWin32WidgetSet(WidgetSet).AppHandle, SW_HIDE);
и еще надо подключить в uses
Код:
Win32Int, InterfaceBase, Windows
Demure Monkey вне форума Ответить с цитированием
Старый 24.08.2010, 00:29   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Оффтоп. Может стоит писать на чистом WinAPI, чем отладку фрипаскалю делать постоянно? Это ведь, как я понял, творческий проект, в свободное время, вопрос со сроками не стоит, это я к тому, что перейти на апи может время занять, ну и что, зато полезно по-любому, если планируешь и дальше под винду писать. Конец оффтопа
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 24.08.2010, 10:13   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Demure Monkey, первый пост внимательно прочтите.

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

Спасибо.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.08.2010, 22:05   #10
Demure Monkey
 
Регистрация: 23.08.2010
Сообщений: 4
По умолчанию

Извините, не заметил
Странно... у меня сработало
Demure Monkey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать окно из панели задач? Seven[up] Win Api 3 10.08.2010 01:19
Как убрать себя с панели задач. Alex Cones Общие вопросы Delphi 2 27.12.2009 16:13
не получается отключение CTRL+alt+del? Alt+TAb, часов с панели задач и Крестик окна Reds Общие вопросы Delphi 1 30.09.2008 10:37
убрать приложение из панели задач Романнн Общие вопросы Delphi 2 10.11.2007 12:08