Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: SendKeys? Или нет... Добавлено: 14.11.02 15:58  

Автор вопроса:  Enstain
Здравствуй, ALL!
У меня к Вам всем вопрос. Я задавал его пару раз на разных форумах... Результаты пока отрицательные.
Итак, делаем программу, которая:
 1) Открывает Блокнот (или аналогичный текстовый редактор);
 2) И програмно набирает в его окне текст (не "вставляет" блок текста целиком  а именно набирает, якобы его вводят с клавиатуры);
 3) Сохраняет файл и
 4) програмно закрывает Блокнот.
С последним пунктом я справляюсь сам, но вот как осуществить №1-3 я не знаю.
Максимум, чего я добился это то, что существует некая функция "SendKeys", но как ею пользоватся никто вразумительно не ответил.
Спасибо за вниманиме. У меня все.
Enstain
(enstain@yandex.ru)

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 14.11.02 16:06

1) Shell "notepad.exe", vbNormalFocus

2) Вставляешь все в таймер и цикле перебираешь все буквы строки текста

SendKeys "текущий символ". Конец абзаца вставляеться через SendKeys "{ENTER}", табуляция SendKeys "{TAB}" и т.д.

3) Тут уже сожнее... Я бы его просто закрывал. Да хоть через АльтФ4. И слеедом пробел на кнопку да и ентер на диалог сохранения.

Ответить

Номер ответа: 2
Автор ответа:
 Enstain



Вопросов: 6
Ответов: 6
 Профиль | | #2 Добавлено: 14.11.02 17:38
А можно более подробно насчет перебора букв?
У меня почему-то не выходит цикл.
Если не сложно, пришлите пошаговую инструкцию.
 

Ответить

Номер ответа: 3
Автор ответа:
 SeMa



ICQ: 166433794 

Вопросов: 9
Ответов: 143
 Профиль | | #3 Добавлено: 18.11.02 10:53

Dim textstring As String
Dim strpos As Integer
Private Sub command1_click()
'Переключи раскладку клавиатуры в ВБ на енглиш когда запускаш
textstring = "Набор текста" + Chr(13) + "С новой строки"
Shell "notepad.exe", vbNormalFocus
AppActivate "Безымянный- Блокнот", False
Timer1.Interval = 60
strpos = 1
End Sub

Private Sub Timer1_Timer()
SendKeys Mid(textstring, strpos, 1)
strpos = strpos + 1
If strpos - 1 = Len(textstring) Then Timer1.Interval = 0
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 ГАТ



Вопросов: 2
Ответов: 117
 Web-сайт: www.mail.ru
 Профиль | | #4
Добавлено: 19.11.02 04:54

На Счет Таймера я не понял. Зачем тормоз включать?
Попробуй так:

Dim sText As String
sText = .....
SendOneChar sText, 1

Private Sub SendOneChar(ByRef sText As String, ByVal nPos As Long)
If nPos > VBA.Len(sText) Then Exit Sub
SendKeys VBA.Mid$(sText, nPos, 1)
SendOneChar sText, nPos +1
End Sub

 

Ответить

Номер ответа: 5
Автор ответа:
 ГАТ



Вопросов: 2
Ответов: 117
 Web-сайт: www.mail.ru
 Профиль | | #5
Добавлено: 19.11.02 05:07
Я извиняюсь, по условиям задачи, видимо, как раз тормоз-то и придется включать.

Ответить

Номер ответа: 6
Автор ответа:
 CaS



ICQ: 165551179 

Вопросов: 10
Ответов: 124
 Web-сайт: www22.brinkster.com/casperz
 Профиль | | #6
Добавлено: 22.11.02 21:12

Если тебе в блокнот надо нибарать только для эффекта, то можно текст сразу сохранить в файл из Васика:

Имеем переменную tText с текстом

open "Файл" for output as #1

print #1,tText

close #1

res=Shell("C:\windows\notepad.exe",vbNormalFocus)

appactivate res

for i=1 to len(tText)

sendkeys mid(tText,i,1)

next

А потом просто закрываешь

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам