Hej ! Spånar lite fritt, skulle fundera på om man kan Hej Sven Sedan är det ju så om du öppnat PowerPointViewern med Yes så här ser kodningen ut: Tillägg: Jag ändrade namnangivelse på viewern till Start.Exe men det är kuriosa i sammanhanget // Skrev fel på Alt + F4 Det som här står i Command2 lägger du i din Timer 5 min Tack Sven Hej Sven funkade utmärkt meget meget tack...,men Det här lär fungera, men det blir i längden mycket inflexibelt. Så kan du göra för att få en 5 min Timer på någon sek rätt Sven, "klockrent" är väl ett passande ord i sammanhanget. Tidsfaktorn funkade perfekt ! Det är bara så j-a kul när funktionaliteten uppvisas som man sökte efter, vilket för en relativ nybörjare innebär en hel del AHA-upplevelser.Automatiskt avsluta Power point bildspel
Är det någon som kan kodningen för detta:
Har kombinerat ett program gjort i VB 6 med ett power point bildspel som stöds av hjälpprogrammet power pointviewer.
I VB6 programmet (alltså en .EXE-fil) kommer man via en kommandoknapp till power point bildspelet. Sedan är det bara att "tuta och köra" med bildspelet, likaså är det inga problem att avsluta bildspelet för att återgå till huvudprogrammet som gjorts i VB6.
Min fråga, eftersom det bl.a. finns en VB-editor i Power point (Jag har office-97) går det att få power point bildspelet att automatiskt avslutas, istället för som nu måste jag trycka på en knapp för att avsluta bildspelet och återgå till huvudprogrammet i EXE.filen.
Microsoft power point har ju en inbyggd tidsklocka som återgår till första sidan i bildspelet efter ca 5 minuter. Snyggast hade varit om bildspelet istället avslutades efter ca 5 minuter (om ingen aktivitet gjorts i bildspelet).
I mitt huvudprogram VB6 har jag en reset timer som stänger ner en inaktiva sida efter ca 3 minuter.
Timer intervall inställd på 60000
Koden
ser ut så här:
Form1.
Option Explicit
Dim inactiveTime As Long
Dim c As Byte
Dim F As Boolean
Private Const MF_BYPOSITION = &H400&
Private Const MF_REMOVE = &H1000&
'OBS, keypreview = True
Form2.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Introduktion.resetTimer
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Introduktion.resetTimer
End Sub
Slut
Hoppas på svar..??
Mvh
KennethSv: Automatiskt avsluta Power point bildspel
låta Timern göra SendKeys {% F4},True efter 5 min dvs Alt +F4 stänger ner Active prog.Sv: Automatiskt avsluta Power point bildspel
Låter inte helt fel.
Det är ju koden som kan vara problematiskt, men det kanhända är en enkel lösning.
Tycker så här i efterhand att funktionaliteten i powerpoint borde medgett automatisk avstängning av power point bildspelet....men nu är det ju inte så.
Mvh
KennethSv: Automatiskt avsluta Power point bildspel
ret = Shell(.....osv) så har du ju ProcessID i variabeln ret,med den kan du "kill:a" processen.Sv: Automatiskt avsluta Power point bildspel
Private Sub Command16_Click()
Dim ret As Long
'här skall det så rätt sökväg till viewern mellanslag filen du vill visa
ret = Shell("C:\Boken\Start.EXE Bokslutet.pps", vbNormalFocus)
End Sub
Om man ska "killa" den hur menar Du kodningen då skulle se ut med ref: ProcessID
i variabeln ret, med ....etc.
Menar Du att lägga in den i reset timer´n eller och i så fall hur??
Mvh
KennethSv: Automatiskt avsluta Power point bildspel
KennethSv: Automatiskt avsluta Power point bildspel
Så här skall det vara SendKeys "%{F4}",True
Håller på att kolla ProcessID köret.Sv: Automatiskt avsluta Power point bildspel
<code>
Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Const SYNCHRONIZE = &H100000
Const PROCESS_TERMINATE As Long = &H1
Dim ProcessID As Long
Private Sub Command1_Click()
ProcessID = Shell("C:\Boken\Start.EXE Bokslutet.pps", vbNormalFocus)
End Sub
Private Sub Command2_Click()
Dim hProcess As Long
If ProcessID Then
hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_TERMINATE, 0&, ProcessID)
If hProcess Then
TerminateProcess hProcess, 0&
CloseHandle hProcess
ProcessID = 0
End If
End If
End Sub
</code>Sv: Automatiskt avsluta Power point bildspel
Ska checka och återkommer med resultatet.
Mvh
KennethSv: Automatiskt avsluta Power point bildspel
Tidsstyrningen med timern = 1000 ms = 1 sek
Max på timerinställningen verka vara ca 1 minut = 60000
Resten måste eller kanske bör läggas som extrakodning i timer.??
Hur får jag ett högre eller rättare sagt längre värde som exempelvis de 5 minuter eller åtminstone 3 minuter innan bildspelet "killas".
Mvh
KennethSv: Automatiskt avsluta Power point bildspel
Det vore bättre att skapa ett PowerPoint-objekt i VB och använda det. Då kan du hantera så förbannat mycket mer...Sv: Automatiskt avsluta Power point bildspel
<code>
Option Explicit
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Const SYNCHRONIZE = &H100000
Const PROCESS_TERMINATE As Long = &H1
Dim ProcessID As Long
Dim hProcess As Long
Dim FiveMin As Long
Private Sub Command1_Click()
'Denna kod har du någon annastans principen enl detta
ProcessID = Shell("C:\Boken\Start.EXE Bokslutet.pps", vbNormalFocus)
Timer1.Interval = 60000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer() 'Timern gör något efter ca 5min
'Timer Interval = 60000 1 min
FiveMin = FiveMin + 1
If FiveMin Mod 5 = 0 Then 'var 5 :e minut
If ProcessID Then
hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_TERMINATE, 0&, ProcessID)
If hProcess Then
TerminateProcess hProcess, 0&
CloseHandle hProcess
ProcessID = 0
End If
End If
FiveMin = 0
Timer1.Enabled = False
End If 'FiveMin
End Sub
</code>Sv: Automatiskt avsluta Power point bildspel
Jag uppskattar empatikänslan hos Er som svarar på exempelvis mina frågeinlägg. Utan detta intresse av att lösa andras försök till lösningar av ex. VB-programmering skulle säkert utarma intresset hos ett flertal nybörjare.
Vad som trots det är viktigt och som säkert i många fall också görs, är att innan frågeställningen/frågeställningarna ställs i PelleSoft, prioritera egna allvarliga sökningar, experimenterade av problemlösningen.
Ja det var allt.
Tack Sven
Mvh
Kenneth