Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.05.2014, 00:57
rapashocker rapashocker вне форума
Прохожий
 
Регистрация: 10.04.2014
Сообщения: 20
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию power point

Здорово всем есть вопросик я открываю презинтацию в PowerPointApplication все норм а как сделать так чтоб после того как все слайды закончились прграмма автоматом закрывалась. Без рукоприкладства)))
Ответить с цитированием
  #2  
Старый 15.05.2014, 02:19
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно отслеживать названия кадров или просматривать сообщения - здесь нужны "стопаря" окончания презы, если найдёте такое то вот это убъёт активную прогу по имени класса или заголовку окна
Код:
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;
хотя нельзя исключать вероятность того что и у PPA есть свой API, доступный извне
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
rapashocker (15.05.2014)
  #3  
Старый 20.05.2014, 16:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Самое смешное что через 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;
Drkb: 04457
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter