Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: (vb) leikepöydän käyttö?

Sivun loppuun

Cc [03.03.2005 14:37:21]

#

Onko visual basicillä mahdollista tehdä ohjelmaa joka toimisi näin: Kun kirjoitetaan sana jonnekkin ohjelma ottaa sen talteen ja kun painetaan vaikka f3 näppäintä niin se kirjoittaa sen sanan sieltä muistista.

Blaze [03.03.2005 14:50:29]

#

Clipboard.SetText, Clipboard.GetText

Cc [03.03.2005 15:08:32]

#

Miten saisin tuon toimimaan silleen että kun kirjoitan sanan jonnekkin ja painan f2 niin sitten se kopioi viimeksi kirjoitetun sanan ja kun painan f3 niin ohjelma liittää viimeksi kirjoitetun sanan sinne mihin olen kirjoittamassa tekstiä?

hunajavohveli [03.03.2005 18:27:10]

#

Haetko nyt tuota näppäimentarkistusta vai tekstin käsittelyä vai molempia?

tuomas [03.03.2005 18:31:02]

#

Lähetä sana sendkeyssillä:

SendKeys "teksti" 'lähettää valittuun tekstikenttään yms.

Ehdotan että teet näppäimistön kuuntelun AsyncGetKeyState:a käyttäen, muuten näppäimistön kuuntelu toimii vain kun oma sovelluksesi on valittuna

edit: unohtu "" merkit :(

Cc [03.03.2005 21:54:40]

#

Hunajavohveli: Itse asiassa molempia.

Hmm olen saannut jotain aikaan (mikä ei toimi mutta ei kyllä debug huudakkaan)

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode

Case vbKeyF3
SendKeys Text1.Text

Case vbKeyF2
Clipboard.SetText Text1.Text

End Select
End Sub

Private Sub Form_Unload(Cancel As Integer)
End
End Sub

hunajavohveli [03.03.2005 22:06:02]

#

Jos tarkoitit leikepöydän tekstin lisäämistä esimerkiksi TextBoxin tekstiosoittimen kohtaan, niin sen voit tehdä tämmöisellä koodilla. Vaihdat vain leikepöydän tekstin koodissa näkyvään kohtaan. Leikepöydän lukemisesta en kuitenkaan osaa sanoa.

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case KeyCode
Case vbKeyF3
  kohta = Text1.SelStart
  Text1.Text = Left$(Text1.Text, kohta) + "Tähän kohtaan tulee leikepöydän teksti" + Right$(Text1.Text, Len(Text1.Text) - kohta)
  Text1.SelStart = kohta
End Select

End Sub

Cc [03.03.2005 22:24:05]

#

Enpä juuri saannut toimimaan tuota koodia tai siis se ei pastennut sitä leikepöydällä olevaa tekstiä.

tuomas [03.03.2005 22:25:28]

#

Tuolla näppäimistön käsittelyllä se teksti ei sitten mene minnekään, ellei omalla ohjelmallasi ole focusta (eli menee vain oman ohjelman tekstikenttiin yms).

Cc [03.03.2005 22:32:39]

#

miten sen saisi toimimaan silleen että kun painaisin sitä f3 niin se liittäisi sen tekstin sinne minne olen sillä hetkellä kirjoittamassa.

tuomas [03.03.2005 22:54:07]

#

Vastasin tuohon jo aiemmin (ks. eka lähettämäni viesti tässä ketjussa)

hunajavohveli [04.03.2005 09:45:14]

#

Cc kirjoitti:

Enpä juuri saannut toimimaan tuota koodia tai siis se ei pastennut sitä leikepöydällä olevaa tekstiä.

Niin, kuten sanoin, en tiedä, miten leikepöydän teksti luetaan, mutta kyllä tuo koodi lisää sen tekstin siihen kohtaan, mihin olet kirjoittamassa, kunhan vaihdat sen tuohon kohtaan "Tähän kohtaan tulee leikepöydän teksti"

Edit: Tuossa näkyy olevan jonkinlainen koodivinkki asiasta:
https://www.ohjelmointiputka.net/koodivinkit/23547-vb6-leikepöydän-käyttäminen

Tosin ihan samat asiat siinä on minusta neuvottu. Kuitenkin, kun kokeilin tuota joskus, niin ei se minusta toiminut kuin ohjelman sisäisenä leikepöytänä, mutta se kai tässä oli tarkoituskin? Siinä tapauksessa ei kuitenkaan tarvitse käyttää leikepöytää, vaan kaiken voi pistää ihan muuttujiin.

sooda [04.03.2005 12:09:14]

#

Ennen settextin käyttöä kannattaa Clipboard.Clear, mulla ei aina toimi ilman. Ja sen sisältämän tekstin saa yksinkertaisesti Clipboard.GetText :)

Blaze [04.03.2005 12:51:32]

#

hunajavohveli kirjoitti:

Kuitenkin, kun kokeilin tuota joskus, niin ei se minusta toiminut kuin ohjelman sisäisenä leikepöytänä

Ei, kyllä tuo on ihan se kaikilla ohjelmille näkyvä Windowsin leikepöytä.

hunajavohveli [04.03.2005 14:50:15]

#

Hmm.. vaikka kuinka kokeilen tuolla ClipBoard.SetTextillä kopioida ja liittää NotePadiin niin ei sinne tule mitään muuta taaskaan kuin se koodi, jonka sitä ennen kopioin tuosta Antin koodivinkistä. :P
Eikö tuo leikepöytä siis ole sama kuin Copy+Paste -systeemit, vai olenko käsittänyt asian aivan väärin?

Blaze [04.03.2005 15:03:25]

#

hunajavohveli kirjoitti:

Eikö tuo leikepöytä siis ole sama kuin Copy+Paste -systeemit, vai olenko käsittänyt asian aivan väärin?

Ei, ihan oikeen oot ymmärtäny.

Syyllinen on näköjään tuo Clipboard.Clear, joka Antin vinkistä puuttuu. Jos sitä ei tyhjennä ensin, niin SetText ei tallenna sinne mitään.

Nytpähän tietää tuonki.


Sivun alkuun

Vastaus

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

Tietoa sivustosta