Programm starten nach 30 Sekunden oder manuelle Auswahl Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

viper73
Posts: 4
Joined: 03 Jan 2023, 12:39

Programm starten nach 30 Sekunden oder manuelle Auswahl

03 Jan 2023, 16:17

Hallo zusammen,

ich möchte mir ein Script in den Windows Autostart packen. Dieses soll nach 30 Sekunden ein Programm starten. Man sollte aber manuell abbrechen können und doch ein anderes alternativ Starten können (oder das ganze auch abbrechen - also gar kein Programm starten).

Dieses soll also in etwa so aussehen damit es deutlicher wird was ich möchte:

Code: Select all

Welches Programm willst du starten:

1 = Programm 1 (mspaint)
2 = Programm 2 (calc)
0 = Script abbrechen (ohne Auswahl)

Nach 30 Sekunden ohne Eingabe wird automatisch (1) gestartet.
Ich dachte an ein YesNoCancel Feld, bin aber für andere Vorschläge offen.
(Achtung: Bin AHK Anmfänger und hab bisher nur etwas Excel VBS gemacht)

Code: Select all

MsgBox, 3,, Welches Programm starten? (Ja=mspaint Nein=calc)
IfMsgBox Yes
	{
    MsgBox Sie haben Ja gedrückt.
	Run, C:\Windows\System32\mspaint.exe
	}
Else IfMsgBox No
	{
    MsgBox Sie haben Nein gedrückt
	Run, C:\Windows\System32\calc.exe
	}
Else IfMsgBox Cancel
    MsgBox Sie haben Cancel gedrückt.
Wie kann ich hier einen Timer einbauen der nach 30 Sekunden Ja drückt?
Oder alternativ der nach 30 Sekunden die MsgBox beendet und das Programm direkt startet?
Falls es etwas noch einfacheres gibt das ich für den Zweck nehmen könnte einfach Vorschlagen.

Vielen Dank schomal!
Gruß, Viper73
KHA
Posts: 407
Joined: 21 Aug 2018, 11:11

Re: Programm starten nach 30 Sekunden oder manuelle Auswahl  Topic is solved

03 Jan 2023, 18:25

Hi,
einfach, auf deiner Idee basierend:

Code: Select all

MsgBox, 3,, Welches Programm starten? (Ja=mspaint Nein=calc),30
IfMsgBox Yes
	{
    MsgBox Sie haben Ja gedrückt.
	Run, C:\Windows\System32\mspaint.exe
	}
Else IfMsgBox No
	{
    MsgBox Sie haben Nein gedrückt
	Run, C:\Windows\System32\calc.exe
	}
Else IfMsgBox Cancel
    {
    MsgBox Sie haben Cancel gedrückt.
    ExitApp
    }
Else IfMsgBox TimeOut
    {
    MsgBox Zeit ist abgelaufen
    Run, C:\Windows\System32\mspaint.exe
    }


Oder, etwas komplexer:

Code: Select all

#NoEnv
#Singleinstance Force


ProgrammListe := {"Taschenrechner" : "Calc.exe"
	,"Editor" : "Notepad.exe"
	,"Zeichnen" : "MsPaint.exe"}
TimerInSek := 30

Gui, 1: Font, S12 cBlack w400, Arial
Gui, 1: Color, White, White
Gui, 1: margin, 10, 10
	For Programm, ProgrammPfad in ProgrammListe
	     Gui, 1:Add, Button, w250 gProgrammStarten,% Programm

Gui, 1:Add, Text, vTimer Center w250, % TimerInSek 
SetTimer, Count, 1000
Gui, 1:Show,Center, Programm Starter
Return


ProgrammStarten:
Run, % ProgrammListe[A_GuiControl]
ExitApp
Return

Count:
If (TimerInSek = 0) {
     SetTimer, Count, Off
     Run, % ProgrammListe["Taschenrechner"]
}Else{
     TimerInSek--
     GuiControl, Text, Timer, %TimerInSek%
}
Return


1GuiClose:
GuiClose:
ExitApp
viper73
Posts: 4
Joined: 03 Jan 2023, 12:39

Re: Programm starten nach 30 Sekunden oder manuelle Auswahl

04 Jan 2023, 05:53

Vielen Dank @KHA
also das geänderte von mir finde ich schon super, aber das zweite von Dir ist ja wirklich mega!
Genau sowas wollte ich! :dance: :bravo:
viper73
Posts: 4
Joined: 03 Jan 2023, 12:39

Re: Programm starten nach 30 Sekunden oder manuelle Auswahl

07 Oct 2023, 15:04

@KHA

Du hast mir mal folgendes Script gemacht, welches auch super funktioniert.
Nun habe ich Autohotkey 2.0.10 installiert und da meckert es bei mir das es ein Script nur für AHK v1 ist.
Könntest du mir das umschreiben damit es in AHK 2.0 funktioniert? Ich weiß nicht welche Befehle sich hier geändert haben...

Noch eine zweite Sache, wenn nach 30 Sekunden das Script automatisch der "Taschenrechner" startet, dann schließt sich das Menü nicht selbst, sondern ich muß das manuell mit "beenden" machen. Könnte man das noch so machen das sich das Menü automatisch schließt wenn nach dem Timer das Programm automatisch gestartet wird?

Code: Select all

#NoEnv
#Singleinstance Force


ProgrammListe := {"Taschenrechner" : "Calc.exe"
	,"Editor" : "Notepad.exe"
	,"Zeichnen" : "MsPaint.exe"}
TimerInSek := 30

Gui, 1: Font, S12 cBlack w400, Arial
Gui, 1: Color, White, White
Gui, 1: margin, 10, 10
	For Programm, ProgrammPfad in ProgrammListe
	     Gui, 1:Add, Button, w250 gProgrammStarten,% Programm

Gui, 1:Add, Text, vTimer Center w250, % TimerInSek
SetTimer, Count, 1000
Gui, 1:Show,Center, Programm Starter
Return


ProgrammStarten:
Run, % ProgrammListe[A_GuiControl]
ExitApp
Return

Count:
If (TimerInSek = 0) {
     SetTimer, Count, Off
     Run, % ProgrammListe["Taschenrechner"]
}Else{
     TimerInSek--
     GuiControl, Text, Timer, %TimerInSek%
}
Return


1GuiClose:
GuiClose:
ExitApp

Vielen Dank schonmal,
Gruß, Viper73
garry
Posts: 3787
Joined: 22 Dec 2013, 12:50

Re: Programm starten nach 30 Sekunden oder manuelle Auswahl

08 Oct 2023, 06:23

add exitapp

Code: Select all

;---     
     Run, % ProgrammListe["Taschenrechner"]
	 exitapp
KHA
Posts: 407
Joined: 21 Aug 2018, 11:11

Re: Programm starten nach 30 Sekunden oder manuelle Auswahl

08 Oct 2023, 07:36

Code: Select all

#Requires AutoHotkey v2

ProgrammListe := Map("Taschenrechner", "Calc.exe", "Editor", "Notepad.exe", "Zeichnen", "MsPaint.exe")
TimerInSek := 30

ProgrammStarten := Gui(, "Programm Starter")
ProgrammStarten.SetFont("S12 CBlack W400", "Arial")
ProgrammStarten.BackColor := "White"

   For Programm, ProgrammPfad in ProgrammListe
      ProgrammStarten.Add("Button","w250",Programm).OnEvent("Click", Starten)

Timer := ProgrammStarten.Add("Text" ,"W250 Center VTimer", TimerInSek)
ProgrammStarten.OnEvent("Close", ExitGui)
ProgrammStarten.OnEvent("Escape", ExitGui)
SetTimer Count, 1000
ProgrammStarten.Show()


Starten(Btnobj, *){
Run ProgrammListe[Btnobj.Text]
ExitApp
}


Count(){
Static TimerInSek := 30
If (TimerInSek = 0) {
   SetTimer Count, 0
   Run ProgrammListe["Taschenrechner"]
   ExitApp   
}Else
      Timer.Text := --TimerInSek
}


ExitGui(*){
   ExitApp()
}

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: gero and 13 guests