Runprogram auf zweiten Monitor

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Runprogram auf zweiten Monitor

Beitrag von saimen »

Ich möchte von meinem Programm aus eine Powerpointpräsentation öffnen und diese auf dem zweiten Monitor wiedergeben. Dazu nutze ich den Powerpointviewer von MS. Das Öffnen einer ppt klappt auch, aber ich weis nicht wie ich diese auf den zweiten Monitor bekommen. Ist das realisierbar?

Folgendes habe ich bis jetzt:

Code: Alles auswählen

dateiname$="D:\test.ppt"
PfadPPviewer$="C:\Programme\Microsoft Office\Office12\PPTVIEW.EXE"
RunProgram(PfadPPviewer$,datei$, "")
PS: der Viewer kann hier kostenfrei runtergeladen werden
http://www.microsoft.com/DOWNLOADS/than ... layLang=de
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Runprogram auf zweiten Monitor

Beitrag von STARGÅTE »

Da du den Viewer nicht selber geschrieben hast, wäre die die einzige Möglichkeit mal bei MS nachzugucken ob man der EXE irgend ein Parameter übergeben kann (zB. -x1280) sodass das Fenster dann woanders ist.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: Runprogram auf zweiten Monitor

Beitrag von NicknameFJ »

Ich weis nicht ob es auch einfacher geht, sprich sich das Fenster durch irgend einen API Aufruf direkt auf den zweiten Monitor setzen läßt. Aber als Gedankenschups in die Richtung könntest Du mal folgendes probieren:

mit ExamineDesktop die Koordinaten des zweiten Monitors ermitteln

mit FindWindow_() das Fenster suchen

und wenn Du dieses gefunden hast mit MoveWindow_() auf die ermittelten Koordinaten des zweiten Monitores setzen

Grüße

NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Runprogram auf zweiten Monitor

Beitrag von ts-soft »

Code: Alles auswählen

EnableExplicit

Procedure.s GetSpecialFolder(CSIDL.l)
  Protected *itemid.ITEMIDLIST
  Protected location.s = Space(#MAX_PATH)

  If SHGetSpecialFolderLocation_ (0, CSIDL, @*itemid) = #NOERROR
    If SHGetPathFromIDList_(*itemid, @location)
      If Right(location, 1) <> "\" : location + "\" : EndIf
      ProcedureReturn location
    EndIf
  EndIf
EndProcedure


Define.s dateiname = "D:\test.ppt"
Define.s PfadPPviewer = GetSpecialFolder(#CSIDL_PROGRAM_FILES) + "Microsoft Office\Office12\PPTVIEW.EXE"
Define.i hWnd
Define.s title.s{200}

RunProgram(PfadPPviewer, dateiname, "")

Repeat
  hWnd = GetForegroundWindow_()
  If hWnd
    GetWindowText_(hWnd, @title, 200)
  EndIf
Until Left(title, 17) = "PowerPoint Viewer"

If ExamineDesktops() >= 2
  MoveWindow_(hWnd, DesktopX(1), DesktopY(1), DesktopWidth(1), DesktopHeight(1), 1)
EndIf
ich denke mal das ist der simpelste weg.

Gruß

Thomas
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Runprogram auf zweiten Monitor

Beitrag von ts-soft »

Ist Dein Problem immer noch nicht gelöst?
Oder haste keine Zeit für nen dankeschön?

Geisterst in Deinen anderen Beiträgen und hier
kommt nichts /:->
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Re: Runprogram auf zweiten Monitor

Beitrag von saimen »

So, hatte erst jetzt die Möglichkeit nochmal einen zweiten Monitor anzuschließen.

Also es funktioniert ganz gut. Ein Problem ist nur, dass Desktop1 eine Auflösung von 1280 und Desktop2 nur 1024. Das Powerpoint Fenster wird leider nicht auf 1024 gestreckt, sondern abgeschnitten. D.h. es fehlen rechts 156 pix.
Liegt wohl daran dass Sich der Viewer die Einstellung vom Desktop1 holt.
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: Runprogram auf zweiten Monitor

Beitrag von NicknameFJ »

Bei mir funzt der Code von TS auf dem zweiten Monitor unter PB 4.31 und PB 4.4B3 auf WinXP Home SP3 einwandfrei. Auch bei mir hat der zweite Monitor eine geringere Auflösung als der erste.

Die Größenanpassung muss eigentlich auch funktionieren, da das Fenster durch den MoveWindow_() ja nicht nur neue Koordinaten sondern auch eine neue Größe zugewiesen bekommt.

Grüße

NicknameFJ
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Re: Runprogram auf zweiten Monitor

Beitrag von saimen »

Hast du das auch mit dem PowerpointViewer7 von MS probiert?
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Runprogram auf zweiten Monitor

Beitrag von ts-soft »

saimen hat geschrieben:Hast du das auch mit dem PowerpointViewer7 von MS probiert?
Mit einem anderen Programm wird mein Source nicht funktionieren :)

Ich hab 2x dieselbe native Auflösung, kanns also nicht so einfach testen.
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: Runprogram auf zweiten Monitor

Beitrag von NicknameFJ »

Ich habe es mit dem PowerPoint Viewer (von MS) versucht der schon auf meiner Platte installiert war.

Muss es mal mit dem von der verlinkten versuchen.


Grüße

NicknameFJ



[EDIT]

Dat is ja mal n Ding. Mit der neuen von Dir verlinkten Version klappt das gar nicht mehr, Fehler wie von Dir beschrieben

[/EDIT]
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Antworten