Bildschirmauswahl bei mehreren Displays

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
leprog
User
Beiträge: 4
Registriert: Mittwoch 4. Mai 2022, 11:17

Hallo Community,

ich will Bilder/Pdf's auf meinem PC automatisch nach Auswahl öffnen.
das funktioniert auch wie ich es benötige.
nun muss aber immer das erste bild/PDF auf dem Monitor 1öffnen und das zweite Bild auf dem monitor2.

Wie kann man das auswählen und vorbelegen mit python?

Danke schon mal im vorraus

mfg
leprog
mfg

leprog

"Ein Computer wird das tun, was du programmierst - nicht das, was du willst"
unbekannter Autor
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@leprog: Da fehlt Kontext. Welches Betriebssystem? Was heisst „öffnen“?
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
leprog
User
Beiträge: 4
Registriert: Mittwoch 4. Mai 2022, 11:17

Sorry, ist mein erster Beitrag 😩
Betriebssystem ist win10 und ich muss Bilder auf zwei monitore präsentieren.
diese sind an einem PC angeschlossen und ich muss aber vorbelegen können welches Bild auf welchem Monitor angezeigt werden soll...

Gruß leprog
mfg

leprog

"Ein Computer wird das tun, was du programmierst - nicht das, was du willst"
unbekannter Autor
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Wie lässt du sie denn bisher anzeigen?
leprog
User
Beiträge: 4
Registriert: Mittwoch 4. Mai 2022, 11:17

hi,
momentan öffne ich die Bilder über "Webbrowser. open_new_tab("xxx.jpg")"
nun öffnen sich die Bilder wie sie das letzte mal geschlossen wurden.
ich will ihnen aber die Position vorgeben, Bildschirm 1 oder 2
mfg

leprog

"Ein Computer wird das tun, was du programmierst - nicht das, was du willst"
unbekannter Autor
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Das wird darüber nicht funktionieren.
Die Funktion ruft den Standard-Webbrowser des Betriebssystems auf - also den Handler für URLs. Was danach passiert entzieht sich der Kontrolle des Programms.
leprog
User
Beiträge: 4
Registriert: Mittwoch 4. Mai 2022, 11:17

OK, danke für die info...
Wenn ich die Datei nicht über Webbrowser öffne, sondern eine ppsx-datei über os. start file öffne, ist es dann möglich?
mfg

leprog

"Ein Computer wird das tun, was du programmierst - nicht das, was du willst"
unbekannter Autor
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@leprog: Nein, das sollte aber aus der Dokumentation der Funktion deutlich werden. Da steht das ist wie ein Doppelklick auf die Datei und man bekommt *nichts* zurück, über das man irgendwelche weiteren Informationen über den Prozess bekommen kann. Wo sollte da der Ansatzpunkt sein irgendeinen Einfluss auf die Darstellung der Anwendung zu bekommen?

Wahrscheinlich wirst Du die Windows-API direkt verwenden müssen, beispielsweise ShellExecuteExW() um den Monitor zu wählen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

So direkt nicht. Das problem: diese Schnittstellen erlauben eine solche Angabe nicht. Es gibt prinzipiell zwei Wege zum Ziel: den schweren, zuverlässigen. Und den einfacheren, unzuverlässigen.

Der schwere: du baust eine eigene GUI mit Qt. Das gibt dir volle Kontrolle darüber, wo du dessen Fenster positionierst. Und dann benutzt du “einfach” den eingebetteten Webbrowser, und zeigst deine Dinge an.

Der einfache: es hint Tastenkombinationen unter Windows, mit denen man sowas machen kann. Also Fenster auf bestimmte screens schicken. Nach dem starten probierst du einfach mit pyautogui zb, die abzusetzen. Aber das ist fummelig und wehe, du machst was anderes (also Focus umschalten oder so), dann gehts ggf sehr in die Hose.

Aber es ist deutlich einfacher als der erste Weg, würde ich mal mit anfangen.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

@__blackjack__ das die API das anbietet war mir neu. Scheint aber leider dann auch wieder anwendungsabhängig, ob es geht. Eine Diskussion findet sich hier: https://de.comp.lang.delphi.misc.narkiv ... en-monitor - da sind auch ein paar workarounds genannt.
Antworten