Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71

Программная передача текстового фрагмента в приложениях Windows

05.11.2006, 02:14. Показов 2292. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как можно средствами VB загнать в буфер текстовый кусок вебстраницы (открытой в IE5.0) и вставить этот текст, например, в блокнот, чтобы затем сохранить в формате *.txt(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2006, 02:14
Ответы с готовыми решениями:

Программная загрузка Номенклатуры из текстового файла в Розницу
Имеется текстовый файл с данными, в следующем формате: Артикул, Наименование товара, Цена, Количество в наличии Как программно уложить...

Добавление фрагмента из текстового файла в Edit
Здравствуйте! Пишу программу для визуального редактирования файла конфигурации другой программы (чтобы люди не парились в ковырянии его...

Передача фрагмента изображения по сети
И так друзья, нужна ваша помощь. Задача вот в чём, есть клиент и сервер, на сервере хранится бмп изображение, клиент же запрашивает...

19
asd
05.11.2006, 03:58
Привет,
тебе нужно использовать объект Clipboard.

Вот пример из MSDN на этот счет:
Visual Basic
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
Private Sub Form_Click ()
   Const CF_TEXT = 1   '' Define bitmap format.
   Dim I, Msg, Temp   '' Declare variables.
   On Error Resume Next   '' Set up error handling.
   Msg = 'Type anything you like into the text box below.'
   Text1.Text = InputBox(Msg)   '' Get text from user.
   Msg = 'Choose OK to copy the contents of the text box '
   Msg = Msg & 'to the Clipboard.'
   MsgBox Msg   '' Display message.
   ClipBoard.Clear   '' Clear Clipboard.
   Clipboard.SetText Text1.Text   '' Put text on Clipboard.
   If Clipboard.GetFormat(CF_TEXT) Then
      Text1.Text = ''   '' Clear the text box.
      Msg = 'The text is now on the Clipboard. Choose OK '
      Msg = Msg & 'to copy the text from the Clipboard back '
      Msg = Msg & 'to the text box.'
      MsgBox Msg   '' Display message.
      Temp = Clipboard.GetText(CF_TEXT)   '' Get Clipboard text.
      For I = Len(Temp) To 1 Step -1   '' Reverse the text.
         Text1.Text = Text1.Text & Mid(Temp, I, 1)   
      Next I
   Else
      Msg = 'There is no text on the Clipboard.'
      MsgBox Msg   '' Display error message.
   End If
End Sub
Обрати внимание на основные методы SetText и GetText
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 04:24  [ТС]
Это все так. Но может я просто немного некорректно объяснил суть проблемы...
Трудности заключаются не в помещении в буфер и вставки из него, а в управлении 'чужими' приложениями. Грубо это можно объяснить так:
у нас открыт IE с вэб-страницей(только текст), причем он не обязательно в фокусе, и все. Необходимо, чтобы при нажатии на кнопку в форме(VB) этот текст перенесся в блокнот(если блокнот не запущен, то он должен запуститься), а затем сохраниться в формате *.txt...
0
asd
05.11.2006, 04:30
Да, теперь более понятно. Для получения кода из запущенного эксплорера можно воспользоваться вот этим

http://vbcity.com/vbcode/ru/code.asp?id=179

затем сохраняешь полученный текст в текстовом файле, например c: empie.txt и выполняешь

Shell 'notepad c: empie.txt'

Этим самым откроется новое окно блокнота с сохраненным файлом.
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 04:33  [ТС]
СпасибО! Сейчас попробуем...
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 04:55  [ТС]
(
Не работает...
в примере на vbcity.com такой текст:
Visual Basic
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
Dim IExp As InternetExplorer 
Dim IEDocument As Object 
Dim IEBody As Object 
Dim IETextRange As Object 
Dim HTMLCode 
 
''Главная процедура
Public Sub ReadHTML
 
''Цикл по всем окнам IE
For Each IExp In ShellWindows
 
''Получить содержимое и определить его тип
Set IEDocument = IExp.Document 
 
If TypeOf IEDocument Is HTMLDocument Then
 
Set IEBody = IEDocument.Body 
Set IETextRange = IEBody.createTextRange() 
HTMLCode = IETextRange.HTMLText ''Текст веб-страницы
 
End If
 
Next 
 
end sub
Но вылетает сообщение об ошибке 424 'Object Required' и ссылается на строку For Each...(((
0
0 / 1 / 3
Регистрация: 27.03.2012
05.11.2006, 04:58
А ты добавил References: Microsoft Internet Controls?
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 05:02  [ТС]
Да, до того как добавил, он ругался на тип InternetExplorer. И еще, как на зло, у меня только первый диск MSDN, а справка по ShellWindows на втором...
0
0 / 1 / 3
Регистрация: 27.03.2012
05.11.2006, 05:55
Исправил! Этот код прислал один зарубежный товарищ и я его добавил неглядя

Все сейчас работает:

http://vbcity.com/vbcode/ru/code.asp?id=179

Обрати внимание, что нужно еще добавить Microsoft HTML Object Library
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 06:22  [ТС]
Огромное спасибо!
Все работает замечательно. Но(вы уж простите меня-зануду) я получил HTML-код(что очень пригодится), а мне требуется именно содержимое страницы, как оно есть на мониторе. И еще вопрос. Я только перехожу на VB6, а в 5-м есть какой-нибудь эквивалент ShellWindows?
0
0 / 1 / 3
Регистрация: 27.03.2012
05.11.2006, 06:27
По-моему этот пример должен работать в пятой версии... А на счет HTML, ты же вроде писал, что тебе нужен текст для текстбокса, т.е. туда только текст и можно поместить без графики. А если нужно получить текст без тэгов, то просто нужно выкидывать весь текст между '<' и '>' или если известна заранее структура страницы попробовать пример http://vbcity.com/vbcode/ru/vb_scr_0.asp
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 06:33  [ТС]
Вся проблема в том, что содержимое вэб-страницы - таблицы. Конечный этог всех этих мучений - корректное отображение этой таблицы в Excel''е. Из Блокнота в Excel я сделал, а вот в блокнот...
0
0 / 1 / 3
Регистрация: 27.03.2012
05.11.2006, 06:39
Так может тебе сразу в Excel делать импорт? Или в Excel открывать прямо html-файл.

Во-вторых, html-таблицу можно разобрать 'по косточкам' <tr> - это новая строка, <td> - новый столбец в этой строке. Данные между ними - это данные для определенных ячеек.
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 06:48  [ТС]
Разобрать по косточкам - спасибо, надо попробовать. А каким образом программно открыть файл *.html в Excel? Если же делать copy-paste, то таблицы отображаются некорректно.
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
05.11.2006, 07:16  [ТС]
И тут я вспомнил, что 'по косточкам' не получится... Нужная мне таблица заплняется динамически по линкам из БД. А БД у меня доступа нет...((
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
06.11.2006, 02:17  [ТС]
А как можно сделать, чтобы IE оказался в фокусе и содержимое окна скопировалось бы в буфер?
0
0 / 1 / 3
Регистрация: 27.03.2012
06.11.2006, 02:23
А зачем делать фокус? Приводимый выше пример и без фокуса весь код страницы возвращает.
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
06.11.2006, 02:34  [ТС]
Код страницы - хорошо, но когда я попытался 'разобрать ее по косточкам', обнаружил, что таблица на странице - динамическая, там есть только пустая таблица (точнее, значения всех ячеек=0), и через HTML-код я до данных никак не доберусь.
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
06.11.2006, 21:32  [ТС]
А вообще - как сделать 'Select All' для чужого приложения?
0
0 / 0 / 0
Регистрация: 01.11.2006
Сообщений: 71
08.11.2006, 05:38  [ТС]
Help!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2006, 05:38
Помогаю со студенческими работами здесь

Передача даных с фрагмента к фрагменту!
Вопрос возможно глупый но все ж... Искал в инете но ответ на свой вопрос найти не смог. Есть активность которая является хостом для 2...

Передача объекта из фрагмента в диалог фрагмент
Добрый день, подскажите пожалуйста оптимальный способ передачи объекта из фрагмента в DialogFragment. Спасибо.

Программная передача значения елементов массива из одной книги Excel в другую
Всем доброе время суток ! Значение елементов массива из одной книги Excel (Книга2) в другую (Книга1) можно передать с помощью объектов...

графика в Windows приложениях
Объясните мне пожалуйста почему на форме при нажатии кнопки button1 не рисуется линия?: using System; using System.Collections.Generic;...

Разработка обучающих курсов в Windows приложениях
Мне нужно разработать обучающий курс в Windows приложении C#....например обучение программированию на языке C#...помогите пожалуйста найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru