Создание пользовательских inputquery/функции messagebox и т. д. без боли.

Создание пользовательских inputquery/функции messagebox и т. д. без боли.


<р класса="step_content ">использование способом, который может выглядеть как взломать можно изменить стандартное сообщение коробки и поменять иконку, изменить, кнопка, размер и т. д.<р класса="step_content ">идея этой игры-создать Пользовательское сообщение, опубликовать в очереди *до* звоню в окне сообщения. В сообщении, вы получить ручку на окно (если это окно messagebox) или формы (если это сайт inputbox/inputquery/messagedlg) и вы измените то, что вы хотите. Позвольте мне привести два примера, один для обычного интерфейса API messagebox и еще с inputquery.<р класса="step_content "> пример1: нужно изменить Заголовок по умолчанию Да/Нет кнопки очередное сообщение.<р класса="step_content "> Тип
В TForm1 = класс(TForm)
для кнопки button1: TButton
в процедуре Button1Click(Отправитель: TObject)
частные
в процедуре WMHackBox(вар сообщения: TMessage) сообщение WM_USER 1025
В конце
...
реализация
и ...
в процедуре TForm1.Button1Click(Отправитель: TObject)
и начинается
// наше Пользовательское сообщение
и метод postmessage(ручки, WM_USER 1025, 0, 0)
с // функции messagebox вызвать
Приложение.Функции messagebox('я" совершенно глупо.', 'Мое_приложение', MB_YESNO или MB_ICONINFORMATION)
В конце <р класса="step_content "> процедура TForm1.WMHackBox(вар сообщения: TMessage)
вар
ч: hwnd элемента
и начинается
// окно сообщения отображается, давайте получить его дескриптор
ч := FindWindow(WC_DIALOG, 'Мое_приложение') <ш /> // если это правильное сообщение, давайте его изменить
если GetParent(ч) = приложения.Затем ручка
и начинается
SetDlgItemText(ч, ID_YES, 'я-согласен') <див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ"> <див класс="блок-внутренний"> <див класс="содержание"> <див класс="блок-дна"> <див класс='embed_block_1'><див>
SetDlgItemText(ч, ID_NO, 'я-не согласен)
В конце
В конце <р класса="step_content "> обратите внимание, что если вы используете MessageDlg, это не обычный интерфейс API функции messagebox, но форма создается динамически с помощью Делфи. См. 2-й пример.<р класса="step_content "> результат - #039<р класса="step_content "> пример 2: Вам нужно изменить изменить свойство InputQuery, например PasswordChar.<р класса="step_content "> Тип
В TForm1 = класс(TForm)
для кнопки button1: TButton
в процедуре Button1Click(Отправитель: TObject)
частные
в процедуре WMHack(вар сообщения: TMessage) сообщение WM_USER 1024
В конце
...
для реализации в
...
константный
В ACaption = 'Заголовок' <р класса="step_content "> процедура TForm1.Button1Click(Отправитель: TObject)
и начинается
метод postmessage(ручки, 1024 WM_USER, 0, 0) и
сайт inputbox(ACaption, 'проворный', 'по умолчанию')
В конце <р класса="step_content "> процедура TForm1.WMHack(сообщение Варе: TMessage)
вар
я: число
и х: число
и начинается
для i := 0 на экране.FormCount-1 делать
если экране.Форм[я].Заголовок = ACaption затем
и начинается
для J := 0 на экране.Форм[я].ControlCount-1 делать
если экране.Форм[я].Управления[Дж] - это поле tedit затем
и начинается
поле tedit(экран.Форм[я].Управления[Дж]).PasswordChar := '#'
В поле tedit(экран.Форм[я].Управления[Дж]).SelectAll
на выходе
В конце
В конце
В конце
результат<дел стиль= \ ясно:оба поплавка:нет'><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная







Создание пользовательских inputquery/функции messagebox и т. д. без боли.


Создание пользовательских inputquery/функции messagebox и т. д. без боли. : Несколько тысяч советов, которые сделают вашу жизнь проще.


<р класса="step_content ">использование способом, который может выглядеть как взломать можно изменить стандартное сообщение коробки и поменять иконку, изменить, кнопка, размер и т. д.<р класса="step_content ">идея этой игры-создать Пользовательское сообщение, опубликовать в очереди *до* звоню в окне сообщения. В сообщении, вы получить ручку на окно (если это окно messagebox) или формы (если это сайт inputbox/inputquery/messagedlg) и вы измените то, что вы хотите. Позвольте мне привести два примера, один для обычного интерфейса API messagebox и еще с inputquery.<р класса="step_content "> пример1: нужно изменить Заголовок по умолчанию Да/Нет кнопки очередное сообщение.<р класса="step_content "> Тип
В TForm1 = класс(TForm)
для кнопки button1: TButton
в процедуре Button1Click(Отправитель: TObject)
частные
в процедуре WMHackBox(вар сообщения: TMessage) сообщение WM_USER 1025
В конце
...
реализация
и ...
в процедуре TForm1.Button1Click(Отправитель: TObject)
и начинается
// наше Пользовательское сообщение
и метод postmessage(ручки, WM_USER 1025, 0, 0)
с // функции messagebox вызвать
Приложение.Функции messagebox('я" совершенно глупо.', 'Мое_приложение', MB_YESNO или MB_ICONINFORMATION)
В конце <р класса="step_content "> процедура TForm1.WMHackBox(вар сообщения: TMessage)
вар
ч: hwnd элемента
и начинается
// окно сообщения отображается, давайте получить его дескриптор
ч := FindWindow(WC_DIALOG, 'Мое_приложение') <ш /> // если это правильное сообщение, давайте его изменить
если GetParent(ч) = приложения.Затем ручка
и начинается
SetDlgItemText(ч, ID_YES, 'я-согласен') <див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ"> <див класс="блок-внутренний"> <див класс="содержание"> <див класс="блок-дна"> <див класс='embed_block_1'><див>
SetDlgItemText(ч, ID_NO, 'я-не согласен)
В конце
В конце <р класса="step_content "> обратите внимание, что если вы используете MessageDlg, это не обычный интерфейс API функции messagebox, но форма создается динамически с помощью Делфи. См. 2-й пример.<р класса="step_content "> результат - #039<р класса="step_content "> пример 2: Вам нужно изменить изменить свойство InputQuery, например PasswordChar.<р класса="step_content "> Тип
В TForm1 = класс(TForm)
для кнопки button1: TButton
в процедуре Button1Click(Отправитель: TObject)
частные
в процедуре WMHack(вар сообщения: TMessage) сообщение WM_USER 1024
В конце
...
для реализации в
...
константный
В ACaption = 'Заголовок' <р класса="step_content "> процедура TForm1.Button1Click(Отправитель: TObject)
и начинается
метод postmessage(ручки, 1024 WM_USER, 0, 0) и
сайт inputbox(ACaption, 'проворный', 'по умолчанию')
В конце <р класса="step_content "> процедура TForm1.WMHack(сообщение Варе: TMessage)
вар
я: число
и х: число
и начинается
для i := 0 на экране.FormCount-1 делать
если экране.Форм[я].Заголовок = ACaption затем
и начинается
для J := 0 на экране.Форм[я].ControlCount-1 делать
если экране.Форм[я].Управления[Дж] - это поле tedit затем
и начинается
поле tedit(экран.Форм[я].Управления[Дж]).PasswordChar := '#'
В поле tedit(экран.Форм[я].Управления[Дж]).SelectAll
на выходе
В конце
В конце
В конце
результат<дел стиль= \ ясно:оба поплавка:нет'><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная

Создание пользовательских inputquery/функции messagebox и т. д. без боли.

Создание пользовательских inputquery/функции messagebox и т. д. без боли. : Несколько тысяч советов, которые сделают вашу жизнь проще.
рекомендовать друзьям
  • gplus
  • pinterest

Комментарий

Оставить комментарий

Оценивать