keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(ord('V'),0,0,0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(ord('V'), 0, KEYEVENTF_KEYUP, 0);
Вставить текст в ЛЮБОЙ контрол
1. Вставить текст
2. Программно нажать Ctrl+V (или типа того)
Контрол просто из веб-страницы, хэндла найти не могу
А использовать Clipboard. Для вставки используй Компонент.PasteFromClipboard;
1. я предполагаю, что текст в буфер ты знаешь как поместить;
2. помещаешь куда надо курсор, т.е. над полем, в которое надо вставить текст;
3. кликаешь мышкой, это я уже объяснял как сделать;
4. вставляешь текст так:
Код:
А если просто любой текст (а не из буфера, он уже используется)??? Заранее спасибо.
сначала получаешь то что там было потом модифицируешь эту строку и устанавливаваешь текст
[quote=B.G.]А если просто любой текст (а не из буфера, он уже используется)???[/quote]
вот здесь могут возникнуть определенные сложности. приведу примерчик:
1. вводим текст на русском
Код:
var s:string;
i:word;
hk:HKL;
..............
s:='привет';
hk:=LoadKeyBoardLayout(PChar('00000419'),KLF_ACTIVATE);
for i:=1 to length(s) do
begin
keybd_event(VkKeyScanEx(s,hk),0,0,0);
keybd_event(VkKeyScanEx(s,hk), 0, KEYEVENTF_KEYUP, 0);
end;
i:word;
hk:HKL;
..............
s:='привет';
hk:=LoadKeyBoardLayout(PChar('00000419'),KLF_ACTIVATE);
for i:=1 to length(s) do
begin
keybd_event(VkKeyScanEx(s,hk),0,0,0);
keybd_event(VkKeyScanEx(s,hk), 0, KEYEVENTF_KEYUP, 0);
end;
2. вводим текст на инглише
Код:
var s:string;
i:word;
hk:HKL;
..............
s:='hello';
hk:=LoadKeyBoardLayout(PChar('00000409'),KLF_ACTIVATE);
for i:=1 to length(s) do
begin
keybd_event(VkKeyScanEx(s,hk),0,0,0);
keybd_event(VkKeyScanEx(s,hk), 0, KEYEVENTF_KEYUP, 0);
end;
i:word;
hk:HKL;
..............
s:='hello';
hk:=LoadKeyBoardLayout(PChar('00000409'),KLF_ACTIVATE);
for i:=1 to length(s) do
begin
keybd_event(VkKeyScanEx(s,hk),0,0,0);
keybd_event(VkKeyScanEx(s,hk), 0, KEYEVENTF_KEYUP, 0);
end;
как видишь приходится еще с раскладкой разбираться, потому что если ты хочешь ввести текст на русском, а в приложении инглиш, то ничего из этого не выйдет либо вообще ничего не введешь либо что-то не то будет виднется. может можно проще, но я попроще способа не знаю. кстати в приведенном мной примере не всегда удастся ввести русский текст, например в опере не прошло это(можно попробовать еще один способ смены раскладки, но он вроде сведется в итоге к этому). так что может все-таки лучше будет использовать буфер(хотя можно эмулировать нажатие ctrl+shift или alt+shift).
2 ahilles
[quote=ahilles]ну тогда через Get/SetwindowText
сначала получаешь то что там было потом модифицируешь эту строку и устанавливаваешь текст[/quote]
а ты предыдущие посты и вопросы читаешь? ну-ка попробуй с помощью SetWindowText записать текст в Edit справочника функций на этом форуме. в SetWindowText первый параметр хендл Edit'а должен быть, а ты сможешь его найти(что элементы хтмл[точно не знаю как называются] тоже окна?)? если сможешь и примерчик дашь(прожку напишешь), который(ая) это все делает(но обязательно через SetWindowText и код будет короче того, что я привел) я тебе даже отзыв положительный влеплю:).
А никак нельзя добраться к Браузеру, как к объекту и работать с его компонлентами??? что-то типа ObjExplorer.document.getElementbyID('someID').value???
Можно. Смотри здесь
http://delphi.about.com/od/adptips2006/qt/wb_execscript.htm
Таким образом можна исполнить любой жава-скрипт, тоесть с помощью жава-скриптов можно менять содержимое хтмл-страницы. Но они (жава-скрипты) должны быть включены у пользователя.