hi ich hab ein problem,ich möchte per winsock einen text verschicken und der server macht ihn dann zu ner .bat datei und führt sie aus.Ich dachte mir dass es so geht aber irgendwie wird der case "batch" nicht angesprochen.An was könnte das liegen?
client: Visual Basic: [code]Dim stra As String
stra = MsgBox("Are you sure?", vbYesNo + vbInformation, "Sure?") If stra = vbYes Then Dim txtdata As String txtdata = "batch" & Text1.Text client.ws.SendData txtdata End If[/code]
server: Visual Basic: [code]Case "batch"
MsgBox "LOOL"
Kill "c:1.bat" Open "c:1.bat" For append As #1 Print #1, data Close #1 Shell "c:1.bat"[/code]
die msgbox ist nur dafür damit ich weiß,dass der case "batch" angesprochen wird. achja und statt append hab ich auch schon output benutzt.Weiss jemand wieso das nicht klappt? _________________
BlAcKfINAl.aT Poster
Anmeldedatum: 26.07.2008 Beiträge: 162
Verfasst am: 21.09.2008, 09:38
Hey , Speedwalker
Hast du denn die beiden schon connected?
D.h. beim Server :
Localport einstelen Listen lassen Bei Request Winsock1.close winsock1.accept requestid Und bei Data Arrival , das er das annimmt?
Und beim Client:
Das er dahin Connected , bevor er schickt Auf den gleichen Port, auf den der Server "Listened" und dan einfach beim Winsock unter connect , also wen er connected , dass er das dan schickt??
D.h. die eigentlcihe Frage : Sind die 2 Überhaupt verbunden ?
Und wenn Ja , dann :
Verusch mal beim Server ne Variable inen Datenarrival zu machen , also:
Dim strData as String Winsock1.Getdata strData
Select Case Strdata Case "batch" msgbox "LOOL" End Select
Liebe Grüße
sp33dwalker Poster
Anmeldedatum: 16.06.2008 Beiträge: 185
Verfasst am: 21.09.2008, 10:08
öhm das ist nur das snippet^^ ich habe schon alles andere gemacht,wie case "msgbox" und da kommt es
BlAcKfINAl.aT Poster
Anmeldedatum: 26.07.2008 Beiträge: 162
Verfasst am: 21.09.2008, 10:13
Adde mal 417898088 in ICQ..
bla Coder
Anmeldedatum: 02.05.2008 Beiträge: 267
Verfasst am: 21.09.2008, 10:19
du darfst nicht Visual Basic: [code]case batch[/code] machen, weil der sendet ja nicht nur "batch" sondern den gesamten string mit dem textbox inhalt, deswegen:
Visual Basic: [code]select case left(data,5) case "batch": etc...[/code]
(falls du das nicht gemacht hast)
sp33dwalker Poster
Anmeldedatum: 16.06.2008 Beiträge: 185
Verfasst am: 21.09.2008, 10:25
hab ich auch schon probiert nur das komische ist,die msgbox kommt wenn ichs so mache
Dim stra AsString
stra = MsgBox("Are you sure?", vbYesNo + vbInformation, "Sure?") If stra = vbYesThen Dim txtdata AsString txtdata = "batch" client.ws.SendData txtdata EndIf
da muss irgendwas falsch mit dem & text1.text sein
ZiG Überflieger
Anmeldedatum: 16.04.2008 Beiträge: 421
Verfasst am: 21.09.2008, 11:08
bla hat es doch schon gesagt. Es ist ein Unterschied ob du "batch" sendest oder "batchundtextvonderdatei"
Wenn das ganze drüben ankommt und du einfach per select case prüfst ob "batch" gesendet wurde, wird er nur reagieren wenn du auch wirklich nur das Wort "batch" gesendet hast und nicht noch den Text hinten drann.
Also du brauchst ein Trennzeichen wo du den Befehl vom Text der Datei dann trennen kannst.
sp33dwalker Poster
Anmeldedatum: 16.06.2008 Beiträge: 185
Verfasst am: 21.09.2008, 12:58
meinst du Case "batch|": ? funzt auch net
bla Coder
Anmeldedatum: 02.05.2008 Beiträge: 267
Verfasst am: 21.09.2008, 13:01
client.ws.SendData "batch|" & text1.text
wenn das ankommt:
dim ooo() as string ooo = split(data,"|")
select case ooo(0) case "batch": msgbox(ooo(1))
_________________
qu33n3x Newbie
Anmeldedatum: 24.03.2009 Beiträge: 1
Verfasst am: 28.03.2009, 20:46
lass doch die daten erstmal als .txt einlesen. Dann umbenennen und mit shell oder so ausführen. Ich fang grad erst visual basic an, aber das müsste doch eigentlich ganz einfach sein.
Da ich grad eh an nem chatprogram per winsocks sitze teste ichs später mal daheim und poste den code wenns klappt.