Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Edit 4 — Выделить всё... (http://forum.oszone.net/showthread.php?t=177804)

semiono 10-06-2010 04:11 1431215

Edit 4 — Выделить всё...
 

Как мне выделить текст в поле Edit 4 ? Двойным кликом нельзя так как символ '-' мешает.


Мне выделенный текст нужно скопировать в память и вставить потом кнопкой "Paste" в другом окне,
здесь для меня тоже сложность, так как переменную $var на кнопку "Paste" ведь не положишь. А как тогда?

FlatX007 10-06-2010 07:14 1431232

Цитата:

Цитата semiono
Как мне выделить текст в поле Edit 4 ? »

- Симулировать комбинацию клавиш Ctrl + A ??

madmasles 10-06-2010 08:04 1431247

semiono,
Выделить можно так:
Код:

#include <GuiEdit.au3>

$handle = ControlGetHandle($sTitle, "", "Edit4")
_GUICtrlEdit_SetSel($handle, 0, 32)

Но, ИМХО, лучше сделать так:
Код:

$sSerial = ControlGetText($sTitle, '', '[CLASS:Edit; INSTANCE:4]')
ClipPut($sSerial)

А потом активируйте второе окно и кликайте по кнопке "Paste".

ArPi 10-06-2010 12:33 1431447

подскажите, пожалуйста, а как сделать чтобы по нажаитю некой ctrlbutton в GUI AutoIT строка хранящая в данный момент в буфере обмена вида "^A0^B№ 4452/3^C20100430^Dуч. аб.^H6645000420829^X" была преобразована в соотвествующими правилами

1)в части строки "^B№ 4452/3" номер после "/" необходимо увеличить на единицу.
2) часть строки после "^H", а точнее 13 символов, необходимо удалить.

таким образом должна получиться строка вида "^A0^B№ 4452/4^C20100430^Dуч. аб.^H^X"
а ее нужно занести обратно в буфер обмена.

madmasles 10-06-2010 16:33 1431599

ArPi,
Попробуйте так. Наверное, с помощью регулярных выражений это можно сделать изящнее.
Код:

;$sString = ClipGet() ;вернуть строку из буфера
$sString = '"^A0^B№ 4452/3^C20100430^Dуч. аб.^H6645000420829^X"'
$sNewString = StringLeft(StringReplace($sString, StringMid($sString, StringInStr($sString, '/') + 1, 1), _
        StringMid($sString, StringInStr($sString, '/') + 1, 1) + 1, 1), _
        StringInStr($sString, '.', 0, -1) + 2) & '^X"'
;ClipPut($sNewString) ;записать новую строку в буфер
MsgBox(0, "", $sNewString)


semiono 10-06-2010 19:59 1431712

madmasles, Вы мне реально помогли, работает! :)


Время: 11:22.

Время: 11:22.
© OSzone.net 2001-