Konsolenanwendung - Timer funktioniert nicht richtig?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Konsolenanwendung - Timer funktioniert nicht richtig?

    Hallo

    Ich habe ein Problem mit einen Timer bei einer Konsolenanwendung ..
    Er überprüft ob ein Prozess bereits existiert, und wenn er nicht existiert wird der entsprechende Prozess gestartet, das macht er auch aber wenn er bereits läuft mach er es auch ...

    Hier mein Code mit CCleaner:

    VB.NET-Quellcode

    1. Module Module1
    2. WithEvents Timer1 As New Timers.Timer
    3. Sub Main()
    4. Timer1.Interval = 10000
    5. Timer1.Start()
    6. Console.ReadKey()
    7. End Sub
    8. Private Sub Timer1_Elapsed() Handles aTimer1.Elapsed
    9. Dim ProcessCheck As Process
    10. For Each ProcessCheck In Diagnostics.Process.GetProcesses()
    11. If ProcessCheck.ProcessName = "CCleaner64" = Then 'mit "= true" oder "= false" geht es auch nicht ...
    12. Else
    13. Process.Start("D:\Software\Programme\CCleaner\CCleaner64.exe")
    14. Threading.Thread.Sleep(7000) 'Zur Sicherheit angebracht. Ich habe vorhin mein PC fast zum abstürzen gebracht weil er es tausend mal geöffnet hat ...
    15. End If
    16. Next
    17. End Sub
    18. End Module


    Auch wenn der Prozess dann durch das öffnen existiert, öffnet er weiterhin den CCleaner ..
    Könnt ihr mir da weiterhelfen? :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Ist doch klar. Du gehst alle Prozesse durch. Wenn bei dir der Win-Editor läuft heißt das Teil notepad -> notepad ist nicht CCleaner64 -> starten.

    Quellcode

    1. If Process.GetProcessesByName("CCleaner64").Length <= 0 Then
    2. 'starten
    3. End If


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Vultrax schrieb:

    Ich habe ein Problem mit einen Timer bei einer Konsolenanwendung
    Jou.
    Pack Dir den Timer in eine WinForms-Anwendung, da gehört er hin.
    Eine Console ist nicht kompatibel zu einem Timer.
    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!

    RodFromGermany schrieb:

    Vultrax schrieb:

    Ich habe ein Problem mit einen Timer bei einer Konsolenanwendung
    Jou.
    Pack Dir den Timer in eine WinForms-Anwendung, da gehört er hin.
    Eine Console ist nicht kompatibel zu einem Timer.



    So wie es @thefiloe geschrieben, funktioniert jetzt :)

    Wenn der Prozess nicht existiert wird er geöffnet, und wenn er geöffnet ist, passiert nichts mehr, genauso wie es wollte.
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    Vultrax schrieb:

    funktioniert jetzt :)
    Na fein.
    Ich benutze zum Anziehen der Strümpfe keinen Kran. :D
    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!