Mulla on tälläinen koodi :
Private Sub Text2_change() If Text2.Text= "avaa note" + Chr$(13) + Chr$(10) Then (avaa ohjelman:notepad) ElseIf text2.text="avaa ie" + Chr$(13) + Chr$(10) Then (avaa Internet Explorerin) End If End Sub Private Sub winsock1_DataArrival(ByVal bytesTotal As Long) Dim msg As String Winsock1.GetData msg Text2.Text = Text2.Text + msg + Chr$(13) + Chr$(10) End Sub
Tämä on osa verkossa toimivasta hallintajärjestelmän koodista.
Ongelmana on siis se, että if - lause "avaa ie" ei enää toteudu, kun on esimerkiksi lähettänyt viestin "avaa note". Haluaisin, että If - lause toteutuisi, vaikka edelliset viestit näkyisivätkin riveinä textboxsissa.
Edit: Unohtu tuo: Text2.Text = Text2.Text + msg + Chr$(13) + Chr$(10) laittaa tähän kunnolla...
Laita vaihtoehdot kukin omaan If-lauseeseen näin
If Text2.Text= "avaa note" + Chr$(13) + Chr$(10) Then (avaa ohjelman:notepad) End If If text2.text="avaa ie" + Chr$(13) + Chr$(10) Then (avaa Internet Explorerin) End If
Ja jos Text2 sisältää useita rivejä käytä InStr-funktiota
Miten InStr funktiota käytetään?
Tietääkö kukaan?
If InStr(Text2.text, "avaa ie" + vbCrLf) then
joo toimiihan tuo, mutta sitte siinä on semmonen ongelma kun kirjottaa mitä tahansa niin se avaa ja sulkee cd-aseman, kun kokeilee open cd komentoa.
Ei ihan tarkkaa tietoa mitä haet, mutta operaatiot voi estää postamalla ko. rivi textboxista tai sitten käyttää taulukkomuuttujaa, jossa tuon InStr-funktion arvoilla joko tehdään tai ei tehdä tietty operaatio.
Siis haluaisin edellisten viestien näkyvän, mutta vain se viimeisin lähetetty viesti toteuttaisi komennon ja siihen serveriin voisi lähettää muitakin viestejä, ilman että cd-asema kävisi auki.
no tee silleen että sulla on lista missä on kaikki lähetetyt ja silleen että se sitten lisää siihen viimeisen.
Mää tein sen listan ja se näyttää kaikki viestit mitä on tullut, mutta tästä se ongelma vasta alkaakin. Tarkoitus ois se, että jos listan uusin viesti on "avaa cd", niin if-lause tunnistaa sen ja avaa cd:n. Miten if lauseen saa tunnistamaan sen uusimman lähetetyn viestin?
katsot listan viimeisen itemin. List1.List(List1.ListCount-1) kertoo alimman itemin tekstin.
Kokeilin tälläistä koodia, mutta en oikein tajua miten se pitäisi laittaa. Kun serveri vastaanottaa viestin se vain näyttää sen listassa, mutta ei avaa cd:tä.
If List1.List(List1.ListCount - 1)="avaa cd" Then Dim X As Long X = mciSendString("Set CDAudio Door Open", "", 0, 0) End If
Edit: ei tarvi vastata, sain sen itse toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.