1

Konu: Açık Dosyayı Kapatmak

ShellExecute(0,'open','Dosyalar\reklam.pps',0,0,1) komutuyla dosyayı açabiliyorum. Ancak belli bir zaman sonra bu dosyayı kodla kapatmam gerekiyor. open yerine close yaptım olmadı. keyboard ile esc tuşunu bastırdım yine olmadı. Açılan bu dosyayı kodla nasıl kapatabilirim.

2

Re: Açık Dosyayı Kapatmak

Üstadlardan Yardım Bekliyorum...

3

Re: Açık Dosyayı Kapatmak

WSH ile dene

Visual Fox Pro
#define SW_NORMAL 1

#define SW_MINIMIZED 2
#define SW_MAXIMIZED 3
 
 
&& calistirma kodu
oWSShell = CREATEOBJECT("WScript.Shell")
oWSShell.Run(full_path_to_ext_application,SW_NORMAL,.T.)


Visual Fox Pro
&& kapatma kodu

oWSShell.Run(full_path_to_ext_application,SW_NORMAL,.F.)

4

Re: Açık Dosyayı Kapatmak

Malesef olmadı. pps yine çalışmaya devam etti

5 Son düzenleyen, foxman (14.10.2008 09:56:43)

Re: Açık Dosyayı Kapatmak

Visual Fox Pro
DECLARE Sleep IN Win32API INTEGER   

 
oPPT = Createobject("Powerpoint.Application")
 
oPPTPres = oPPT.Presentations.Open("Dosyalar\reklam.pps", , , 0)
oPPTPres.SlideShowSettings.Run
 
sleep(2000)
 
oPPTPres.Close
 
RELEASE oPPT,oPPTPres

6

Re: Açık Dosyayı Kapatmak

Sayın foxman, Teşekkür ederim.
pps dosyası çalışıyor. Yani Run Seçeneği tamam.  Ama close seçeneği pps dosyasını kapatmıyor. pps çalışmaya devam ediyor.

7 Son düzenleyen, foxman (14.10.2008 12:45:35)

Re: Açık Dosyayı Kapatmak

Defalarca denedim bu haliyle çalışıyor. Programın farklı bir yerinde close yapıyorsan, belki objeleri public yapmak gerekebilir. Eğer aynı şekilde kullanmıyorsan, kullandığın şeklini gönderebilirmisin.


Visual Fox Pro
DECLARE Sleep IN Win32API INTEGER   

 
PUBLIC oPPT,oPPTPres
oPPT = Createobject("Powerpoint.Application")
 
oPPTPres = oPPT.Presentations.Open("C:\zzz\DW.pps", , , 0)
oPPTPres.SlideShowSettings.Run
 
sleep(2000)
 
oPPTPres.Close
 
RELEASE oPPT,oPPTPres

8

Re: Açık Dosyayı Kapatmak

Evet. Farklı yerde kullanıyorum. Kartlı geçiş sisteminde kullanacağım bunu. Kişi Kart okuyucudan kartını okuttuktan 5 sn sonra bu pps dosya devreye giriyor. Başka bir kişi kartını okuttuğu zaman pps nin kapanması gerekiyor. İşte problem burada oluyor. pps devreden çıkmıyor.Yani kart makinesi boşta iken reklam amaçlı pps nin devreye girmesini, bir başkası kartını okuttuğu zaman devreden çıkmasını istiyorum.

9

Re: Açık Dosyayı Kapatmak

pps'yi video dosyasına çevir. o zaman istediğini yaparsın.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

10 Son düzenleyen, foxman (15.10.2008 13:35:41)

Re: Açık Dosyayı Kapatmak

Aşağıdaki gibi class şeklindede olabilir.
PPS in kapanmaması, programdaki kart okutulan yere giderken veya  dönerken oluşan bir problem ile ilgili olabilir.


Visual Fox Pro
Declare Sleep In Win32API Integer

Public oPpsViewer
oPpsViewer=Createobject("PpsViewer")
 
cPpsFile="C:\zzz\DW.pps"
*!*    burası program ilk çalıştırıldığında kullanılabilir.
If oPpsViewer.PPT.SlideShowWindows.Count = 0
    oPpsViewer.PpsRun(cPpsFile)
Endif
 
 
*!*    kart okutma ile ilgili kısım
oPpsViewer.PpsClose()
 
*!*    kart okuma işleminden sonraki program satırlarının
*!*    procedure veya obje nin çalıştırıldığı yer
 
*!*    oPpsViewer.PpsClose() close buradada olabilir
Sleep(5000)
oPpsViewer.PpsRun(cPpsFile)
 
 
 
 
 
Define Class PpsViewer As Custom
    PPT     = Null
    PPTPres = Null
 
    Procedure Init
        This.PPT = Createobject("Powerpoint.Application")
    Endproc
 
    Procedure PpsRun
        Lparameters PpsFile
 
        This.PPTPres = This.PPT.Presentations.Open(PpsFile, , , 0)
        This.PPTPres.SlideShowSettings.Run
    Endproc
 
    Procedure PpsClose
        This.PPTPres.Close
    Endproc
 
Enddefine