Hagforce Skrevet 5. september 2006 Del Skrevet 5. september 2006 Hvordan scipte dette i vbs. -Ping 192.168.1.1 -Dersom svar start programm xxxx -Dersom ikke svar vis beskjed boks på skjerm Har prøvd en del nå, men finner ikke ut av det . Takker for all hjelp. Lenke til kommentar
aadnk Skrevet 5. september 2006 Del Skrevet 5. september 2006 (endret) I mine øyne må den definitivt letteste metoden å løse dette på være å kjøre Ping.exe med de riktige paramentre og deretter analysere dets utdata, eksempelvis som følger: Dim sTarget, sOutput, sCommand, oShell, oPingDim nRequests, iTTL, iBufferSize, wTimeout ' Hent destinasjonsdatamaskinen vi skal pinge sTarget = InputBox("Skriv IP-adressen du vil pinge.", "Destinasjon") ' Konfigurasjon nRequests = 1 ' Antall anmodninger å sende (øk om ustabile servere skaper unøyaktige tester) iTTL = 255 ' Time To Live - hvor mange ledd ICMP-pakken kan traversere. iBufferSize = 32 ' Bufferstørrelsen av tilfeldig data som skal sendes wTimeout = 2000 ' Hvor mange millisekunder en skal vente på hvert svar ' IKke fortsett dersom brukeren kansellerte pinget If LenB(sTarget) <> 0 Then ' Initialiser nødvendig komponent Set oShell = CreateObject("WScript.Shell") ' Bygg kommando som skal ekseveres sCommand = "ping -n " & nRequests & " -l " & iBufferSize & " -i " & iTTL _ & " -w " & wTimeout & " " & sTarget ' Ping denne addressen Set oPing = oShell.Exec(sCommand) ' Hent utdata sOutput = oPing.StdOut.ReadAll ' Benytter en meget simpel metode for å avgjøre hvorvidt pinget var suksessrikt eller ei (ser etter strengen "Reply from") If InStr(1, sOutput, "reply from", vbTextCompare) <> 0 Then ' Kjør et program (her Notepad) oShell.Run "Notepad.exe", 1, True Else MsgBox "Kunne ikke kontakte " & sTarget & ".", vbCritical End If End If Endret 5. september 2006 av aadnk Lenke til kommentar
GeirGrusom Skrevet 5. september 2006 Del Skrevet 5. september 2006 batchscript? @echo off echo Pinging host with 1 ms response, once. ping [IP Adresse] /t 1 /n 1 IF ERRORLEVEL 1 GOTO NoReply IF ERRORLEVEL 0 GOTO StartApp :StartApp Start [Programnavn] Goto EndScript :NoReply Echo No response from host. Pause :EndScript Lenke til kommentar
Hagforce Skrevet 6. september 2006 Forfatter Del Skrevet 6. september 2006 (endret) Takker så meget!. Fungerte utmerket. aadnk scriptet ditt var noe helt annet en det jeg hadde forsøk, jeg var helt på bærtur Hvordan få den til å søke etter både "reply from" og "svar fra".... Har en med xp no og en med xp en Takker igjen. Edit: PS, er det mulig å tvinge fokus på et vindu med vbs.... Endret 6. september 2006 av Hagforce Lenke til kommentar
aadnk Skrevet 6. september 2006 Del Skrevet 6. september 2006 Hvordan få den til å søke etter både "reply from" og "svar fra".... Har en med xp no og en med xp en Såklart. Erstatt den første linjen i den siste IF-setningen med følgende: If InStr(1, sOutput, "reply from", vbTextCompare) <> 0 Or _ InStr(1, sOutput, "svar fra", vbTextCompare) <> 0 Then Edit: PS, er det mulig å tvinge fokus på et vindu med vbs.... Bruk AppActivate: oShell.AppActivate("Notepad") ' Endre notepad til tittel eller EXE-navn på programmet du ønsker å aktivere Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå