![]() |
|
|
#1
|
|||
|
|||
|
Здорово всем есть вопросик я открываю презинтацию в PowerPointApplication все норм а как сделать так чтоб после того как все слайды закончились прграмма автоматом закрывалась. Без рукоприкладства)))
|
|
#2
|
||||
|
||||
|
Можно отслеживать названия кадров или просматривать сообщения - здесь нужны "стопаря" окончания презы, если найдёте такое то вот это убъёт активную прогу по имени класса или заголовку окна
Код:
KillProgram(ClassName: PChar; WindowTitle: PChar); const PROCESS_TERMINATE = $0001; var ProcessHandle : THandle; ProcessID: Integer; TheWindow : HWND; begin TheWindow := FindWindow(Classname, WindowTitle); GetWindowThreadProcessID(TheWindow, @ProcessID); ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId); TerminateProcess(ProcessHandle,4); end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
rapashocker (15.05.2014)
| ||
|
#3
|
||||
|
||||
|
Самое смешное что через OLE управление презентациями осуществляется просто и легко, без особых заморочек напр.
Код:
uses comobj;
procedure TForm1.Button1Click(Sender: TObject);
var
PowerPointApp: OLEVariant;
begin
try
PowerPointApp := CreateOleObject('PowerPoint.Application');
except
ShowMessage('Error...');
Exit;
end;
// или
try
PowerPointApp:= GetActiveOleObject('PowerPoint.Application');
except
PowerPointApp:= CreateOleObject('PowerPoint.Application');
end;
// Make Powerpoint visible
PowerPointApp.Visible := True;
// Show powerpoint version
ShowMessage(Format('Powerpoint version: %s',[PowerPointApp.Version]));
// Open a presentation
PowerPointApp.Presentations.Open('c:\MyPresentation.ppt', False, False, True);
// Show number of slides
ShowMessage(Format('%s slides.',[PowerPointApp.ActivePresentation.Slides.Count]));
// Run the presentation
PowerPointApp.ActivePresentation.SlideShowSettings.Run;
// Go to next slide
PowerPointApp.ActivePresentation.SlideShowWindow.View.Next;
// Go to slide 2
PowerPointApp.ActivePresentation.SlideShowWindow.View.GoToSlide(2);
// Go to previous slide
PowerPointApp.ActivePresentation.SlideShowWindow.View.Previous;
// Go to last slide
PowerPointApp.ActivePresentation.SlideShowWindow.View.Last;
// Show current slide name
ShowMessage(Format('Current slidename: %s',[PowerPointApp.ActivePresentation.SlideShowWindow.View.Slide.Name]));
// Close Powerpoint
PowerPointApp.Quit;
PowerPointApp := UnAssigned;
end; |