Prozessfenster unsichtbar machen ?

  • Hallo, guten Tag.

    Wie macht man bitte ein Prozessfenster unsichtbar.
    Ich brauche das Fenster nicht, nur die Datenverarbeitung im Prozess.

    Danke.
    GRuss

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress, WoltLab & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    Wenn du Fragen hast, kannst du dich gerne jederzeit an @Maximilian Rupp wenden

    Hinweis:

  • Um die Sichtbarkeit des Fesnters zu ändern gibt es ShowWindow(x). Mit ShowWindow(%HWnd, 0) kannst Du also das Fenster unsichtbar machen. Hat den Nachteil, das Fenster blitzt beim Erstellen kurz auf. Erstelle doch das Fenster einfach außerhalb des Bildschirms. Dann ist es nie sichtbar.
    p& = pExec("|Prozess", "A", %MaxX, 100, rgb(rnd(256),rnd(256),rnd(256)),5, %hwnd)

    Gruß Volkmar

  • Ein Prozess braucht ja auch nicht unbedingt ein Fenster :


    Da läuft der Prozess halt solange, wie das Hauptprogrammfenster existiert.
    Den Prozess könnte man auch mit

    Code
    Process("Kill", pid&, 0)

    vom Hauptprogramm aus beenden.

    Wenn du aber einen Timer im Prozess brauchst, mußt du natürlich eines
    im Prozess erstellen. Da schaust du in der Hilfe bei Timer. Dort steht sogar,
    wie man ein unsichtbares Fenster erstellt.
    Ein weiterer Vorteil mit Fenster ist, daß man dann auch mit UserMessages
    arbeiten kann, wenn man dem Prozess zwischendurch einen Wert schicken
    möchte. Dabei ist zu beachten, daß man dem Fenster auch einen Namen
    gibt (WindowTitle oder mit Create("Window",...), damit man mit FindWindow()
    das Handle des Fensters erhält. Dieses braucht man, um mit SendMessage()
    eine Nachricht an den Prozess zu schicken.

    Kommt also darauf an, was du brauchst bzw. machen willst.

    Wir sind die XProfaner.

    Sie werden von uns assimiliert.

    Widerstand ist zwecklos!

    Wir werden alle ihre Funktionen und Algorithmen

    den unseren hinzufügen.

  • Ja danke für die Info.

    Dieses Programm läuft soweit.
    Es werden Daten zum Roboter geschickt und zurück.

    1. Wie kann ich bitte aus dem Prozess mit "setText parent&,str$(ord($download))" noch eine weitere Zahl zurückschicken "ptest&" zum auswerten? ohne im Hauptfenster zu zeigen , ich brauche sie nur zum Auswerten?

    2. "settimer 300" im Prozess zeigt eine Wirkung, ohne das ich ihn abfrage , warum ????
    Weil hier immer geschrieben wird, das ich den Timer nicht abfrage.

    3. Manchmal vergesse ich den Prozess mit Kill zu löschen. Wie kann er gelöscht werden, wenn ich das Programm beende.

    Was kann jetzt bitte noch optimiert werden? Die "Elseif" bringe ich noch rein, statt dauernd "if"

    Danke.
    GRuss

  • zu 1:
    z.B. mit einer UserMessage.
    Hatte ich schon in einem anderen Thread von
    dir geschrieben.
    Im Hauptprogramm :
    UserMessages $1000 ' oder ä.
    Bei pExec() mußt du dann aber win& als Parameter mitgeben.

    In der Schleife

    Code
    While ende&
    WaitInput
    If %UMessage = $1000
    ptest& = &UWParam
    EndIf


    Im Prozess :
    SendMessage(win&, $1000, ptest&, 0)

    zu 3:
    einfach vor dem end p& auf 0 abfragen.

    Code
    Case p& <> 0 : Process("Kill", p&, 0)


    oder noch besser :

    Code
    if getExitCode(p&) = 259 ' Prozess läuft noch
    Process("Kill", p&, 0)
    EndIf

    Wir sind die XProfaner.

    Sie werden von uns assimiliert.

    Widerstand ist zwecklos!

    Wir werden alle ihre Funktionen und Algorithmen

    den unseren hinzufügen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!