Programm bei Internetverbindung starten

  • WinXP

  • mortician
  • 1461 Aufrufe 7 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Programm bei Internetverbindung starten

    Hey!
    Habe mal eine Frage.
    Undzwar habe ich ein Programm, welches die Internetverbindung nutzt.
    Nun meine Frage:
    Kann man per registry oder wie auch immer, ein Programm bei Verbindung mit dem Internet starten?
    Also wenn ich das Programm unter Autostart mache, dann nervt es mich wieder anfangs die ganze zeit, es könne nicht mit dem Internet in Verbindung treten.
    Ich habe DSL.
    Wäre nett, wenn ich helfen könntet.
    mfg mortician
  • Ich verstehe dein problem nicht, liege ich richtig, dass:
    Ein Programm in deinem Autostart steckt und eine aktive Internetverbindung benoetigt, du dich aber manuell immer ins Intenet einloggen musst?

    Wenn es so ist, dann koenntest du deine Verknuepfung, mit der du manuell ins Internet einloggst ebenso in den Autostart stecken, damit du immer auch gleich online bist. Waer aber nur sinnvoll, wenn du eine Flatrate oder einen Volumentarif hast, der nicht mit Zeitbegrenzung ist!

    Falls ich das Problem falsch erkannt habe, bitte ich dich mich zu korrigiern!

    mfG
    CrYstaLX
  • Hey!
    Nein hab Flatrate und geh über Router. Bin also über das Netzwerk zum Router beim Systemstart schon im Netz.
    Doch die Netzwerkkarten starten immer langsam bei mir. Also startet das Programm, welches ich unter Autostart habe vorhher.
    Doch dieses Programm braucht Internet. Wenn es das nicht bekommt, kommen Signale.
    Die nerven.
    Daher will ich, wenn eine erfolgreiche Internetverbindung herrscht, das Programm erst gestartet wird. Klingt Komisch...ist aber so.
    Noch was... das ist doch bei dem SasserVirus zb auch so gewesen.
    Er führte bei Internetstart shutdown .
    Hoffe du verstehst es.
    mfg mortician
  • Mhm, vielleicht hab ich eine Idee, nur umsetzten kann ich sie nicht, da ich mich mit Batchdateien (*.bat) net auskenne. Vielleicht ist es moeglich per Script zu pruefen ob eine aktive Internetverbindung besteht und wenn dies erfolgreich ist dann dein Programm starten lassen. kA ob das ueberhaupt so moeglich ist, aber evtl. kennt sich hier einer gut damit aus.

    mfG
    CrYstaLX
  • Du kannst in den Autostart Ordner eine vbs-Datei anlegen. Das Programm dreht Warteschleifen, in denen es per rasdial überprüft, ob eine Verbindung besteht. Dann kann es die Warteschleife verlassen und ein Programm starten. Nachteil: Das Programm wscript.exe oder cscript.exe ist dabei die ganze Zeit im Hintergrund aktiv und verbraucht minimale Systemressourcen. Bei Interesse schreibe ich dir nen Quellcode.

    EDIT:
    Rechtschreibfehler
  • Hey!
    Also verstehe ich richtig.
    Das Programm dreht Warteschleife und wenn der PC im Internet ist, kann per Bediegung das Programm gestartet werden?
    Ja wäre ganz nett, wenn du es machen könntest.
    Machen Vieren zb das auch so`
    Ich will kein Virus machen, falls ihr das meint.
    Nur daher kenn ich es nur.
    //Edit
    Ne... Das is nicht schlimm. Ich meinte, ich kenn das nur vom Sasser.
    Wenn man ins Internet ging, wurde die shutdown.exe gestartet undso wurde der Rechner rebootet.
    mfg mortician
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]
  • Sowas in der Art hab ich mir vorgestellt, wie Felix es geschildert hat, aber warum soll das ein Virus sein? Ist doch harmlos, dass man einfach das Programm solang "hinhaelt" bis die Internetverbindung besteht. An sich denke ich ganz harmlos!

    mfG
    CrYstaLX
  • Onlinestatus.vbs

    Ich nutze für meinen eigenen Internetzugang ein selbstgeschriebenes VBScript, das sich aus einer Reihe von eingegebenen Tarifen in den günstigsten Tarif einwählt. Daraus habe ich jetzt die für dich notwendigen Programmzeilen zusammen gestellt.

    Anweisungen:
    - Kopiere den Quelltext in ein Notepad-Fenster.
    - Wähle Datei -> Speichern unter....
    - Als Dateinamen schreibst du "Onlinestatus.vbs".
    - Unter Dateityp wählst du "Alle Dateien", sonst wird die Datei "Onlinestatus.vbs.txt" heißen.
    - Erstelle nun eine Verknüpfung der Datei in deinem Autostart-Ordner, damit sie mit jedem Windows-Start gestartet wird.

    Verbesserungsvorschläge zum Quelltext nehme ich gerne an! Ich weiß, dass es nicht perfekt ist :)

    Zur Erklärung des Programms:

    1. Das Programm überprüft mittels rasdial.exe, ob eine Onlineverbindung besteht. Wenn keine Verbindung besteht, gibt rasdial in der ersten Ausgabezeile "Keine Verbindungen" zurück. Tipp in der Eingabeaufforderung rasdial ein, und du siehst, was ich meine.

    2. In der Variable vbRunProgramPath musst du den absoluten Pfad zum gewünschten Programm angeben, dass bei einer Onlineverbindung gestartet werden soll. Achte aber darauf, dass du die drei äußeren Anführungszeichen nicht entfernst!

    3. Mit der Variable vbWaitTime kannst du die Dauer der Warteschleife in Millisekunden einstellen. Die Voreinstellung ist 5000 = 5 Sekunden. Wenn du die Zeit z. B. auf 60000 (1 Minute) einstellt, dauert es bis zu einer Minute, bis nach der Onlineverbindung das gewünschte Programm gestartet wird.

    4. Wie ich im vorherigen Post erwähnt habe, ist wscript.exe während der Warteschleife im Hintergrund aktiv und verbraucht minimale Systemressourcen. Wenn du das Programm deaktivieren möchtest, hast du zwei Möglichkeiten:

    a) Drücke Strg+Shift+Escape um den Task-Manager zu öffnen. Im Register Prozesse klickst du auf wscript.exe und dann auf Prozess beenden.

    b) Erstelle wie oben beschrieben eine weitere .vbs-Datei unter dem Namen "Stop.vbs" und schreibe als Inhalt die eine Zeile:

    MsgBox "Script wird angehalten...", vbInformation, "vbStop"

    Erstelle eine Verknüpfung zu dieser Datei irgendwo im Startmenü. Wenn du dann "Stop.vbs" ausführst und dann NICHT auf OK klickst, erkennt das Programm "Onlinestatus.vbs" die Titelleiste "vbStop" und beendet sich und "Stop.vbs" daraufhin.

    5. Do ... Loop ist die "Warteschleife", in der die Funktion GetConnectionState() ausgeführt wird und das Script durch "vbStop" beendet werden kann.

    6. WSHShell.Run startet ein Programm,

    7. In der Funktion GetConnectionState() werden die Ausgabedateien des DOS-Befehls verarbeitet.

    8. Die Funktion ExecDOS() führt den eigentlichen Befehl aus und gibt das Ergebnis in eine Datei aus.


    Wenn du dir den Quelltext durchliest, wirst du merken, dass kein bösartiger Code ausgeführt wird, womit die Virusfrage geklärt ist. ;)

    Auf meinem PC funktioniert es einwandfrei. Probier es aus und sag Bescheid!

    Gruß

    FeliX_22

    Quellcode

    1. Set WSHShell = WScript.CreateObject("WScript.Shell")
    2. Set fs = CreateObject("Scripting.FileSystemObject")
    3. vbTitel = "Onlinestatus"
    4. vbRunProgramPath = """C:\Programme\Internet Explorer\IEXPLORE.EXE"""
    5. vbWaitTime = 5000
    6. vbIsNotConnected = 0
    7. vbStop = "vbStop"
    8. Do
    9. WScript.Sleep vbWaitTime
    10. ConnectionState = GetConnectionState
    11. If WSHShell.AppActivate(vbStop) Then
    12. WSHShell.SendKeys "{ENTER}"
    13. WSHShell.Popup vbTitel & " beendet!", 1, vbTitel, vbInformation
    14. WScript.Quit
    15. End If
    16. Loop While ConnectionState = vbIsNotConnected
    17. WSHShell.Run vbRunProgramPath
    18. '1 Verbindungsstatus einholen
    19. Function GetConnectionState()
    20. vbRasdial = "C:\WINDOWS\system32\rasdial.exe"
    21. vbIsNotConnectedText = "Keine Verbindungen"
    22. Set fs = CreateObject("Scripting.FileSystemObject")
    23. Path = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
    24. FileNamePart = "listing.txt"
    25. Dateiname = Path & FileNamePart
    26. 'Dos-Befehl ausführen
    27. Listing = ExecDOS(vbRasdial)
    28. 'Datei zum Schreiben öffnen
    29. Set Datei = fs.OpenTextFile(Dateiname, 2, True)
    30. Datei.Write Listing
    31. Datei.Close
    32. 'Datei zum Lesen öffnen
    33. Set Datei = fs.OpenTextFile(Dateiname, 1)
    34. Line = Datei.ReadLine 'Erste Zeile
    35. Datei.Close
    36. fs.DeleteFile Dateiname
    37. If Line = vbIsNotConnectedText Then
    38. GetConnectionState = vbIsNotConnected
    39. Else
    40. GetConnectionState = vbIsConnected
    41. End If
    42. End Function
    43. 'Dos-Befehl ausführen und in temporäre Datei schreiben
    44. Function ExecDOS(Befehl)
    45. On Error Resume Next
    46. Ausgabedatei = "dosausgabe.txt" 'ist automatisch im Pfad der vbs-Datei
    47. Resultat = WSHShell.Run("%COMSPEC% /c " & Befehl & " > " & Ausgabedatei, 0, True)
    48. If fs.FileExists(Ausgabedatei) Then
    49. Set Datei = fs.OpenTextFile(Ausgabedatei)
    50. ExecDOS = Datei.ReadAll
    51. Datei.Close
    52. fs.DeleteFile Ausgabedatei
    53. Else
    54. MsgBox "Der DOS-Befehl ist fehlgeschlagen!", vbCritical, vbTitel
    55. End If
    56. End Function
    Alles anzeigen