Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Auslesen eines Inhaltes einer anderen Applikation
#1
Guten Tag liebe Experten

Ich habe folgenden interessanten Code gefunden und nun frage ich mich, ob das auch im Excel VBA gehen könnte? Noch scheitert es am SystemFocusClass? Vielen Dank für jeden Hinweis.
Gruss
Stefan1


Code:
'zusätzliche Deklarationen
Private Declare Function SendMessage Lib "user32.dll" _
  Alias "SendMessageA" ( _
  ByVal hwnd As Long, _
  ByVal wMsg As Long, _
  ByVal wParam As Long, _
  lParam As Any) As Long
 
Private Const EM_GETSEL As Long = &HB0
Private Const WM_GETTEXT As Long = &HD

Public Sub test()

Dim nSelStart As Long
Dim nSelEnd As Long
Dim sText As String
 
If InStr(1, SystemFocusClass, "textbox", vbTextCompare) > 0 Or SystemFocusClass.Text = "Edit" Then
  On Error Resume Next
  Call SendMessage(SystemFocusHwnd, EM_GETSEL, VarPtr(nSelStart), nSelEnd)
  sText = SPACE$(nSelEnd + 2)
  If Err.Number = 0 Then
    Call SendMessage(SystemFocusHwnd, WM_GETTEXT, nSelEnd + 1, ByVal sText)
    sText = Mid$(sText, nSelStart + 1, nSelEnd - nSelStart)
    If Err.Number = 0 Then
      ' hier wird der aktuell markierte Text ausgegeben
      MsgBox sText
    End If
  End If
  On Error GoTo 0
End If
End Sub
Antworten Top
#2
Hallöchen,

um z.B. eine offene Anwendung zu nutzen, kannst Du z.B. so vorgehen:
hwnd = FindWindow("Notepad", vbNullString)
...SendMessage(hwnd ...)
Eventuell hilft Dir auch der Artikel von MSN
https://msdn.microsoft.com/de-de/library/cc749770.aspx
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste