Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: [vb6] Valittu teksti

JussiR [14.09.2009 14:44:33]

#

Miten saan tietoon minkä tekstin käyttäjä on valinnut esim. selaimessa, wordissa, muistiossa, textboxissa tai labelissa?
Mitä APIa tähän voisi käyttää?

EDIT: Tuli muuten mieleen aika helppo tapa:
1. Ohjelma laittaa muistiin leikepöydän sisällön
2. Ohjelma painaa Ctrl+C ja leikepyödälle kopioituu valittu teksti
3. Ohjelma katsoo leikepöydän sisällöstä tekstin

4. Ohjelma asettaa leikepöydän vanhan sisällön takaisin


Sanokaa ihmeessä jos keksitte järkevän tavan!

Tässä jotenkin toimiva koodi (jouduin lisäämään odotuksen näppäinpainalluksien välissä, koska firefox ei ainakaan pysynyt perässä):

Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Private Const KEYEVENTF_EXTENDEDKEY As Long = &H1
Private Const KEYEVENTF_KEYUP As Long = &H2
Private Const VK_CTRL = 17
Private Const VK_C = &H43

Public Sub Wait(ByVal ms As Long)
  ms = timeGetTime() + ms
  Do: DoEvents: Loop While ms > timeGetTime()
End Sub

Private Sub hotkey_HotkeyPressed()
hotkey.Enabled = False
On Error Resume Next
Dim backup As String
backup = Clipboard.GetText

On Error GoTo err
keybd_event VK_CTRL, 0, 0, 0
DoEvents
Wait 50
keybd_event VK_C, 0, 0, 0
DoEvents
Wait 50
keybd_event VK_C, 0, KEYEVENTF_KEYUP, 0
DoEvents
Wait 50
keybd_event VK_CTRL, 0, KEYEVENTF_KEYUP, 0
Wait 50
MsgBox Clipboard.GetText
On Error Resume Next
Clipboard.SetText backup
hotkey.Enabled = True
Exit Sub

err:
MsgBox "Error: " & Error, vbCritical
hotkey.Enabled = True
End Sub

Korjailkaa ihmeessä :P!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta