alle mehrfachaufrufe beenden

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Fortender.

    alle mehrfachaufrufe beenden

    hallo,

    habe ein programm erstellt was auch mehreren rechner läuft
    nun möchte ich aus diesen pogramm heraus durch me.close()
    alle laufenden instanzen des programms beenden

    also zb variable = 1 dann programm beenden

    habe es versucht mit my.settings aber die anderen pogramme haben wohl ihrer eigene settings bereich
    Ich hab das jetzt so verstanden, dass mehrere Instanzen deines Programmes auf verschiedenen Rechnern
    (im Netz?) laufen und du per Knopfdruck alle Instanzen beenden willst.

    Das geht so einfach nicht wie du dir das vorstellst. Denn wie sollen diese denn miteinander kommunizieren?
    Das könntest du per Sockets lösen und auch das funktioniert bei bestehender Verbindung zum Server, in diesem Fall
    dann der Hauptapplikation die veranlasst alle Instanzen zu closen/terminieren.

    MfG Tim
    Willkommen im Forum. :thumbup:

    chrin1969 schrieb:

    dann programm beenden
    Wenn eines dieser Programme auf einem Rechner ohne oder mit einer anderen Netzwerkverbindung läuft, ist es nicht erreichbar, würde also nicht geschlossen werden.
    Bitte poste mal eine komplette Problembeschreibung und Aufgabenstellung.
    ------
    Meinst Du tatsächlich VB6 oder meinst Du VB.NET? Ändere ggf. den Tites Deines Threads.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich hab das jetzt so verstanden, dass mehrere Instanzen deines Programmes auf verschiedenen Rechnern
    (im Netz?) laufen und du per Knopfdruck alle Instanzen beenden willst.


    ja genau richtig alle laufen in einen Netz und ja alle sollen beendet werden

    und geschrieben in vb 2010 express

    bleibt also nur eine netzverbindung ( server / Client ) zu schaffen oder eine txt datei die von allen intervallmäsig abgefragt wird

    chrin1969 schrieb:

    Ich hab das jetzt so
    Markiere den Text im Post und wähle Auswahl zitieren.
    Und dann wäre es vorteilhaft, wenn Du auch meine Fragen bweantwortetest.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    chrin1969 schrieb:

    eine txt datei die von allen intervallmäsig abgefragt wird

    Wäre ziemlich.. Naja.. Unschön finde ich. Dann wäre die Frage wo diese Textdatei liegt, also vermutlich auf einer Netzwerk Festplatte oder einem im Netzwerk freigegebenen Ordner, die der dann von den anderen PCs gemounted wird. Aber ich würde ernsthaft auf dem Zentralrechner einen Server laufen lassen der dann die Clients steuert. Dazu gibts auch genug tutorials hier. Einfach mal die SuFu benutzen.
    ok mein fehler beim versuch mit my.settings zu arbeiten mann sollte nach setzten eines merkers auch speichern und reloaden

    ja das programm liegt auf einer serverplatte wo alle rechner die ich meine zugriff haben und diese übers netzt starten
    hatte da bei der frage schon ein brett vorm kopf sorry ihr habt recht wenn mann fragt sollte man alle infos genau beschreiben


    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim countdown As Integer
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. countdown = 10
    5. If My.Settings.abschalten = 1 Then
    6. My.Settings.abschalten = 0
    7. My.Settings.Save()
    8. My.Settings.Reload()
    9. End If
    10. End Sub
    11. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    12. My.Settings.Reload()
    13. If My.Settings.abschalten = 1 Then
    14. countdown = countdown - 1
    15. Button1.Text = "Abschalten in " & countdown & "s !"
    16. End If
    17. If countdown = 0 Then Me.Close()
    18. End Sub
    19. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    20. My.Settings.abschalten = 1
    21. My.Settings.Save()
    22. My.Settings.Reload()
    23. End Sub
    24. End Class


    nun es läuft wenn ich die exe mehrmals auf meinen rechner starte im netz versuche ich nacher gebe nachricht wenns geht

    grüsse chrin1969
    ok wenn es nur auf den rechner hinterlegt wird auf dem das progi läuft hat es wenig sinn

    Fortender schrieb:

    Das wird so nicht funktionieren.. Denk doch mal logisch. Die MySettings werden nicht übers Netz synchronisiert warum sollten sie auch. Die werden nur lokal gespeichert. Da hat erstmal kein anderer Zugriff drauf.
    Richtig. Deshalb würde ich es mal mit einem Tcp Client und Multiserver probieren.
    Aufbau:
    Die Hauptanwendung fungiert als Multiserver dem die anderen Programminstanzen(Clients) joinen können. Der Server sendet an die verbundenen Clients dann einfach eine von dir festgelegte "Shutdown Message" die du halt in den Clients auswerten musst. Im Sourcecode-Austauschbereich gibt es ein richtig gutes TCP Multiserver Tutorial von kevin89.

    Wenn du dann nicht weiterkommst helfe ich dir weiter

    MfG Tim