Benutzer mit den meisten Antworten
PowerPoint unsichtbar

Frage
-
Hallo zusammen
Ich mache eine Vorschau der ersten Seite einer Presentation als Image. Dies habe ich für Word, Excel und PowerPont gemacht. Sie funktionieran auch. Leider ist es aber so, dass PowerPoint sichtbar wird. Ich möchte PowerPont aber auch unsichtbar haben, wie es bei Word und Excel ist.
Hier mein Code:
Friend Shared Function Vorschau(ByVal fileName As String, ByVal handle As IntPtr) As Image
Dim image As Image = NothingTry
Dim application As New Interop.PowerPoint.Application
Dim document As Interop.PowerPoint.Presentation = application.Presentations.Open(fileName)Try
Const CF_ENHMETAFILE As Integer = 14
application.ActivePresentation.Slides(1).Select()
application.ActiveWindow.Selection.Copy()Dim ip As IntPtr
Dim metaFile As Metafile
Dim bRet As Boolean = Generell.ClipboardAPI.OpenClipboard(handle)If bRet Then
bRet = Generell.ClipboardAPI.IsClipboardFormatAvailable(CF_ENHMETAFILE) <> 0
End IfIf bRet Then
ip = Generell.ClipboardAPI.GetClipboardData(CF_ENHMETAFILE)
End IfIf Not IntPtr.Zero.Equals(ip) Then
metaFile = New System.Drawing.Imaging.Metafile(ip, True)
Generell.ClipboardAPI.CloseClipboard()
image = metaFile
End IfFinally
application.Quit()
End Try
Catch ex As Exception
'nichts tun
End TryReturn image
End FunctionDie Zeile " Dim document As Interop.PowerPoint.Presentation = application.Presentations.Open(fileName)" öffnet leider PowerPoint sichtbar. applikation.Visible = false gibt es nicht und application.Visible = Core.MsoTriState.msoFalse bringt ein Fehler.
Wie mache ich es also, dass PowerPont nicht sichtbar wird. Word und Excel bleibt ja auch unsichtbar, ausser man setzt application.Visible = true
Vielen Dank für Eure Hilfe
Gruss Marcel
Antworten
-
Oh Sorry :D
Paar Kommas vergessen ^^
Es ist der dritte Parameter (WithWindow) und nicht der erste
Dim application As New Interop.PowerPoint.Application
Dim document As New Interop.PowerPoint.Presentation = application.Presentations.Open(fileName, , , Microsoft.Office.Core.MsoTriState.msoFalse)
Cheers, Jörn Bosse
Microsoft Student Partner
- Als Antwort markiert Marcel Garaventa Freitag, 10. Juni 2011 08:50
-
Hallo Marcel,
mit Selection sollte man generell nicht arbeiten. Ich würde dir empfehlen so zu arbeiten:
document.Slides(1).Copy
Du musst es vorher nicht selecten. Wenn Powerpoint nicht sichtbar ist kannst du eh nicht mit Select arbeiten.
Cheers, Jörn Bosse
Microsoft Student Partner- Als Antwort markiert Marcel Garaventa Freitag, 10. Juni 2011 08:51
Alle Antworten
-
Hi,
Dim application As New Interop.PowerPoint.Application
Dim document As New Interop.PowerPoint.Presentation = application.Presentations.Open(fileName, Microsoft.Office.Core.MsoTriState.msoFalse)
So sollte es gehen ;)
Cheers, Jörn Bosse
Microsoft Student Partner -
Oh Sorry :D
Paar Kommas vergessen ^^
Es ist der dritte Parameter (WithWindow) und nicht der erste
Dim application As New Interop.PowerPoint.Application
Dim document As New Interop.PowerPoint.Presentation = application.Presentations.Open(fileName, , , Microsoft.Office.Core.MsoTriState.msoFalse)
Cheers, Jörn Bosse
Microsoft Student Partner
- Als Antwort markiert Marcel Garaventa Freitag, 10. Juni 2011 08:50
-
Hallo Jörn
Ja, das würde gehen. Leider bringt aber dann application.ActivePresentation.Slides(1).Select() einen unbekannten Fehler. Um meinem Beispiel geht er dann gleich nach Finnaly und es entsteht kein Image.
evtl. müsste ich nun die erste Seite anders markieren.
Gruss Marcel
-
Hallo Marcel,
mit Selection sollte man generell nicht arbeiten. Ich würde dir empfehlen so zu arbeiten:
document.Slides(1).Copy
Du musst es vorher nicht selecten. Wenn Powerpoint nicht sichtbar ist kannst du eh nicht mit Select arbeiten.
Cheers, Jörn Bosse
Microsoft Student Partner- Als Antwort markiert Marcel Garaventa Freitag, 10. Juni 2011 08:51