Mit Shellexecute neue Programminstanz öffnen

  • Hallo Gemeinde,

    ich öffne mit
    $Homepage = "https://ip-Adresse"
    ShellExecute($Homepage)

    eine Homepage mit dem Standardbrowser. Hier Firefox.

    Nun möchte ich aber, dass das immer in einer neuen Instanz des Browsers geschieht und nicht wie
    bisher als neuer Tab.


    Code
    If Not ProcessExists("firefox.exe") Then
    	; Wenn Firefox nicht gestartet ist, starte eine Instanz
    	$Homepage = "https://ip-Adresse"
    	ShellExecute($Homepage) 
    Else
    	; Wenn Firefox bereits gestartet ist, starte eine neue Instanz
    	?????????
    EndIf

    Was müsste bei den ? stehen.

  • Versuch mal ShellExecute($Homepage, "-new-window").
    Mit diesem Parameter öffnet sich Firefox in einem neuen Fenster.
    Wenn das nicht geht ist die Parameterreihenfolge das Problem.
    In dem Fall auf Run ausweichen.

  • Hallo Aspirinjunkie,

    genau das ist Problem. Das hatte ich versucht aber er öffnet immer einen neuen Tab
    anstatt ein neues Fensters.

    Laut Firefoxhilfe müsste es so aussehen: firefox -new-window http://IPAdresse. Offenbar
    setzt Shellexecute den Parameter hinten dran ;(

  • Deswegen ja das mit dem run.

    Ein Beispiel (kann ich nichtzu 100% testen):

    AutoIt
    Opt('MustDeclareVars', 1)
    Global Const $Homepage = '"http://google.de"'
    Global $DB = RegRead("HKEY_CURRENT_USER\Software\Clients\StartMenuInternet", "")
    $DB = RegRead("HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\" & $DB & '\shell\open\command', "")
    run($DB & ' -new-window ' & $Homepage)

    Einmal editiert, zuletzt von Moombas (27. März 2024 um 15:08)

  • So, mit dem folgenden Code geht es:

    Code
    $Homepage = "https://IP-Adresse
    			If Not ProcessExists("firefox.exe") Then
    				; Wenn Firefox nicht gestartet ist, starte eine Instanz
    				ShellExecute($Homepage)
    			Else
    				; Wenn Firefox bereits gestartet ist, starte eine neue Instanz
    				Run("C:\Program Files\Mozilla Firefox\firefox.exe -new-window " & $Homepage)
    			EndIf

    Thema erledigt. Vielen Lieben Dank für deine Unterstützung Aspirinjunkie :thumbup::klatschen:

    oh ich sah erst jetzt das Moombas etwas beigesteuert hat. Vielen lieben Dank auch dir dafür :thumbup:
    Aber eine Frage: Was ist HKEY_LOCAL_USER ? Hast du dir eine eigene Registry geschrieben?:rofl:

  • Moin,

    So, mit dem folgenden Code geht es:

    Code
    $Homepage = "https://IP-Adresse
    			If Not ProcessExists("firefox.exe") Then
    				; Wenn Firefox nicht gestartet ist, starte eine Instanz
    				ShellExecute($Homepage)
    			Else
    				; Wenn Firefox bereits gestartet ist, starte eine neue Instanz
    				Run("C:\Program Files\Mozilla Firefox\firefox.exe -new-window " & $Homepage)
    			EndIf

    Wenn immer Firefox in einem neuen Fenster gestartet werden soll, tut es auch:

    AutoIt
    $HomePage = "www.berlin.de" ; hier geht's zur Hauptstadt
    $Browser = "firefox.exe"
    ShellExecute($Browser, "-new-window " & $Homepage)
  • Moin,

    Wenn immer Firefox in einem neuen Fenster gestartet werden soll, tut es auch:

    AutoIt
    $HomePage = "www.berlin.de" ; hier geht's zur Hauptstadt
    $Browser = "firefox.exe"
    ShellExecute($Browser, "-new-window " & $Homepage)

    Ich verwende das auch so wie Du es hier stehen hast. Kann nicht antworten, das Du mal wieder schneller warst als ich es war.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl