Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Получить выделенный текст другого приложения Добавлено: 30.01.05 10:57  

Автор вопроса:  Alexander N | Web-сайт: sasha.samogon.info
Как получить выделенный текст другого приложения? Или получить текст другого приложения, над которым висит курсор мыши.

Ответить

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

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 30.01.05 11:58
EM_GETSELTEXT

Ответить

Номер ответа: 2
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #2 Добавлено: 30.01.05 12:32
Option Explicit
    Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
    Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
    Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Const EM_GETSEL As Long = &HB0


Private Sub Command1_Click()
    ;Dim hWin As Long
    ;Dim hChildWin As Long
    ;Dim NameLen As Long
    ;Dim sBuffer As String
    sBuffer = String$(256, 0)
    hWin = FindWindow(vbNullString, "Form1";)
    'hWin = GetForegroundWindow
    ;Do
        hChildWin = FindWindowEx(hWin, hChildWin, vbNullString, vbNullString)
        NameLen = GetClassName(hChildWin, sBuffer, 255)
        sBuffer = Left(sBuffer, NameLen)
        If sBuffer = "ThunderRT6TextBox" Then
            NameLen = GetWindowText(hChildWin, sBuffer, 255)
            sBuffer = Left(sBuffer, NameLen)
            NameLen = SendMessage(hChildWin, EM_GETSEL, 0, 0&;)
            MsgBox Mid(sBuffer, CInt(NameLen And &HFFFF&;) + 1, CInt(NameLen / &H10000) - CInt(NameLen And &HFFFF&;))
        End If
    Loop While hChildWin <> 0
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #3
Добавлено: 30.01.05 16:29
Например, как мне применить к выделенному в ворде текст?

Ответить

Номер ответа: 4
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #4 Добавлено: 30.01.05 17:39
С Word’ом наверное лучше работать средствами VBA.

Ответить

Номер ответа: 5
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #5
Добавлено: 02.02.05 19:53
Ну хорошо, а еси не известен заголовок окна и, что за компонент содержит выделенный текст. Что тогда?

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #6 Добавлено: 03.02.05 10:41
А это смотря как запускать этот ворд :)

Option Explicit
Dim MyWord As Word.Application
Dim MyDoc As Word.Document

Private Sub Command1_Click()
Text1.Text = MyDoc.ActiveWindow.Selection
End Sub

Private Sub Form_Load()
Set MyWord = New Word.Application
Set MyDoc = Word.Documents.Open("e:\1.doc";)
MyWord.Visible = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
MyDoc.Close
MyWord.Quit
Set MyDoc = Nothing
Set MyWord = Nothing
End Sub

Ответить

Номер ответа: 7
Автор ответа:
 Alexander N



Вопросов: 21
Ответов: 44
 Web-сайт: sasha.samogon.info
 Профиль | | #7
Добавлено: 03.02.05 12:32
Ясно, а если не ворд, а нечто самопальное?

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 03.02.05 12:57
Ну тогда ты, очевидно, хотя бы должен знать "заголовок окна и, что за компонент содержит выделенный текст", т.е., собственно, знать чего именно ты хочешь.

Ответить

Страница: 1 |

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



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