Parameter an laufendes Programm übergeben

  • VB.NET

Es gibt 54 Antworten in diesem Thema. Der letzte Beitrag () ist von radio-ffk.

    Parameter an laufendes Programm übergeben

    Hallo!
    Ich habe einen Webbrowser programmiert (VB.Net [moznet.bplaced.net/]).

    Ich möchte wenn der Browser schon läuft und eine neue Instanz gestartet wird, überprüft werden ob ein Parameter angegeben wurde,
    wenn ja dann soll die schon gestartete Instanz diese übernehmen.

    (Wie beim Google Chrome: HTML Datei rechtsklick öffnen mit Google Chrome,
    wenn der Browser schon läuft wird dieser Parameter an diesen übergeben, wenn nicht startet er normal.)

    Was ich nicht möchte ist eine Einzelinstanz.

    Ich hoffe dass mir da jemand helfen könnte...
    Andoro Browser (V. 4)
    The new technology of browsing the web.
    Link to browser.
    stackoverflow.com/questions/19…ngle-instance-application
    Bitte sehr. Die zweite Antwort sieht für mich nicht schlecht aus.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Ich möchte wenn der Browser schon läuft und eine neue Instanz gestartet wird, überprüft werden ob ein Parameter angegeben wurde,wenn ja dann soll die schon gestartete Instanz diese übernehmen. (Wie beim Google Chrome: HTML Datei rechtsklick öffnen mit Google Chrome,wenn der Browser schon läuft wird dieser Parameter an diesen übergeben, wenn nicht startet er normal.)​

    Was willst du bitte dann wenn keine Einzelinstanz Anwendung?


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

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „thefiloe“ ()

    Ich möchte gerne:
    Wenn der Browser schon läuft soll bei diesem ein Tab hinzugefügt werden das heißt die neue Instanz soll sich also zu dem laufendem hinzufügen in Form eines neuen Tabs.
    Falls dieser nicht läuft soll der Browser gestartet werden mit dem Parameter (Url).
    Andoro Browser (V. 4)
    The new technology of browsing the web.
    Link to browser.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „TheScripter“ ()

    TheScripter schrieb:

    Wenn der Browser schon läuft
    Wenn dieser Dein eigenes Programm ist, kannst Du mit ihm per API.SendMessage() kommunizieren und dort in der WndProc abfangen und ausführen.
    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!
    Und genau das ist eine Einzelinstanz. Wenn der Prozess noch nicht läuft wird er gestartet, wenn schon, dann übernimmt der dieser.


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

    ErfinderDesRades schrieb:

    ABer da kann man doch bestimmt was mit dem Application.StartupNextInstance-Event was reissen, ohne sich deswegen in Api-Untiefen begeben zu müssen.

    Nur versteh ich auch noch nicht diese Wirrsal mit der Anwendung, die keine EinzelInstanzAnwendung sein darf, sich aber verhalten soll wie eine.


    Ich möchte einen professionellen Webbrowser erstellen und jeder Browser (Google Chrome, Firefox, Internet Explorer, Opera) kann das,
    deshalb möchte ich das auch haben...
    Andoro Browser (V. 4)
    The new technology of browsing the web.
    Link to browser.
    Ja und jetzt nochmal. Das ist eine Einzelinstanzanwendung. Chrome machts bisschen anders und startet haufenweise Prozesse, ob das Sinn macht sei dahin gestellt.


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

    RodFromGermany schrieb:

    Wenn dieser Dein eigenes Programm ist, kannst Du mit ihm per API.SendMessage() kommunizieren und dort in der WndProc abfangen und ausführen.


    Und wie kann ich das umsetzen?

    Das ich abfrage was meinem Browser gesendet wurde?
    Und wie setze ich das überhaupt um. Browser soll zum Beispiel eine lokale Datei öffnen diesen Parameter an laufenden Browser übergeben und
    dort soll ein Tab mit diesem Link (C:\Pfad_zur_Datei\index.html) geöffnet werden. Die Instanz die diesen Parameter übergibt soll sich beenden
    bzw nicht sichtbar sein.

    Es soll auch keine Einzelinstanz-Anwendung sein...

    Würde mich sehr über Code-Snippsel freuen.
    Andoro Browser (V. 4)
    The new technology of browsing the web.
    Link to browser.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Ich gebs auf. Du willst doch nur trollen. Du beschreibst dauernd eine Einzelinstanz-Anwendung, dauernd sage ich dir, dass du genau das suchst und dauernd sagst du mir, dass du das nicht willst.
    Code-Schnippsel haste schon. Siehe Post #1.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Sind sie nicht?
    a) Hat FireFox das meines Wissens noch nicht
    b) Was versprichst du dir davon?
    c) Wenn du das willst, musste es auch selbst hinbekommen. Man hat dir schöne Lösungen gezeigt, Lösungen die garantiert den Zweck erfüllen. Wenn das nicht reicht dann bitte sehr mach dich auf und versuche dein Glück. > Starte hier blog.chromium.org/2008/09/multi-process-architecture.html und viel Spaß beim implementieren. PS: Da ich mir vorstellen kann wie du den Browser implementiert hast, wird das zu 100% nicht funktionieren.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Ja ich möchte das gerne so haben.
    Ich meine da werden Sie mir zustimmen wenn Sie einen Browser nur einmal starten
    können, dass das nicht wirklich professionell wirkt.
    Andoro Browser (V. 4)
    The new technology of browsing the web.
    Link to browser.
    Der Firefox kann genau das, was der TE gern möchte. Denn natürlich kann ich auf irgendeine URL klicken und "Öffnen" wählen. Ist kein FF gestartet, dann wird eben einer hochgebracht. Trotzdem kann ich so oft auf den Desktop-Link doppelklicken, wie ich will, es erscheint immer wieder einer neue Instanz des FF (jeder in seinem eigenen Prozeß).
    Also ich hab hier Firefox 35.0.1 und ich kann auf der Desktopverknüpfung herumklicken, neue Tabs und neue Fenster öffnen wie ich will. Es bleibt bei einem Prozess:

    Es werden nur mehrere Fenster angezeigt (was auch mit WinForms/WPF gar kein Problem ist).


    Wenn der Browser schon läuft
    soll bei diesem ein Tab hinzugefügt werden
    Falls dieser nicht läuft
    soll der Browser gestartet werden mit dem Parameter (Url).

    Was Du da beschreibst ist exakt das, was eine Einzelinstanzanwendung ausmacht.

    Du kannst problemlos in einem Prozess mehrere Fenster öffnen. Egal ob Einzelinstanzanwendung oder nicht.

    Edit:
    @OlafSt
    so oft auf den Desktop-Link doppelklicken, wie ich will, es erscheint immer wieder einer neue Instanz des FF (jeder in seinem eigenen Prozeß).
    Bei mir eben nicht. Bei mir bleibt es ein Prozess, es wird aber von diesem Prozess ein neues Fenster geöffnet.
    (Dass in Wirklichkeit ein weiterer Firefox-Prozess gestartet wird, der die Info an den ersten sendet und sich dann beendet, sollte klar sein.)
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    TheScripter schrieb:

    Und wie kann ich das umsetzen?
    Da fehlen wohl noch einige Wochen .NET-Training.
    Sendendes Programm: SendMessage(INHALT)
    Empfangendes Programm: If message IST_GENAU IHNALT Then. Da müssen 2 Parameter verglichen weerden.
    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!