Hej! Jag skulle göra om det till en HTML application, ett program implemented som en kombination av web sida och script. I VB skulle du kunna gjort ungefär så här. <b>TimeOutTimer.Interval = DisplayTimeInSeconds * 1000</b> Vissa, läs Sven Pon, skulle utrycka sig så här: Du tänker fel! Andreas, jag såg att det gällde VBscript därför började jag mitt svar med Japp, det rör sig om ett VBScript. Jag misstänkte att det inte skulle fungera att visa en messagebox som försvinner av sig själv efter en viss tid. Tack för era inlägg!Meddelanderuta som försvinner av sig själv
Jag har ett VBScript som kör igång ett litet program för att konvertera pdf-filer till tif-filer. Sökvägen till pdf-filerna som ska konverteras lagras först i en array och sedan skickas de en och en som argument till en Sub som anropar konverteringsprogrammet. Varje gång ett anrop går till programmet vill jag att ett meddelande visas för användaren, så att han/hon vet status på scriptkörningen. Den vanliga MsgBox duger inte eftersom användaren måste bekräfta via en knapptryckning. Detta blir "lite jobbigt" om man tex ska konvertera 100 pdf-filer. Nu till min fundering. Kan man visa ett meddelande som försvinner av sig själv? Antingen vid nästa anrop till programmet, eller efter en viss tid?
Mvh / RogerSv: Meddelanderuta som försvinner av sig själv
Du har då möjlighet att skap ett användargränssnitt som på ett ickemodalt sätt kan representera hur jobbet framskridit och ge möjlighet att pausa, redigera och avbryta.
Jag tror det är "svårt"(läs omöjligt) att från ett vbscript(vbs fil) sätta en timout på en messagebox.Sv: Meddelanderuta som försvinner av sig själv
Skapa ett formulär(MessageForm) där BorderStyle = Fixed Dialog, lägg till en label (MessageLabel), en OK-knapp(OkCommand) och en timer(TimeOutTimer) men Enable = False.
Koden i formuläret kan sen se ut så här. Jag har inte lagt till någon felhantering.
<code>
Option Explicit
Public Sub Initiate(Message As String, Optional DisplayTimeInSeconds As Integer = 0)
Me.MessageLabel.Caption = Message
TimeOutTimer.Enabled = False
If DisplayTimeInSeconds > 0 Then
TimeOutTimer.Interval = DisplayTimeInSeconds * 1000
TimeOutTimer.Enabled = True
End If
Me.Visible = True
End Sub
Private Sub OkCommand_Click()
closeForm
End Sub
Private Sub TimeOutTimer_Timer()
TimeOutTimer.Enabled = False
closeForm
End Sub
Private Sub closeForm()
Unload Me
End Sub
</code>
För att testa detta skapade jag en modul där jag la in följande kod
<code>
Option Explicit
Sub main()
Dim msgFrm As MessageForm
Set msgFrm = New MessageForm
msgFrm.Initiate "Meddelande 1", 5
Set msgFrm = New MessageForm
msgFrm.Initiate "Meddelande 2", 15
Set msgFrm = New MessageForm
msgFrm.Initiate "Meddelande 3", 10
End Sub
</code>Sv:Meddelanderuta som försvinner av sig själv
Om man multiplicerar med 0 blir svaret 0 eller ? bör det inte vara +
Tänker jag fel ?Sv:Meddelanderuta som försvinner av sig själv
<b>
Och ! vad är det för vits med det ? .Läs grundfrågan.
"Godag Yxskaft" kan man säga om ditt svar.
</b>
Jag vill bara påpeka att i frågan står det att det rör sig om ett VBScript vilket jag tror syftar på en VBS fil inte en VB applikation.
Men jag tycker ditt inläg annars är ett mycket bra bidrag. Sv: Meddelanderuta som försvinner av sig själv
Interval för timer är i millisekunder, DisplayTimeInSeconds är i sekunder. En sekund är tusen millisekunder.
Om man vill visa dialogen normalt, inte stänga ned sig skickar man in noll sekunder.Sv: Meddelanderuta som försvinner av sig själv
"I VB skulle du kunna gjort ungefär så här."
Det var tänkt att ge frågeställaren en idé om hur man kan gå till väga.Sv:Meddelanderuta som försvinner av sig själv