ПУСК>SAVE

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
sad
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 18.12.2004 (Сб) 15:31
Откуда: тольятти

ПУСК>SAVE

Сообщение sad » 20.12.2004 (Пн) 15:33

Как изменить текст на кнопке ПУСК :!: и можно ли его(ТЕКСТ) сохранить так чтобы он там остался НА ВСЕГДА
FOREVER!!!!!! :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.12.2004 (Пн) 17:04

Раньше можно было изменить содержимое user32 с этой целью... Теперь же винда засекает модификацию себя любимой...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 21.12.2004 (Вт) 2:41

Прогу на автозагрузке которая делает SetWindowText.
الفيجوال بيسك الرابح

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 21.12.2004 (Вт) 11:31

GM писал(а):Прогу на автозагрузке которая делает SetWindowText.



ТОже вариант, но еще нужно хендл пуска получить пере этим

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.12.2004 (Вт) 14:42

Ramzes писал(а):ТОже вариант, но еще нужно хендл пуска получить пере этим

А с этим-то какие проблемы?
Изображение

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 21.12.2004 (Вт) 19:28

Кстати, а разве это катит не только под XP? :roll:
Код: Выделить всё
Option Explicit

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Sub Form_Load()
Dim Wnd&
Wnd = FindWindowEx(FindWindow("Shell_TrayWnd", vbNullString), ByVal 0&, "BUTTON", vbNullString)
SetWindowText Wnd, "стоп"
ShowWindow Wnd, 0
ShowWindow Wnd, 1
DoEvents
End Sub
А то я абсолютно идентичный код запускал в 2k, и ничего :roll: Я подумал, что там на кнопке - картинка :roll:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.12.2004 (Вт) 19:32

Это катит везде, но только если не насажали батонов в таскбар ещё :)

Правильный способ - через getdlgitem. У тр... эээ... у notification area :), например, ID &H12F.
Несложно позырить, какой ID у Пуска... &H130 у него ID :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 21.12.2004 (Вт) 19:34

Э-э-э... :) А поподробнее мона? :roll:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.12.2004 (Вт) 19:35

Неужели забыл тему про часики в трее??? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 21.12.2004 (Вт) 19:37

А, понял :) Вот куда ID пихать-то :)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 21.12.2004 (Вт) 19:41

Тогда так:
Код: Выделить всё
Option Explicit

Private Declare Function GetDlgItem Lib "user32.dll" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Private Sub Form_Load()
Dim Wnd&
Wnd = GetDlgItem(FindWindow("Shell_TrayWnd", vbNullString), &H130)
SetWindowText Wnd, "стоп"
ShowWindow Wnd, 0
ShowWindow Wnd, 1
DoEvents
End Sub

ism
Постоялец
Постоялец
 
Сообщения: 337
Зарегистрирован: 12.12.2001 (Ср) 12:59
Откуда: Russia, Saint-Petersburg

Сообщение ism » 26.12.2004 (Вс) 21:48

А если текст не "стоп", а "СТОП!!!!" или еще длиннее?

Код: Выделить всё
Option Explicit

Private Declare Function GetDlgItem Lib "user32.dll" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Sub Form_Load()
Dim Wnd&
Dim BtnRect As RECT
Wnd = GetDlgItem(FindWindow("Shell_TrayWnd", vbNullString), &H130)
GetWindowRect Wnd, BtnRect
MoveWindow Wnd, 0, 0, BtnRect.Right - BtnRect.Left + 20, BtnRect.Bottom - BtnRect.Top, True
SetWindowText Wnd, "СТОП!!!!!"
ShowWindow Wnd, 0
ShowWindow Wnd, 1
DoEvents
End Sub

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 26.12.2004 (Вс) 22:34

А ещё лучше вот так:

Код: Выделить всё
Option Explicit

Private Declare Function GetDlgItem Lib "user32.dll" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Sub Form_Load()
Dim Wnd&
Const wText As String = "Ñòîï!!!"
Dim BtnRect As RECT
Wnd = GetDlgItem(FindWindow("Shell_TrayWnd", vbNullString), &H130)
GetWindowRect Wnd, BtnRect
MoveWindow Wnd, 0, 0, TextWidth(wText) / 16 + 32, BtnRect.Bottom - BtnRect.Top, True
SetWindowText Wnd, wText
ShowWindow Wnd, 0
ShowWindow Wnd, 1
DoEvents
End Sub


;-)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 6

    TopList