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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2008, 10:02   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию Caption кнопки ПУСК (START) - изменить надпись на кнопке Пуск в Windows XP

Как мне програмно поменять надпись на кнопке ПУСК(START)?
Спасибо!
Altera вне форума Ответить с цитированием
Старый 09.03.2008, 10:05   #2
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию

кнопка "Пуск" - это картинка, а не надпись, и изменить ее можно только поменяв картинку. А это провернуть можно только в Win9x
andrey4623 вне форума Ответить с цитированием
Старый 09.03.2008, 10:17   #3
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Я видел прогу, где на кнопку пуск ставилась любая падпись!
Altera вне форума Ответить с цитированием
Старый 09.03.2008, 10:35   #4
Fainder
Участник клуба
 
Регистрация: 15.02.2007
Сообщений: 1,112
По умолчанию

Действительно, в 9х-овых виндах надпись на кнопке пуск была изменяемой, но уже в ХР этого нет, а в висте на этой кнопке вообще нет никакой надписи
Fainder вне форума Ответить с цитированием
Старый 09.03.2008, 11:07   #5
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Пользуйтесь поиском, тема уже была. Изменение надписи в XP:
Код:
var  
  but: hwnd;   
  ff: string;   
begin  
  ff:='Лажа'; //Надпись на кнопке   
  but:=FindWindowEx(FindWindow('shell_traywnd',nil),0,'button',nil);   
  MoveWindow(but,0,0,50,22,true); //Размеры кнопки   
  SendMessage(but,wm_settext,0,lparam(ff)); //Изменить надпись   
end;
_Dmitry вне форума Ответить с цитированием
Старый 09.03.2008, 12:13   #6
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

_Dmitry, после перезагрузки, надпись становится стандартной - "Пуск"
Alar вне форума Ответить с цитированием
Старый 09.03.2008, 12:34   #7
Романнн
Пользователь
 
Регистрация: 04.11.2007
Сообщений: 64
По умолчанию

кидай прогу в автозапуск....легче всего по-моему...
Романнн вне форума Ответить с цитированием
Старый 09.03.2008, 14:16   #8
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Мне кажется надпись "ПУСК" храниться в %SystemRoot%\system32\SHELL32.dll, но ссылка на надпись седит в реестре...
Как имя корзины...
Цитата:
Изменяет имя корзины. Обновите рабочий стол, чтобы изменения вступили в силу.

HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}

STRING по умолчанию, значение - имя корзины
STRING LocalizedString, значение - имя корзины
Строка "Карзина" храниться в shell32, а ссылка на неё в реестре...
Я переименовывал корзину!
Altera вне форума Ответить с цитированием
Старый 09.03.2008, 14:34   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от andrey4623 Посмотреть сообщение
кнопка "Пуск" - это картинка, а не надпись, и изменить ее можно только поменяв картинку. А это провернуть можно только в Win9x
Ну, это вы явно погорячились.

Специально для ALTERA:
1. Объявите глобальную переменную COUNTER.
2. Бросьте на форму таймер и задайте интервал, например, 200.
3. Используйте такой код:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var d:integer;
     st,ff:string;
     but:HWND;
begin
st:='    ALTERA    ';
but:=FindWindowEx(FindWindow ('Shell_TrayWnd',nil),0,'Button',nil);
if (counter+4)<length(st) then
counter:=counter+1 else
counter:=0;
ff:='';
setlength(ff,5);
for d:=0 to 4 do
ff[d]:=st[counter+d];
SendMessage(but,WM_SETTEXT,0, lparam(ff));
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var but:HWND;
    ff: string;
begin
ff:='';
setlength(ff,5);
ff:='Пуск';
but:=FindWindowEx(FindWindow ('Shell_TrayWnd',nil),0,'Button',nil);
SendMessage(but,WM_SETTEXT,0, lparam(ff));
end;
Надеюсь, эта старая штука вас устроит больше, чем простое изменение надписи...

Кстати, вот еще один простенький фокус с кнопкой ПУСК:
MoveWindow(FindWindowEx(FindWindow( 'Shell_TrayWnd', nil), 0, 'Button', nil), 0, 0{LEFT}, 54{WIDTH}, 22, true);
Изменяя параметры LEFT и WIDTH можете установить ширину кнопки и ее расположение на панели задач.

Последний раз редактировалось mihali4; 09.03.2008 в 15:19.
mihali4 вне форума Ответить с цитированием
Старый 09.03.2008, 15:24   #10
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Да действительно! Прикольная штука!
Altera вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопка пуск Черничный Общие вопросы Delphi 2 07.08.2008 08:30
Пуск Rahim1993 Общие вопросы Delphi 4 10.02.2008 20:14
Кнопка Пуск vitalik007 Win Api 9 05.09.2007 08:20
аналог меню пуск RammFan Общие вопросы Delphi 14 27.02.2007 08:49