powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / комбобокс по феншую
8 сообщений из 58, страница 3 из 3
комбобокс по феншую
    #37499043
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBka,

а получить координаты букв в текстбоксе ты можешь? если да, то координаты каретки будут равно координате последней буквы + пара твипов. если нет, то у тебя новый тупик - узнать, до куда произвести выделение.
поэтому можно попробовать 3 вариант:
Код: plaintext
1.
2.
3.
4.
'фокус на текстбокс
'сендкейс енд
'зажать ктрл
'сендкейс стрелочка влево столько раз, сколько букв до нужного места
'отпустить ктрл
примерно так
...
Рейтинг: 0 / 0
комбобокс по феншую
    #37499074
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорь, не ктрл, а шифт
и правильней это будет выглядеть так
Код: plaintext
1.
2.
3.
4.
'фокус на текстбокс
'сендкейс енд
'for х = 1 to количество букв до места остановки
'сендкейс шифт+стрелка влево
'next х
...
Рейтинг: 0 / 0
комбобокс по феншую
    #37499091
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
)
11500577

Код: plaintext
1.
2.
For i = Len(RsVSF( 0 )) To Len(InText) +  1  Step - 1 '  А вот этот корявый кусок
       SendKeys("+{Left}")  
Next 
...
Рейтинг: 0 / 0
комбобокс по феншую
    #37499102
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может как-то так:
Переводим курсор в конец текста Text1.SelStart = Len(Text1)
Затем удерживаем шифт в нажатом состоянии (не знаю, как сделать)
Переводим курсор в нужную позицию Text1.SelStart = Len(InText1)
Затем отпускаем шифт (не знаю, как сделать)
...
Рейтинг: 0 / 0
комбобокс по феншую
    #37499107
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBka,

хм)) сорь, упустил из виду. эмитация нажатий клавиш мыши врят ли превзойдёт сендкейс. если нет специальных функций для выделения с конца текста, то сендкейс остаётся лучшим вариантом. мб кто-нить что-нить ещё подскажет)
...
Рейтинг: 0 / 0
комбобокс по феншую
    #37499160
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну имитацию зажимания шифта нашел :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Private Type KEYBDINPUT ' событие клавиатуры
  wVk As Integer
  wScan As Integer
  dwFlags As Long
  time As Long
  dwExtraInfo As Long
End Type

Private Type INPUT_TYPE ' событие ввода
  dwType As Long
  xi( 0  To  23 ) As Byte
End Type

Const INPUT_KEYBOARD =  1     ' константа определяет ввод с клавиатуры
Const VK_SHIFT = &H10       ' код клавиши SHIFT

Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As INPUT_TYPE, ByVal cbSize As Long) As Long
   
Sub setShift(ShiftState As Boolean)
Dim Inp As INPUT_TYPE
Dim xxi As KEYBDINPUT
Inp.dwType = INPUT_KEYBOARD '   имитировать ввод с клавиатуры
xxi.wVk = VK_SHIFT      '   код клавиши SHIFT
xxi.wScan =  0            '   сканкод - не нужен
xxi.dwExtraInfo =  0      '   экстраинформация - не нужна
xxi.time =  0             '   время - не нужно
If (ShiftState) Then    '
    xxi.dwFlags =  0      ' Нажатие клавиши
Else
    xxi.dwFlags =  2      ' Отпускание клавиши
End If

CopyMemory Inp.xi( 0 ), xxi, Len(xxi) ' копировать структуру xxi в массив байт Inp.xi
SendInput  1 , Inp, Len(Inp) ' WinApi функция поссылки keystrokes, mouse motions, и button clicks
'Спасибо Paul Kuliniewicz
End Sub

Вызывать:

Код: plaintext
1.
2.
setShift (True) ' зажимаем
setShift (False) ' отпускаем

Но почему-то не выделяет (((
...
Рейтинг: 0 / 0
комбобокс по феншую
    #37499664
Фотография BelowZero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBka,

а чем плох этот код? разве это не решение поставленной задачи? 11503864
...
Рейтинг: 0 / 0
комбобокс по феншую
    #37499895
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решает, но хотелось бы по феншую ;)
...
Рейтинг: 0 / 0
8 сообщений из 58, страница 3 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / комбобокс по феншую
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]