/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Automatisering af Powepoint (2k)
Fra : Peter Lykkegaard


Dato : 21-08-01 12:02

Hejsa - Jeg arbejder på noget automatisering af Powerpoint 2000
Du går for så vidt ganske fornuftigt

Men jeg har nogle deadends i forbindelse med programmet

Ideen er at mit VB program skal vise forskellige ppt filer i en endeløs
løkke
Jeg har brug for at stoppe programmet i forbindelse med vedligeholdelse på
maskinen

Jeg kan gå ind og slå programmet ihjel og på den måde komme ud, men det
synes jeg ikke er så smart

Jeg har eksperimenteret lidt med window handle men det virker ikke lige da
selve powerpoint stadig kører selvom jeg stopper præsentationen vha escape

Nogen ideer?

mvh/Peter Lykkegaard



 
 
Bjarke Walling Peter~ (21-08-2001)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 21-08-01 16:22

Peter Lykkegaard skrev:
[klip]
> Jeg har eksperimenteret lidt med window handle men det virker ikke lige da
> selve powerpoint stadig kører selvom jeg stopper præsentationen vha escape
>
> Nogen ideer?

Hvis du bare vil lukke programmet, kan du evt. gøre sådan:


Private Declare Function GetWindow Lib "user32" (ByVal _
hWnd As Long, ByVal wCmd As Long) As Long

Private Declare Function GetWindowText Lib "user32" _
Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal _
lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindowTextLength Lib "user32" _
Alias "GetWindowTextLengthA" (ByVal hWnd As Long) _
As Long

Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd As Long, ByVal wMsg As _
Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_CLOSE = &H10

Private Enum xCompareMethod
xBinaryCompare
xTextCompare
End Enum

Private Sub CloseWindow(hWnd As Long)
If hWnd = 0 Then Exit Sub
SendMessage hWnd, WM_CLOSE, 0, 0
End Sub

Private Function GetWindowHWnd(WindowCaption As String, _
Optional Compare As xCompareMethod) As Long
Dim wCaption As String
Dim hWnd As Long
Dim ln As Long
If IsEmpty(Compare) Then
Compare = xBinaryCompare
End If
If Compare = xTextCompare Then
WindowCaption = LCase$(WindowCaption)
End If
GetWindowHWnd = 0
hWnd = GetWindow(Me.hWnd, 0)
Do While hWnd <> 0
ln = GetWindowTextLength(hWnd)
wCaption = Space$(ln)
If GetWindowText(hWnd, wCaption, ln) > 0 Then
If Compare = xTextCompare Then
wCaption = LCase$(wCaption)
End If
If InStr(wCaption, WindowCaption) <> 0 Then
GetWindowHWnd = hWnd
Exit Do
End If
End If
hWnd = GetWindow(hWnd, 2)
Loop
End Function

Private Sub Command1_Click()

' *****************
' Og sådan gør man så:
' *****************
CloseWindow GetWindowHWnd("Power Point", xTextCompare)

End Sub


- Bjarke Walling Petersen



Peter Lykkegaard (22-08-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 22-08-01 13:41

"Bjarke Walling Petersen" <bwp@bwp.dk> wrote in message
news:<9ltu8r$2s1p$1@news.cybercity.dk>...
> Peter Lykkegaard skrev:
> [klip]
> > Jeg har eksperimenteret lidt med window handle men det virker ikke lige
da
> > selve powerpoint stadig kører selvom jeg stopper præsentationen vha
escape
> >
> > Nogen ideer?
>
> Hvis du bare vil lukke programmet, kan du evt. gøre sådan:

[Snip - lidt kode]
>
> Private Sub Command1_Click()
> CloseWindow GetWindowHWnd("Power Point", xTextCompare)
> End Sub
>
Njah, jeg har selv overvejet om jeg skal lave noget brugerfjæs til min vb
app
På den måde har jeg fuld kontrol over Powerpoint (via objekt reference til
PowerPoint.Application og bruge metoden Quit)
For at stoppe den endeløse løkke skal man så alt-tabbe til vb programmet og
vælge stop

Jeg tænkte mere på om der var nogle metoder til at finde ud af hvilke
windows handles der er aktive?

Hmm kom lige til at læse hvad der stod i Command1_Click - er der noget i
koden der evt kan bruges?
Jeg har filnavn på præsentationen samt reference til metoder/properties på
Presentation objectet

Jeg kan ikke bruge PP97FrameClass eller PP9FrameClass (97/2k) da
POWERPNT.EXE stadig er aktiv selvom jeg har afbrudt den aktive præsentation
Jeg forestillede mig at der må være nogle handles til den aktive
præsentation der kører i "View" tilstand

Løsningen bliver nok noget brugerfjæs, selvom det andet kunne være sjovt at
lave

Jeg har efterhånden brugt nogle timer på at kravle MSDN igennem, ikke første
gang jeg løber panden mod en mur selvom det nu er sjældent

mvh/Peter Lykkegaard




Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste