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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2011, 22:41   #1
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
Злость Реализация панели Пуск.

Пытаюсь реализовать TaskBar
Этот код подходит:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Wnd: hWnd;
buff: array [0..127] of char;
Begin
ListBox1.Clear;
Wnd := GetWindow(Handle, gw_HWndFirst);
While Wnd <> 0 do Begin // Не показываем:
If (Wnd <> Application.Handle) // Собственное окно
and IsWindowVisible(Wnd) // Невидимые окна
and (GetWindow(Wnd, gw_Owner) = 0) // Дочерние окна
and (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) Then Begin
GetWindowText(Wnd, buff, sizeof(buff));
ListBox1.Items.Add(StrPas(buff));
End;
Wnd := GetWindow(Wnd, gw_hWndNext);
End;
ListBox1.ItemIndex := 0;
End;
Но каким параметром задать, что если приложение(дескриптор) не отображает свою иконку, тогда не добавлять в список?

Последний раз редактировалось pavellyba; 15.08.2011 в 05:14.
pavellyba вне форума Ответить с цитированием
Старый 16.08.2011, 05:18   #2
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
По умолчанию

Узнать иконку запущенного приложения:
Код:
CopyIcon(GetClassLong(Wnd, GCL_HICON));
Узнать названия окна:
Код:
GetWindowText(Wnd, buff, sizeof(buff));
Узнать полный путь к программе создающая процесс:
Код:
GetWindowModuleFileName(Wnd, buff, sizeof(buff));
Развернуть окно процесса:
Код:
ShowWindow(Wnd, 5);
Каким параметром задать, что если приложение(дескриптор) не отображает свою иконку, тогда не добавлять в список?

Последний раз редактировалось pavellyba; 16.08.2011 в 07:23.
pavellyba вне форума Ответить с цитированием
Старый 16.08.2011, 05:49   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Подсказка: чему равен результат GetWindowsICO для таких приложений?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 16.08.2011, 06:54   #4
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
По умолчанию

У таких приложений есть иконка, у них параметр есть, что не отображать на TaskBar.
Выполняется это при помощи кода:
Код:
Application.CreateHandle;
ShowWindow(Application.Handle, SW_HIDE);
Application.ShowMainForm := FALSE;
А какая обратная функция, чтоб это узнать?

И появилась еще одна проблема, функция CopyIcon(GetClassLong(Wnd, GCL_HICON)) узнает иконки почему то не у всех программ. Как в таком случае узнать иконку?

Последний раз редактировалось pavellyba; 16.08.2011 в 07:24.
pavellyba вне форума Ответить с цитированием
Старый 16.08.2011, 06:57   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

IsWindowVisible?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Caption кнопки ПУСК (START) - изменить надпись на кнопке Пуск в Windows XP Altera Win Api 19 29.12.2011 15:49
Блокировка меню пуск и панели задач !!!! Elektro Безопасность, Шифрование 6 21.04.2009 13:06
Пуск }{oт@бь)ч Компоненты Delphi 27 09.02.2009 19:40
Как узнать ширину панели "Пуск" Port 111 Win Api 6 01.02.2009 23:05
КАК поместить ИКОНКУ программы в правый нижний угол панели(там где пуск)??? micaell Общие вопросы Delphi 5 21.02.2007 19:58