Eli miten ohjelmia voi avata Vb:llä? Ja sit viel et onks mahdollista vaikuttaa toisiin ohjelmiin VB:llä esim. painaa toisen ohjelman OK nappia tai kirjoittaa toiseen ohjelmaan (Word)?
Ohjelmia voi avata Shell-komennolla ja niille voi lähettää näppäinpainalluksia SendKeys:llä. Seuraavasta koodivinkistä lienee hyötyä sinulle:
https://www.ohjelmointiputka.net/koodivinkit/
Aiheeseen liittyen: irkissä oli joskus leikkimielinen kisa siitä, kuka keksii vaikeimman tavan tulostaa basicilla 10 kertaa "moi". Oma kandidaattini käytti SendKeysiä:
Option Explicit
Private Sub Form_Click()
'mahdollisimman vaikea tapa kirjoittaa basicilla 10x "moi" :)
Dim i1 As Integer, i2 As Integer
Shell "c:\winnt\notepad.exe", vbNormalFocus
For i1 = 0 To 9
For i2 = 0 To 3
If i2 = 0 Then
SendKeys "m", True
ElseIf i2 = 1 Then
SendKeys "o", True
ElseIf i2 = 2 Then
SendKeys "i", True
ElseIf i2 = 3 Then
SendKeys "{enter}", True
End If
Next i2
Next i1
End
End SubAiheeseen liittyen edelleen, tuo VB-koodin värityskoodi ei taida toimia ihan täydellisesti. Uudelleenkoodauksen paikka?
IF Idiot = 0 THEN GOTO 1 1 M$ = CHR$(77) O$ = CHR$(111) I$ = CHR$(105) IF Idiot = 0 THEN GOTO 2 2 FOR MM = 1 TO 1 FOR OO = 1 TO 1 FOR II = 1 TO 1 IF MM = 1 THEN MMM$ = M$ IF OO = 1 THEN OOO$ = O$ IF II = 1 THEN III$ = I$ NEXT NEXT NEXT IF Idiot = 0 THEN GOTO 3 3 OPEN "MOI.txt" FOR OUTPUT AS #1 PRINT #1, MMM$ + OOO$ + III$ CLOSE #1 IF Idiot = 0 THEN GOTO 4 4 OPEN "MOI.txt" FOR INPUT AS #1 INPUT #1, MOI$ CLOSE #1 IF Idiot = 0 THEN GOTO 5 5 PRINT MOI$ IF Idiot = 0 THEN GOTO 6 6 KILL "Moi.txt" IF Idiot = 0 THEN GOTO 7 7 END
Pistinkö paremmaksi?..
-Grey-
lainaus:
Aiheeseen liittyen edelleen, tuo VB-koodin värityskoodi ei taida toimia ihan täydellisesti. Uudelleenkoodauksen paikka?
Ei nyt sentään uudelleenkoodausta tarvita, yksi rivi oli unohtunut kommentteihin koodissa. Mutta nyt pitäisi näkyä täydellisesti VB-koodienkin värit.
Aihe on jo aika vanha, joten et voi enää vastata siihen.