ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Изменить програмно вид кнопки меню Пуск (Delphi)
  #1  
Старый 24.04.2007, 11:07
Exile1985
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме:
404152

Репутация: 94
По умолчанию Изменить програмно вид кнопки меню Пуск (Delphi)

Привет
Люди, подскажите плиз как мона изменить програмно (с помощью Delphi) вид кнопки меню Пуск.
Нашел один способ с помощью которого это можно сделать, но он работает только под Windows 9x, вот код:

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  StartBtnWnd:=FindWindow('Shell_TrayWnd', nil);
  StartBtnBmp:=FindWindowEx(StartBtnWnd, 0, 'Button', nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
  begin
    SendMessage(StartBtnBmp, BM_SetImage, 0, Image1.Picture.Bitmap.Handle);
  end;
Большая просьба отвечать только по теме и ответы типа "ресторатор в руки" прошу оставить при себе,
не знаете - не пишите, извиняюсь за грубость просто уже достали тупыми ответами и флудом.
Заранее благадарю.

p.s. если реально поможежете обещаю +

Последний раз редактировалось Exile1985; 24.04.2007 в 14:25..
 
Ответить с цитированием

  #2  
Старый 24.04.2007, 14:27
Exile1985
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме:
404152

Репутация: 94
По умолчанию

АУУУУ народ, че тишина то такая, тупой вопрос задал или это не осуществимо?
 
Ответить с цитированием

  #3  
Старый 24.04.2007, 14:38
flipper
Участник форума
Регистрация: 05.09.2006
Сообщений: 184
Провел на форуме:
888851

Репутация: 203
По умолчанию

Нашел пример в Delphi Russian Knowledge Base form Vit
Код:
Пример из серии "Что можно сделать с рабочим столом". В общем, это обычный трюк с кнопкой "Пуск" (Start). 

{ объявляем глобальные переменные }  

var  
  Form1: TForm1;  
  StartButton: hWnd;  
  OldBitmap: THandle;  
  NewImage: TPicture;  

{ добавляем следующий код в событие формы OnCreate }  

procedure TForm1.FormCreate(Sender: TObject);  
begin  
  NewImage := TPicture.create;  
  NewImage.LoadFromFile('C:\Windows\Circles.BMP');  
  StartButton := FindWindowEx  
                 (FindWindow(  
                    'Shell_TrayWnd', nil),  
                     0,'Button', nil);  
  OldBitmap := SendMessage(StartButton,  
                           BM_SetImage, 0,  
                           NewImage.Bitmap.Handle);  
end;  

{ Событие OnDestroy }  

procedure TForm1.FormDestroy(Sender: TObject);  
begin  
  SendMessage(StartButton,BM_SetImage,0,OldBitmap);  
  NewImage.Free;  
end;
PS: Еще тут посматри...

Последний раз редактировалось flipper; 24.04.2007 в 14:44..
 
Ответить с цитированием

  #4  
Старый 24.04.2007, 15:28
Exile1985
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме:
404152

Репутация: 94
По умолчанию

будем пробовать, хотя смахивает на мой , спасибо за помощь, с меня +

Последний раз редактировалось Exile1985; 24.04.2007 в 15:42..
 
Ответить с цитированием

  #5  
Старый 24.04.2007, 15:46
alextoun
Постоянный
Регистрация: 07.05.2006
Сообщений: 732
Провел на форуме:
7910701

Репутация: 811


Отправить сообщение для alextoun с помощью ICQ
По умолчанию

кнопка пус это ваще то картинка.
создай какой нить Bitmap, на кнопку, учитывая размеры
Сначала объявви глобальные переменные
Цитата:
StartButton: hWnd;
OldBitmap: THandle;
NewImage: TPicture;
Затем опиши событие по создания окна [OnCreate]:
Цитата:
procedure TForm1.FormCreate(Sender: TObject);
begin
NewImage := TPicture.create;
NewImage.LoadFromFile('C:\Windows\кнопка.BMP '); //здесь укажи путь к нужному файлу
StartButton := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil);
OldBitmap := SendMessage(StartButton, BM_SetImage, 0, NewImage.Bitmap.Handle);
end;
Если сделаешь это на своей машине, то можете всё восстанавливать по событию OnDestroy:
Цитата:
procedure TForm1.FormDestroy(Sender: TObject);
begin
SendMessage(StartButton, BM_SetImage, 0, OldBitmap);
NewImage.Free;
end;
 
Ответить с цитированием

  #6  
Старый 24.04.2007, 23:49
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Чё вы один и то-же код в разном форматировании копипастите, если не понятно что это одно и тоже, то нечего постить!
 
Ответить с цитированием

  #7  
Старый 25.04.2007, 08:54
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Темы, кстати, учимся называть. первое предупреждение
 
Ответить с цитированием

  #8  
Старый 25.04.2007, 17:21
Exile1985
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме:
404152

Репутация: 94
По умолчанию

Цитата:
Сообщение от _Great_  
Темы, кстати, учимся называть. первое предупреждение
а что именно ты там не понял?, сажи я расшифрую

Цитата:
Сообщение от hidden  
Чё вы один и то-же код в разном форматировании копипастите, если не понятно что это одно и тоже, то нечего постить!
знаю знаю что одно и тоже, из вежливости не стал просто концентрировать на этом внимание, пусть почуствует себя умным

Последний раз редактировалось Exile1985; 25.04.2007 в 17:24..
 
Ответить с цитированием

  #9  
Старый 29.04.2007, 23:19
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Народ, вообщето если мне не изменяет память, то в XP кнопка пуск чуток отличается от 9x и с ней нельзя работать как в 9x. она имеет клас Button.
поэтому чтобы сменить текст на ней, надо просто послать сообщение WM_SETTEXT
Поэтому нужно шагать от сюда
Зато есть другая возможность - наложить поверх неё чтонить еще
типа постоянно на канвасе рисовать своё чтонить
или вообще передвинуть её, чтобы не мешала

Последний раз редактировалось slesh; 29.04.2007 в 23:30..
 
Ответить с цитированием

  #10  
Старый 30.04.2007, 00:01
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

Да.
Код:
MoveWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil),300, 0, 80, 22, true);
Код:
s := FindWindow('Shell_TrayWnd',nil);
b := FindWindowEx(s,0,'button',nil);
SetWindowText(b,'Действие АРАБЕСКИ');
SendMessage(b,WM_MOUSEMOVE,1,1);

Последний раз редактировалось BlackLogic; 30.04.2007 в 00:35..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Секретные Коды _-[A.M.D]HiM@S-_ Сотовый фрикинг 98 09.06.2010 16:01
секреты и коды для сотовых телефонов ))) dinar_007 Сотовый фрикинг 32 05.08.2006 17:06
Коды silveran Сотовый фрикинг 4 18.10.2005 14:37



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ