Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 09.03.2008, 11:02   #1
Altera
Одинокий кодер
Профессионал
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
Репутация: 675

skype: ak_altera
По умолчанию Caption кнопки ПУСК (START) - изменить надпись на кнопке Пуск в Windows XP

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

icq: 7181435
По умолчанию

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

skype: ak_altera
По умолчанию

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

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

Пользуйтесь поиском, тема уже была. Изменение надписи в 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, 13:13   #6
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Адрес: Химки
Сообщений: 13,458
Репутация: 2719
По умолчанию

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

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

skype: ak_altera
По умолчанию

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

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

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

Цитата:
Сообщение от 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 в 16:19.
mihali4 вне форума   Ответить с цитированием
Старый 09.03.2008, 16:24   #10
Altera
Одинокий кодер
Профессионал
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
Репутация: 675

skype: ak_altera
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

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


10:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru