Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программное заполнение текстового поля другой программы

408
18 января 2006 года
Lei fang
265 / / 01.10.2005
Всем привет!
Кто-нибудь знает как можно программно скопировать текст из текстового поля в моей программе в текстовое поле другой программы?
7.9K
18 января 2006 года
ip027
55 / / 20.12.2005
Цитата:
Originally posted by Lei fang
Всем привет!
Кто-нибудь знает как можно программно скопировать текст из текстового поля в моей программе в текстовое поле другой программы?


Вот если бы обе программы были твои тогда можно:

Небольшой пример использования DDE. DDE - это механизм для обмена данными между приложениями.
Создайте 2 проекта (с именами "Project1" и "Project2"). В первом проекте у формы установить свойства LinkTopic="SYSTEM" и LinkMode=1. Добавьте на форму Label и установите свойство LinkItem="DDE".
Во втором проекте добавьте TextBox и CommandButon (имена не изменяйте).
Добавьте в проекты расположенный ниже код.
Запустите первый проект (сервер DDE), затем второй (клиент DDE). Нажмите на кнопку - в TextBox на форме первого проекта появится строка, переданная из второго проекта.


'Код первого проекта

Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
MsgBox "Received " & CmdStr, vbInformation
Cancel = False
End Sub


'Код второго проекта

Private Sub Command1_Click()
Text1.LinkMode = vbLinkNone
Text1.LinkTopic = "Project1|SYSTEM"
Text1.LinkItem = "DDE"
Text1.LinkMode = vbLinkManual
Text1.LinkExecute "Hello World"
End Sub


а вот с другой програмой незнаю..

408
19 января 2006 года
Lei fang
265 / / 01.10.2005
Спасибо ip027!
Это очень полезная для меня информация. Теперь буду знать.
Однако мне нужно копировать содержимое текстового поля в чужую программу. Ведь с помощью API можно скопировать содержимое текстового поля чужой программы, думаю как-то можно и наоборот сделать.
7.9K
19 января 2006 года
ip027
55 / / 20.12.2005
попробуй покопаться тут:
http://visualbasic.km.ru/downloads/windows.html
может чнонибудь есть, сам не смотрел
408
19 января 2006 года
Lei fang
265 / / 01.10.2005
Спасибо, посмотрю там
408
19 января 2006 года
Lei fang
265 / / 01.10.2005
Конечно, полезные вещи там есть, но ничего того из чего я мог был извлечь решение моей проблемы я там не нашел. Жаль
534
19 января 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by Lei fang
Конечно, полезные вещи там есть, но ничего того из чего я мог был извлечь решение моей проблемы я там не нашел. Жаль


Я бы на твоём месте попробовал WinAPI:

Делаем необходимые декларации:
Declare Function FindWindowA Lib "user32" (ByVal ClassName As String, ByVal WindowName As String) As Long
Declare Function FindWindowExA Lib "user32" (ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal Name As String, ByVal Class As String) As Long
Declare Function SetWindowTextA Lib "user32" (ByVal hwnd As Long, ByVal lpString As String) As Long
Declare Function GetWindowTextA Lib "user32"(ByVal hwnd As Long, ByVal Text As String, ByVal cch As Long) As Long

И, непосредственно код:

Dim hwndWnd as Long
Dim hwndTextBox as Long
hwndWnd = FindWindowA("<Имя окошка, содержащего текстбокс>", vbNull)
hwndTextBox = FindWindowExA(hwndWnd, 0, "Имя тектбокса", vbNull)

Dim str as String * 255
GetWindowTextA <ТвойТексбокс>.hWnd, str, 255
SetWindowsTextA hwndTextBox, str

Всё! По крайней мере, в шестом Бейсике это работает. Имя основного окна - это его заголовок, а имя текстбокса обычно совпадает с текстом, написанным в нём.

408
20 января 2006 года
Lei fang
265 / / 01.10.2005
Спасибо! То что нужно!
7.9K
20 января 2006 года
ip027
55 / / 20.12.2005
Цитата:
Originally posted by HarryAxe
..............
GetWindowTextA <ТвойТексбокс>.hWnd, str, 255
SetWindowsTextA hwndTextBox, str
...............



кстати, да, гдето я такой код уже встречал...

7.9K
25 января 2006 года
ip027
55 / / 20.12.2005
вот еще наткнулся, может интересно будет:
http://www.dotfix.net/module.php?module=@6e786b366a6a70736a6a5f6d725e6c646268676227
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог