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:

Re: Runprogram auf zweiten Monitor

Beitrag von saimen »

Welche Viewer Version hast du, bei der es ging?
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Re: Runprogram auf zweiten Monitor

Beitrag von Sven »

Sowas hab ich schon lange gesucht. Und dabei gehts so einfach. Hier mal universell für beliebige Programme. :D

Code: Alles auswählen

wIDmain.l = OpenWindow(#PB_Any, 0, 0, 200, 100, "Desktop-Switcher", #PB_Window_SystemMenu | #PB_Window_Invisible)

If IsWindow(wIDmain)
  iIDds.l = CatchImage(#PB_Any, ?logo)
  sIDds.l = AddSysTrayIcon(#PB_Any, WindowID(wIDmain), ImageID(iIDds))
  SysTrayIconToolTip(sIDds, "Desktop-Switcher")

  exit.l = #False

  Repeat
    event.l = WaitWindowEvent(200)
    If event = #PB_Event_SysTray
      hlast = hfore  ;letztes Vordergrund-Fenster merken
      dcnt.l = ExamineDesktops()
      mIDds.l = CreatePopupMenu(#PB_Any)
      If IsMenu(mIDds)
        For i.l = 1 To dcnt
          MenuItem(i - 1, "- " + Str(i) + " -")
        Next
        MenuBar()
        mIDend.l = dcnt
        MenuItem(mIDend, "Beenden")
      EndIf
      DisplayPopupMenu(mIDds, WindowID(wIDmain))  
    ElseIf event = #PB_Event_Menu
      evID.l = EventMenu()
      If evID = mIDend
        exit = #True
      Else
        dcnt.l = ExamineDesktops()
        desk.l = evID
        If desk >= 0 And desk < dcnt
          If IsWindow_(hlast)
            hrect.RECT
            If IsZoomed_(hlast)  ;maximiert
              ShowWindow_(hlast, #SW_RESTORE)  ;Fenster normal
              MoveWindow_(hlast, DesktopX(desk), DesktopY(desk), DesktopWidth(desk), DesktopHeight(desk), 1)
              ShowWindow_(hlast, #SW_MAXIMIZE)  ;Fenster maximieren
            Else
              GetWindowRect_(hlast, hrect.RECT)
              hwdt = hrect\right - hrect\left
              hhgh = hrect\bottom - hrect\top
              MoveWindow_(hlast, DesktopX(desk), DesktopY(desk), hwdt, hhgh, 1)
            EndIf
          EndIf
        EndIf
      EndIf
    ElseIf event = 0  ;kein Event, Timeout
      hfore = GetForegroundWindow_()  ;aktuelles Vordergrund-Fenster merken 
    EndIf
  Until exit
EndIf

DataSection
  logo: IncludeBinary "ds.ico"
EndDataSection
Ihr braucht noch eine ICO-Datei für das SysTray-Icon. Fenster auswählen, auf Icon klicken und Desktop wählen.

Der Witz ist, bei maximierten Fenstern das Fenster erst in den Normalmodus zu schalten, dann rüberzuschieben und wieder zu maximieren.

Geht mit Opera und Firefox, mit Celestia und Stellarium im Windowed-Modus, geht nicht mit VLC-Player, weil das Video-Overlay nicht mit verschoben wird. Kann sein, dass es mit Kleinweich Kraftpunkt nicht geht, wenn da ein DX-Screen verwendet wird und zwischen 2 Grakas gewechselt wird, weil das verschiedene Speicherbereiche sind.

Edit sagt: PPT scheint einen Screen aufzumachen, keinen Windowed-Screen. Und der will immer auf den ersten Desktop. Oder?
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 »

@Saimen:

Der Installer vom PPViewer hat eine Größe von nur 2,70 MB nicht 25.8 MB wie der von Dir verlinkte. Scheint also eine Version zu sein die einen deutlich geringeren Funktionsumfang hat. Es der der PowerPoint Viewer 1997.

Rechter Mausklick / Eigenschaften schreibt folgendes:

Direkt unter dem Reiter Version:

Dateiversion: 4.71.728.0


und im Frame Versionsinformationen:

Dateiversion: 8.0.4106.01


letztes Änderungsdatum: Freitag, 18. April 2003, 11:24:52

Wenn Du mir Deine EMAIL-Adresse mitteilst kann ich den Installer schicken wenn Du ihn im Netz nicht findest.

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 »

@NicknameFJ, du hast den Viewer2003. Leider laufen mit dem die mit PP 2007 erstellten Präsentationen nicht. D.h. ich brauch den Viewer 2007.

Das Fenster das geöffnet wird ist wohl kein Window dass ich minimieren und Maximieren kann. Wie gesagt, ich kanns auf den zweiten Desktop schieben, aber nicht in der größe ändern. Es wird immer die Größe des ersten Desktops übernommen
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 »

Hallo Saimen,

nochmal ein anderer Ansatz:

Du könntest versuchen die PP2007 nach PP2003 zu konvertieren und diese neue Präsentation mit dem Viewer PP2003 (bei dem das Verschieben auf den 2. Monitor funktioniert) zu öffnen.

Wenn Du MS PowerPoint hast dürfte das ja kein Problem sein, auch nicht mit den neuen SmartArt Grafiken

sh. hier: http://office.microsoft.com/de-de/power ... 31031.aspx

Ich habe soeben auch eine PP2007 Datei mit OpenOffice nach PP1997/2000 konvertiert. War aber eine einfache Datei, ohne großen Schnickschnack. Evtl. mal OpenOffice runterziehen und das konvertieren ausprobieren.

Vielleicht gibt es auch noch weitere Konverter von 2007 nach 2003. Must mal guuuuuuugln.


Grüße

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

Bild
Antworten