Visual Basic Programm unter Lockscreen von Windows 8 aktiv?!

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von nafets3646.

    Visual Basic Programm unter Lockscreen von Windows 8 aktiv?!

    Guten Tag,

    ich würde gerne mein Programm (mit VB2010 programmiert) unterm Lockscreen weiterarbeiten lassen (z.b. einen Counter weiter hochzählen lassen), leider tut es das nicht ?(
    Ich habe mir ein Tablet zugelegt worauf ich Windows 8 installiert habe (kein RT Windows). Wenn ich mein Programm (Counter) auf dem Desktop starte und den Bildschirm sperre, zählt er nicht weiter (erst dann wieder wenn entsperrt ist => also Bildschirm nicht mehr schwarz) ?( weis jemand warum? Muss man programmiertechnisch was beachten oder kann man das iwie einstellen?

    Man kann ja Apps unter Windows 8 bei, PC-Einstellungen -> Anpassen -> Sperrbildschirm-Apps auswählen das sie im Hintergrund laufen dürfen, das ist aber mit meinem Programm nicht möglich (ist ja auch keine App).
    Habe den LockScreen schon deaktiviert und probiert obs dann noch läuft -> hat sich nichts geändert, counter steht wenn man den Bildschirm sperrt :thumbdown:

    Weis jemand eine Lösung für mein Problem? Ich wär sehr dankbar dafür :rolleyes:
    Das würde aber nur etwas bringen, wenn der Timer nicht bei jedem Tick im Sperrbildschirmmodus etwas machen soll.

    Möglich ist es auf jedenfall, dass ein Programm selbst im Sperrbildschirm weiterläuft. Das beste Beispiel wo mir einfällt wäre TeamSpeak 3 - selbst wenn der PC (Windows 7) gesperrt ist höre ich noch die Leute reden und kann selbst sprechen :D

    ErfinderDesRades schrieb:

    Das einfachste wäre wohl, der Counter merkt sich die Tick-Zeit.
    Wenn er dann schläft tickt er nicht, aber wenn er wieder aufwacht, kann er anhand der aktuellen Zeit den richtigen ZählerWert frisch berechnen.


    ja, gute Idee, aber das löst nicht mein Problem, das mit dem Counter war nur ein Beispiel ;)
    ich würde das Programm gern 100% funktionsfähig im Hintergrund laufen lassen

    FireEmerald schrieb:


    Das würde aber nur etwas bringen, wenn der Timer nicht bei jedem Tick im Sperrbildschirmmodus etwas machen soll.

    Möglich ist es auf jedenfall, dass ein Programm selbst im
    Sperrbildschirm weiterläuft. Das beste Beispiel wo mir einfällt wäre
    TeamSpeak 3 - selbst wenn der PC (Windows 7) gesperrt ist höre ich noch
    die Leute reden und kann selbst sprechen


    ja, möglich ist es bestimmt iwie, nur wie?! :)

    EaranMaleasi schrieb:

    Vielleicht ist es ja nur der GUI-Thread der eingefroren wird sobald der Sperrbildschirm aktiv ist. Lass halt mal Testweise einen nebenthread einen Counter hochzählen ;)


    geht leider auch nicht, habs mit der console probiert (läuft immer noch nicht weiter unterm lockscreen)

    VB.NET-Quellcode

    1. Module Module1
    2. Public t1 As New Threading.Thread(AddressOf main_2)
    3. Dim t1_läuft As Boolean = False
    4. Sub Main()
    5. While True
    6. If t1_läuft = False Then
    7. t1.Start()
    8. t1_läuft = True
    9. End If
    10. End While
    11. End Sub
    12. Dim counter_main_2 As Integer = 0
    13. Private Sub main_2()
    14. While True
    15. counter_main_2 += 1
    16. Console.WriteLine(counter_main_2)
    17. Threading.Thread.Sleep(500)
    18. Console.Clear()
    19. End While
    20. End Sub
    21. End Module
    Hmm.. ein Dienst scheint auch nicht die Lösung zu sein :S

    Habe mein Programm so wie hier: youtube.com/watch?v=wlTG48-SBI8
    zu den Diensten hinzugefügt -> Ergebnis = 0 (d.h. Grafisch konnte ich keine Form erkennen, Consolenmäßig ging auch nichts auf.. Console.Beep wurde auch nicht abgespielt -.-)

    weis iwer weiter? ?(

    nafets3646 schrieb:

    Ich kenne keine andere Methode, was ist denn das Problem damit?

    VB.NET-Quellcode

    1. Protected Overrides Sub OnStart(ByVal args() As String)
    2. ' Add code here to start your service. This method should set things
    3. ' in motion so your service can do its work.
    4. EventLog.WriteEntry("Windows Dienst Nachricht: Hallo", EventLogEntryType.Information)
    5. End Sub

    • also "Windows Dienst Nachricht: Hallo" wollte ich zur Kontrolle nachlesen ob es eingetragen wurde -> funktioniert nicht x

    wie kann man nun die Nachricht richtig nachlesen (Windows -> Dienste -> DienstName + Doppelklick?) oder stimmt etwas im Beispiel Code nicht?
    // EDIT //

    habs doch gefunden das der Dienst was schreibt
    (Windows Suche -> Ereignisanzeige -> Windows-Protokolle -> Anwendung -> ServiceName war in dem Fall bei mir Service1)



    aber z.b. Console.Beep geht nicht!? wenn ich nen Thread in "OnStart" starten lasse + dauerschleife
    (Objektorientiert kann man dann auch alles vergessen beim Dienst oder?)