Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
WinAPI SetWindowText
|
|||
|---|---|---|---|
|
#18+
привествую, не подскажите почему у меня не отрабатывает функция SetWindowText, после того как нашел Handle, пытаюсь поменять текст, но он выводит не понятные символы вместо "TEst", есть какая-нибудь особенность? Что я делаю не так, подскажите? Dim HandleWin As Long Dim TextCaption As String Dim j As Long ' return value TextCaption = "Выбрать значения переменных" HandleWin = FindWindow(vbNullString, TextCaption) If HandleWin <> 0 Then j = SetWindowText(HandleWin, "Test") End If Counter = Counter + 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 16:10 |
|
||
|
WinAPI SetWindowText
|
|||
|---|---|---|---|
|
#18+
evansl, описания функций через Declare показывайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2010, 18:09 |
|
||
|
WinAPI SetWindowText
|
|||
|---|---|---|---|
|
#18+
13-й кварталevansl, описания функций через Declare показывайте. 13-й квартал, вот код, подскажите пожалуйста что делаю не так ... в названии окно так и выводятся не читаемые символы, а я хочу чтобы был текст "Test". 'Функции работы с таймером Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, _ ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long 'Поиск окна Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long ''''''''''''''' Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent _ As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, _ ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Declare Function SendMessageS Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Declare Function FindWindowX Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, ByVal lpsz1 As Long, ByVal lpsz2 As Long) As Long Declare Function SetWindowText Lib "user32" Alias "SetWindowTextW" _ (ByVal hwnd As Long, lpString As Any) As Long Public Const WM_GETTEXT = &HD ''''''''''''''''' Public Counter As Long Public IdEv As Long Public Sub HowManyProc(ByVal HandleW As Long, ByVal msg As Long, _ ByVal idEvent As Long, ByVal TimeSys As Long) Dim HandleWin As Long Dim TextCaption As String Dim retval As Long ' return value TextCaption = "Выбрать значения перменных" HandleWin = FindWindow(vbNullString, TextCaption) If HandleWin <> 0 Then retval = SetWindowText(HandleWin, "Test") Debug.Print "Найден Handle окна: " & HandleWin End If Counter = Counter + 1 Debug.Print "Hi", Counter End Sub Public Sub Start() 'Создан таймер, вызывая Win32 Api функцию SetTimer Counter = 0 IdEv = SetTimer(0&, 0&, 1000, AddressOf HowManyProc) If IdEv = 0 Then MsgBox ("Не удалось создать таймер!") Else Debug.Print "Создан таймер: Идентификатор = ", IdEv End If End Sub Public Sub Finish() 'Удаляет таймер If IdEv > 0 Then Call KillTimer(0&, IdEv) Debug.Print "Удален таймер: Идентификатор = ", IdEv IdEv = 0 End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2010, 10:20 |
|
||
|
WinAPI SetWindowText
|
|||
|---|---|---|---|
|
#18+
evansl, при таком описании (не совсем логичном, так как 1) все остальные функции описаны ANSI-шные, с суффиксом A, 2) второй параметр строковый, не понятно, зачем он описан As Any) вызов должен выглядеть как retval = SetWindowText(HandleWin, ByVal StrPtr("Test")). Если б функция была (классически) описана как Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long, вызов бы работал без изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2010, 13:13 |
|
||
|
WinAPI SetWindowText
|
|||
|---|---|---|---|
|
#18+
13-й кварталevansl, при таком описании (не совсем логичном, так как 1) все остальные функции описаны ANSI-шные, с суффиксом A, 2) второй параметр строковый, не понятно, зачем он описан As Any) вызов должен выглядеть как retval = SetWindowText(HandleWin, ByVal StrPtr("Test")). Если б функция была (классически) описана как Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long, вызов бы работал без изменений. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2010, 15:16 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36766330&tid=2159541]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 117ms |

| 0 / 0 |
