Ich bedanke mich bei euch für eure informationen ich werde es mir nochmal genau überlegen wenn würde ich mit den Tablet auf dem Schoß arbeiten
Ihr sagte da ja das ist da zu Problemen kommen kann
Ich bedanke mich bei euch für eure informationen ich werde es mir nochmal genau überlegen wenn würde ich mit den Tablet auf dem Schoß arbeiten
Ihr sagte da ja das ist da zu Problemen kommen kann
WhiteHorse : Ich denke die Displaygröße ist eher eine Frage des Geldes und des Komforts. Generell finde ich einen größeren Bildschirm angenehmer, muss aber halt auch "geschleppt" und bezahlt werden.
Beispiel: Lenovo IdeaPad bekommst du schon ab 400€ (10,5"), ein Xiamoi ab ~700€ (12,4") und bei 13 Zoll startest du schon bei knapp 1000€ (Lenovo Yoga). Die Surface sind dann nochmal gut 20-30% teurer.
Ok Danke, Ich denke ein 10 Zoll sollte reichen und ein neues würde ich mir nicht kaufen, ein gebrauchtes Tablet reicht mir völlig zu, viel als programmieren werde ich damit nicht machen.
Ich Danke euch für eure Information, wenn Ihr noch paar ideen Habt, höre ich mir diese gerne an. ![]()
Mit meinem Handy hätte ich das auch gemacht aber leider lässt sich autoit für Android nicht installieren was verständlich ist.
Hi WhiteHorse,
ich habe ein ähnliches Szenario mal ein paar Monate versucht/gelebt. Mein damaliges Tablet hatte eine Full-HD Auflösung und die Leistung reichte auch aus, AutoIt ohne Probleme nutzen zu können. Was mich allerdings davon abgebracht hatte, weil es mich sehr nervte war, dass ich ohne richtige Tastatur keinen Spaß an der Entwicklung von Programmen habe. Die Windows interne Tablet-Tastatur war für mich grausam in der Bedienung.
💡 Also mein Tipp: Wenn du dies tun möchtest, dann empfehle ich ein Tablet mit Tastatur. Bspw. "Microsoft Surface (Pro)" [...] da gibt es diverse gebrauchte und trotzdem leistungsstarke Modelle (je nach dem was du ausgeben willst und kannst).Viele Grüße
Sven
Vielen Dank für die info ![]()
Ein Tablet mit Tastatur hatte ich mir auch schon überlegt ![]()
Und was für eine Display größe empfiehlst du mir reichen 10 Zoll oder lieber 12 Zoll?
Hallo ich habe mal ein paar fragen,
Ich überlege schon eine weile mir ein gebrauchtes Tablet zu holen was auf Windows basiert, damit auch Autoit installiert werden kann.
Leider kenne ich keinen, der mir sein Tablet ausleihen könnte damit ich das überhaupt erstmal teste, denn ich würde gerne erstmal wissen wie das mit der Auflösung ist, am Ende ist das eine übelste Schinderei?.
Warum ich dieses gerne auf ein Tablet machen möchte, liegt dabei das ich öfters im Auto sitze und ich 1h Auto fahre bis wir an der Baustelle ankommen und ich da gerne die Zeit nutzen würde, um mein Programm weiterzuentwickeln.
Wenn schon jemand dieses macht oder gemacht hat, wie ist das mit der Auflösung. Ist das alles so klein, dass das eher eine Qual ist oder sagt ihr 10 Zoll reichen aus, um gut damit zu arbeiten?
Und lassen sich die Scripts auch ausführen oder eher weniger? ein Mouseclick X Y wird mit Sicherheit nicht gehen, aber das ist auch nicht der Sinn dabei.
Gruß Whitey
Weil ich einfach eine magic number, in diesem Fall den Wert einer Konstanten (konkret 0), eingesetzt habe und dann MsgBoxConstants.au3 raus genommen haben.
Zu #include's im allgemeinen kannst du dir einfach die Hilfe anschauen.
Viele Grüße
Sven
Ok hab es geschnallt danke für die schnelle Hilfe
freut mich immer sehr, das man hier immer so gut aufgehoben ist echt Top ![]()
![]()
Kann man eigentlich aus einer Combo auch die Items verstecken, sodass man sie nicht mehr in der Combo angezeigt bekommt z. B. durch eine Checkbox wenn diese an geharkt ist. Das eben das Item 'Alle' aus $MainCombo
Versteckt/HIDE wird oder ist es da einfacher eine neue Combo oben drüber zu legen, die einfach nur die gewünschten Items entsprechen?
Hi WhiteHorse ,
deine Verschachtelungen sind das Problem. Schaue dir mal bitte meine kleine Modifikation hier an und falls du es nicht verstehst, gebe bitte Bescheid.Es sind nun damit alle MsgBox() erreichbar.
AutoIt Alles anzeigen#include-once #include <ComboConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 615, 437, 192, 124) $MainCombo = GUICtrlCreateCombo("MainCombo", 16, 16, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) GUICtrlSetData(-1, "Leer|Open Combo 2|Open Combo 3|Open Combo 4|Alle") GUICtrlSetCursor(-1, 0) $Combo2 = GUICtrlCreateCombo("Combo2", 16, 136, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) GUICtrlSetData(-1, "Text von Combo2") GUICtrlSetState($Combo2, $GUI_HIDE) GUICtrlSetCursor(-1, 0) $Combo3 = GUICtrlCreateCombo("Combo3", 16, 224, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) GUICtrlSetData(-1, "Text von Combo3") GUICtrlSetState($Combo3, $GUI_HIDE) GUICtrlSetCursor(-1, 0) $Combo4 = GUICtrlCreateCombo("Combo4", 16, 320, 145, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL)) GUICtrlSetData(-1, "Text von Combo4") GUICtrlSetState($Combo4, $GUI_HIDE) GUICtrlSetCursor(-1, 0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MainCombo $ComboReadProdukt = GUICtrlRead($MainCombo) Switch $ComboReadProdukt Case "Leer" GUICtrlSetState($Combo2, $GUI_HIDE) GUICtrlSetState($Combo3, $GUI_HIDE) GUICtrlSetState($Combo4, $GUI_HIDE) Case "Open Combo 2" GUICtrlSetState($Combo2, $GUI_SHOW) GUICtrlSetState($Combo3, $GUI_HIDE) GUICtrlSetState($Combo4, $GUI_HIDE) Case "Open Combo 3" GUICtrlSetState($Combo3, $GUI_SHOW) GUICtrlSetState($Combo2, $GUI_HIDE) GUICtrlSetState($Combo4, $GUI_HIDE) Case "Open Combo 4" GUICtrlSetState($Combo4, $GUI_SHOW) GUICtrlSetState($Combo2, $GUI_HIDE) GUICtrlSetState($Combo3, $GUI_HIDE) Case "Alle" GUICtrlSetState($Combo2, $GUI_SHOW) GUICtrlSetState($Combo3, $GUI_SHOW) GUICtrlSetState($Combo4, $GUI_SHOW) EndSwitch Case $Combo2 $ComboReadProduktCombo2 = GUICtrlRead($Combo2) Switch $ComboReadProduktCombo2 Case "Text von Combo2" MsgBox(0, "Information", "Ich bin nur ein Test für Combo 2") EndSwitch Case $Combo3 $ComboReadProduktCombo3 = GUICtrlRead($Combo3) Switch $ComboReadProduktCombo3 Case "Text von Combo3" MsgBox(0, "Information", "Ich bin nur ein Test für Combo 3") EndSwitch Case $Combo4 $ComboReadProduktCombo4 = GUICtrlRead($Combo4) Switch $ComboReadProduktCombo4 Case "Text von Combo4" MsgBox(0, "Information", "Ich bin nur ein Test für Combo 4") EndSwitch EndSwitch WEndViele Grüße
Sven
Ah Cool danke, also im endefekt nur das EndSwitch hochsetzen und nicht am Ende
Ich hätte aber eine frage zu den Befehlen #include ich blicke dort auch noch nicht ganz durch. Eigentlich muss das doch #include <MsgBoxConstants.au3> auch mit rein warum geht das jetzt? ![]()
Hallo Leute, ich hab mal eine allgemeine Frage, ich bin einfach nicht schlau daraus geworden. Ich poste hier mal ein Test Skript. Ich will mehrere Combo's benutzen, eine Combo ist kein Problem, aber wenn diese Combo eine weitere z. B. freischaltet egal ob $GUI_HIDE oder $GUI_SHOW oder schon mehrere vorhanden sind, kann ich nur eine benutzen, und die anderen gehen nicht.
Wenn einer mein Fehler erkennt, könnte dann bitte derjenige eine Ergänzung machen, wie es funktionieren würde.
Ich Danke Euch
MfG: Whitey
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
$MainCombo = GUICtrlCreateCombo("MainCombo", 16, 16, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Leer|Open Combo 2|Open Combo 3|Open Combo 4|Alle")
GUICtrlSetCursor (-1, 0)
$Combo2 = GUICtrlCreateCombo("Combo2", 16, 136, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Text von Combo2")
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetCursor (-1, 0)
$Combo3 = GUICtrlCreateCombo("Combo3", 16, 224, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Text von Combo3")
GUICtrlSetState($Combo3, $GUI_HIDE)
GUICtrlSetCursor (-1, 0)
$Combo4 = GUICtrlCreateCombo("Combo4", 16, 320, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Text von Combo4")
GUICtrlSetState($Combo4, $GUI_HIDE)
GUICtrlSetCursor (-1, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $MainCombo
$ComboReadProdukt = GUICtrlRead($MainCombo)
Switch $ComboReadProdukt
Case "Leer"
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetState($Combo3, $GUI_HIDE)
GUICtrlSetState($Combo4, $GUI_HIDE)
Case "Open Combo 2"
GUICtrlSetState($Combo2, $GUI_SHOW)
GUICtrlSetState($Combo3, $GUI_HIDE)
GUICtrlSetState($Combo4, $GUI_HIDE)
Case "Open Combo 3"
GUICtrlSetState($Combo3, $GUI_SHOW)
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetState($Combo4, $GUI_HIDE)
Case "Open Combo 4"
GUICtrlSetState($Combo4, $GUI_SHOW)
GUICtrlSetState($Combo2, $GUI_HIDE)
GUICtrlSetState($Combo3, $GUI_HIDE)
Case "Alle"
GUICtrlSetState($Combo2, $GUI_SHOW)
GUICtrlSetState($Combo3, $GUI_SHOW)
GUICtrlSetState($Combo4, $GUI_SHOW)
;Ab hier wenn ich sage ok Combo2, 'Text von Combo2' gibt er den Case befehl also die MsgBox nicht raus ich erhalte keine Nachricht somit weiß ich das er das Script bis dahin garnicht ließt
Case $Combo2
$ComboReadProduktCombo2 = GUICtrlRead($Combo2)
Switch $ComboReadProduktCombo2
Case "Text von Combo2"
MsgBox($MB_SYSTEMMODAL, "Information", "Ich bin nur ein Test für Combo 2")
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Case $Combo3
$ComboReadProduktCombo3 = GUICtrlRead($Combo3)
Switch $ComboReadProduktCombo3
Case "Text von Combo3"
MsgBox($MB_SYSTEMMODAL, "Information", "Ich bin nur ein Test für Combo 3")
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Case $Combo4
$ComboReadProduktCombo4 = GUICtrlRead($Combo4)
Switch $ComboReadProduktCombo4
Case "Text von Combo4"
MsgBox($MB_SYSTEMMODAL, "Information", "Ich bin nur ein Test für Combo 4")
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EndSwitch
EndSwitch
EndSwitch
EndSwitch
EndSwitch
WEnd
Alles anzeigen
Nachtrag :
Aus dem Satz werde ich nicht so ganz schlau.
Musikstücke einer Software (egal ob kommerziell oder Freeware) sind in aller Regel urheberrechtlich geschützte Komponenten. Von einer Auskopplung und externen Verwertung ohne Genehmigung des/der Urheber(s) würde ich abraten !
ok danke nochmal ![]()
OK ja dann werde ich es nicht umsetzen, dann bleiben die Soundtracks weg. Zumindestens werde ich versuchen mal Kontakt mit dem Support aufzunehmen, aber ich glaube das wird nichts bringen. ![]()
war ja nur so eine Idee
Guten Tag, es ist schon eine Weile her, ich habe unterdessen wieder viel dazu gelernt.
Also ich werde es so machen, ich werde beide Exen in eine Verpacken, ist auch besser und diese wird ja dann verschlüsselt, indem ich diese Datei fertigstelle.
Aber dennoch habe ich 2 Fragen.
1 Frage dieses Programm wird mehrere Bilder enthalten, die Bilder liegen im Moment einfach in einem Ordner drin, der mit dem Programm verknüpft ist. Ist es denn möglich das man diese Bilder (.png) Dateien in eine Datei verpackt, sodass man diese ordentlich verschließt und man nur mit dem Pfad per Programm diese öffnen kann?
2 Frage das Programm hat auch Soundtracks, die von dem Spiel HUNT Showdown sind, das Programm ist ja eine komplette Zusammenstellung (Collection) für das Game. Die Sache ist die ich weiß nicht ob ich dann die Musik davon verwenden darf, weil das Programm soll ja später veröffentlicht werden, das jeder es benutzen kann und da ist die Musik sonst mit dabei.
Wenn man aber sagt, das Programm soll ein YouTube Link im Hintergrund öffnen, wo dieses Lied auch läuft, dann greift das Programm ja nur auf YouTube zurück und liefert ja so nicht die Audios mit dazu. Es sind ca 7 verschiedene Audios, die durch Zufall durchgespielt werden. Kann man diese Möglichkeit auch mit Links machen?? Das er im Hintergrund ohne das man es sieht einfach das Lied spielt?
Ist eine Komplizierte frage ich weiß, aber ich wüsste auch nicht wie ich es sonst machen soll und Kontakt werde ich so schnell mit dem Support nicht aufnehmen können und ohne Sound finde ich es etwas blöd. :-/
Die Manipulation von Spielen ist eher nicht das Ziel von AutoIt.
Wie oben schon beschrieben ist es auch nicht mein Ziel, es ist eine Zusammenstellung wo alle Sounds Tricks und Tipps sowie später eine gute Statistik gelistet wird das Programm soll nicht in das Spiel eingreifen, wird es auch nicht.
Das erste Zitat ist nur der Ladeprozess und das Logo einige Funktionen sind nicht aktiv da sie noch fehlen. Bild und Videomaterial sowie Sound fehlen wenn es garnicht geht muss ich eben den ganzen Ordner hier mal hochladen, vieles ist untereinander verbunden. Ich weiß jetzt nicht ob euch das hier jetzt was bringt, um hier durch zublicken. Wiegesagt ansonsten kann ich den Ordner mal hochladen oder ich mach mal ein Video und könnte darin erklären wie alles gemeint ist, natürlich würde ich das Video dann auf Youtube auf nicht gelistet stellen somit geht es nicht an die Öffentlichkeit und könnte später dann den Link hier posten.
ZitatAlles anzeigen#include <VLC.au3>
#include <GUIConstants.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
;########################################
; Starte Logo was hinter dem laden liegt#
;########################################
#Region --- CodeWizard generated code Start ---
;SpashImage features: Title=No, Width=1400, Height=920
SplashImageOn("","Data\Picture\Hunt-Showdown Expansion-Collection LOGO.jpg","1400","920","-1","-1",3)
#EndRegion --- CodeWizard generated code End ---
;###################
; Starte ladebalken#
;###################
Example()
Func Example()
; Display a progress bar window.
ProgressOn("Loading Hunt Showdown Expansion-Collection......", "Daten werden abgerufen", "0%", -1, -1, BitOR($DLG_NOTONTOP, $DLG_MOVEABLE))
; Update the progress value of the progress bar window every second.
For $i = 1 To 76 Step 1
Sleep(80)
ProgressSet($i, $i & "%")
Next
; Set the "subtext" and "maintext" of the progress bar window.
ProgressSet(100, "Feritg", "Daten Erfolgreich geladen")
Sleep(2500) ;Timer das der Fertig Balken noch eine weile angezeigt wird
; Close the progress window.
ProgressOff()
EndFunc ;==>Example
Sleep (2500) ;Puffer das man das Bild/Logo noch kurz sieht
SplashOff() ;Das LOGO beim laden wird hier abgeschalten
;#########################
; Starte animations Intro#
;#########################
$file = 'Data\HUNT LOGO.mp4'
GUICreate('Hunt Showdown Expansion-Collection', @DesktopWidth, @DesktopHeight, -3, 0)
GUISetState(@SW_MAXIMIZE)
$obj = ObjCreate("WMPlayer.ocx")
GUICtrlCreateObj($obj, 0, 0, @DesktopWidth, @DesktopHeight)
With $obj
.URL = $file
.fullScreen = True
.windowlessVideo = False
.enableContextMenu = False
.enabled = True
.uiMode = "full"
.settings.autostart = True
.settings.mute = True
.settings.volume = 0
.settings.Balance = 0
EndWith
Sleep (1000)
SoundPlay("Audio/Hunt Sound start.mp3",0)
Sleep (6000)
guidelete("Hunt Showdown Expansion-Collection")
ShellExecute ("Main Menu.exe")
While 1
Sleep(100)
WEnd
Func CLOSEButton()
Exit
EndFunc
das Main menü die Buttons sind mit Bildern versehen
ZitatAlles anzeigen#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=Data\Picture\Buttons\Icns\Button Waffen.ico
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
$MainMenu = GUICreate("HUNT Showdown Expansion-Collection ", 1528, 746, 211, 149)
$Hauptbild = GUICtrlCreatePic("Data\Picture\Hunt-Showdown Expansion-Collection LOGO.jpg", 0, 0, 1169, 745)
$GameStartButton = GUICtrlCreateButton("", 1224, 47, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button Start Hunt Showdown.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group1 = GUICtrlCreateGroup("", 1213, 32, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("", 1213, 88, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$LegendaereJaegerButton = GUICtrlCreateButton("", 1224, 103, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button Legendäre Jäger.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group3 = GUICtrlCreateGroup("", 1213, 144, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$WaffenButton = GUICtrlCreateButton("", 1224, 160, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button Waffen.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group4 = GUICtrlCreateGroup("", 1213, 200, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$SoundsButton = GUICtrlCreateButton("", 1224, 215, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button Sounds.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group5 = GUICtrlCreateGroup("", 1213, 257, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$MusikButton = GUICtrlCreateButton("", 1224, 272, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button Musik.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group6 = GUICtrlCreateGroup("", 1213, 313, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$NewsButton = GUICtrlCreateButton("", 1224, 328, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button News.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group7 = GUICtrlCreateGroup("", 1213, 369, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$SpendenButton = GUICtrlCreateButton("", 1224, 385, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button Spenden.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group8 = GUICtrlCreateGroup("", 1213, 425, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$MadeByHT_WhiteHorseButton = GUICtrlCreateButton("", 1224, 440, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Button made by HT_WhiteHorse.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group9 = GUICtrlCreateGroup("", 1184, 8, 329, 721)
GUICtrlSetBkColor(-1, 0x000000)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Versoin = GUICtrlCreateLabel("Versoin 1.0.0", 1424, 720, 93, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$SchliessenButton = GUICtrlCreateButton("", 1224, 640, 259, 33, $BS_ICON)
GUICtrlSetImage(-1, "Data\Picture\Buttons\Icns\Schließen.ico", -1)
GUICtrlSetCursor (-1, 0)
$Group10 = GUICtrlCreateGroup("", 1213, 625, 281, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
Hello(Random(1,8,1))
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $GameStartButton
Case $LegendaereJaegerButton
Case $WaffenButton
Case $SoundsButton
Case $MusikButton
Case $NewsButton
Case $SpendenButton
Case $MadeByHT_WhiteHorseButton
Case $SchliessenButton
Exit
EndSwitch
WEnd
Func Hello($Number)
Select
Case $Number = 1
;Do func #1 code here
SoundPlay("Data\Musik\HUNT-Soundtrack1.mp3")
Sleep (125000)
Call (MusikRandom)
Case $Number = 2
;Do func #2 code here
SoundPlay("Data\Musik\HUNT-Soundtrack2.mp3")
Sleep (130000)
Call (MusikRandom)
Case $Number = 3
;Do func #3 code here
SoundPlay("Data\Musik\HUNT-Soundtrack3.mp3")
Sleep (252000)
Call (MusikRandom)
Case $Number = 4
;Do func #4 code here
SoundPlay("Data\Musik\HUNT-Soundtrack4.mp3")
Sleep (161000)
Call (MusikRandom)
Case $Number = 5
;Do func #5 code here
SoundPlay("Data\Musik\HUNT-Soundtrack5.mp3")
Sleep (221000)
Call (MusikRandom)
Case $Number = 6
;Do func #6 code here
SoundPlay("Data\Musik\HUNT-Soundtrack6.mp3")
Sleep (115000)
Call (MusikRandom)
Case $Number = 7
;Do func #7 code here
SoundPlay("Data\Musik\HUNT-Soundtrack7.mp3")
Sleep (228000)
Call (MusikRandom)
Case $Number = 8
;Do func #8 code here
SoundPlay("Data\Musik\HUNT-Soundtrack8.mp3")
Sleep (202000)
Call (MusikRandom)
EndSelect
EndFunc
Func MusikRandom ()
Hello(Random(1,8,1))
EndFunc
Erstmal finde ich es richtig super von euch das Ihr so hilfsbereit seit und so viele Vorschläge habt finde ich echt gut! ![]()
Zu dem Programm ich kann das hochladen ist ein ganzer Ordner da es eine Sammlung ist sind natürlich auch die Soundtracks von dem Spiel sowie Bild material dabei. Ich habe noch nicht nachgefragt wie das läuft, da es später ja auch veröffentlicht werden soll und wiegesagt die Lieder und Bilder vom Spiel stammen. Da darf ich das doch garnicht so verbreiten oder wie läuft das jetzt? da wäre doch jetzt eine cut Version wo dieses rausgeschnitten ist besser um es hier zu teilen?
gruß Whitey
Naja ich muss dazu sagen ich habe auch viele GUI's, jeder Button in dem Programm macht eine neue GUI auf und um es zu öffnen muss es eine exe sein wenn andere (außerhalb kein Autoit haben). Kann man auch die exe in eine Datei verschieben die verschlüsslt ist, die mit dem richtigen Pfad geöffnent werden kann so das mann die Hauptanwendung nutzen muss?
Hallo, ich baue gerade für ein Spiel eine Zusammenstellung heißt was es für Charaktere gibt was es für Items usw. Dieses Programm greift nicht in das Spiel ein oder sonst der gleich nicht das hier der verdacht im raume Steht ich möchte Cheaten...
Meine frage ist es möglich mit Autoit mehrere Skripte zu schreiben, ein Hauptskript ist die starter exe und die anderen Datein sind die Herzstücken dess Programmes. Mann kann ja mit Run oder ShellExecute eine andere Anwendung starten. Das Programm soll irgendwann später mal dann Diagramme bekommen, wo man sieht wie gut man war usw (eine ausführliche Statistik). Was wiederum dann in andere Datein abgespeichert wird so weit bin ich aber noch nicht und werde mich zu dem Thema nochmal melden da ich dort auch hilfe benötigen werde
egal.
Perfektes beispiel sind Spiele dort gibt es eine Anwendung/exe wo man startet und dann sind dort Datein die man so nicht öffnen kann. Bei C&C Generals Zero Hour sind es .big Datein, ich besitze den FinalBIG converter womit ich für das Spiel die Datein auslesen kann oder Bearbeiten kann.
Und das möchte ich auch gerne das Programm was ich mache soll später mal veröffentlicht werden, ich möchte aber nicht jede au3 Datei in eine exe verwandeln. So das sie ausgeführt werden kann (es soll ausgelesen werden/gestartet werden) Ich möchte einfach nicht das später mal einer kommt und dann anfängt das Programm von mir umzuprogrammieren und dann neu veröffentlicht wird. Sowas ist schei***e, um dieses Problem zu lösen möchte ich gerne die Dateien so verpacken, das nicht gleich jeder zugriff hat. ich bau das Programm auch so aus das man kein Autoit braucht um es zu starten.
Ist einbisschen blöd von mir erklärt, ich weiß aber auch nicht wie ich das beschreiben soll was ich vorhabe. Vielleicht weiß der eine oder andere was ich meine und hat vielleicht einen rat/tool für mich.
Ich bin über jede Hilfe dankbar ![]()
gruß Whitey
vielen Dank ![]()
![]()
da ich neu bin werde ich bestimmt mal die eine oder andere Frage stellen soll ich da ein neues Thema aufmachen oder kann ich hier weiter schreiben was ist besser?
huhu, ich bins mal wieder ![]()
Ich hätte mal eine frage,
es ist ja möglich das ich zb ESC drücke und er macht die GUI zu und schließt alles.
Ist das denn auch machbar das ich ESC gedrückt halten muss sagen wir mal 3 sec um alles zu schließen damit um gehe ich das wenn ich versehentlich darauf komme nicht alles beendet wird?
wenn ja wie würde der Code aussehen, es ist vermutlich eine while oder?
Weil er muss ja stendig abfragen hat er denn jetzt 3 sec gehalten oder nicht.
Ich habe deinen Code mal als Basis genommen, einiges - aber nicht alles - optimiert, aber das Unnütze noch nicht raus geworfen, kannst du dann selbst bereinigen.
Ich gehe davon aus, da du "Stunden|Minuten|Sekunden" erfasst, dass das keine Uhrzeit, sondern die Dauer der Aufnahme ist. Btw: Wozu Hotkey? Du hast doch einen Start/Stop - Button. Hotkeys sind Global und du kommst oft in Konflikt mit dem System (F7 ist z.B. bei mir nicht möglich). Verwende besser GuiSetAccelerators.
Schau es dir an:
AutoIt Alles anzeigen;-- TIME_STAMP 2022-07-13 13:21:48 #include <GUIConstantsEx.au3> Global $end, $end2, $timer, $timer2, $running = False, $running2 = False ;~ Global $input[3], $input2[3], $input3[3], $input4[3], $input5[3] Global $aInput[5][3] Global $name[3]=['Stunden','Minuten','Sekunden'], $name2[3]=['','',''], $name3[3]=['','',''] Global $name4[3]=['','',''], $name5[3]=['','',''], $button[2]=['Start','Stop'] Global Const $sWinOBS = "OBS 26.1.1 (64-bit, windows) - Profil: Unbenannt - Szenen: Unbenannt" Global $bIdle = True ; True = Leerlauf, keine Aufnahme läuft Global $TimerStart ; wird gesetzt wenn eine Aufnahme beginnt Global $aRecTimes[5] ; die eingetragenen Aufnahmezeiten in Sekunden Global $aCheckbox[4] ; Array mit Checkbox-ID Global $iCurrRec = -1 ; Index der aktuellen Aufnahme, bei Programmstart: keiner Global $hGui = GUICreate('5 Aufnahme-Timer', 800, 700, Default, Default, 0x10C80000) For $i=0 To 2 GUICtrlCreateGroup($name[$i], 5+70*$i, 5, 70, 40) GUICtrlCreateGroup($name2[$i], 5+70*$i, 35, 70, 40) GUICtrlCreateGroup($name3[$i], 5+70*$i, 65, 70, 40) GUICtrlCreateGroup($name4[$i], 5+70*$i, 95, 70, 40) GUICtrlCreateGroup($name5[$i], 5+70*$i, 125, 70, 40) For $j = 0 To 4 $aInput[$j][$i] = GUICtrlCreateInput('', 10+70*$i, 20+30*$j, 60, 20, 1) Next ;~ $input[$i] = GUICtrlCreateInput('', 10+70*$i, 20, 60, 20, 1) ;~ $input2[$i] = GUICtrlCreateInput('', 10+70*$i, 50, 60, 20, 1) ;~ $input3[$i] = GUICtrlCreateInput('', 10+70*$i, 80, 60, 20, 1) ;~ $input4[$i] = GUICtrlCreateInput('', 10+70*$i, 110, 60, 20, 1) ;~ $input5[$i] = GUICtrlCreateInput('', 10+70*$i, 140, 60, 20, 1) Next $go = GUICtrlCreateButton('Start', 550, 650, 210, 20) $Herunterfahren = GUICtrlCreateCheckbox("Computer herunterfahren", 600, 600, 201, 25) For $i = 0 To 3 $aCheckbox[$i] = GUICtrlCreateCheckbox("Aufnahme " & $i+2 & " Aktivieren", 220, 47+$i*30, 201, 25) Next ;~ $Input2 = GUICtrlCreateCheckbox("Aufnahme 2 Aktivieren", 220, 47, 201, 25) ;~ $Input3 = GUICtrlCreateCheckbox("Aufnahme 3 Aktivieren", 220, 77, 201, 25) ;~ $Input4 = GUICtrlCreateCheckbox("Aufnahme 4 Aktivieren", 220, 107, 201, 25) ;~ $Input5 = GUICtrlCreateCheckbox("Aufnahme 5 Aktivieren", 220, 137, 201, 25) $Close = GUICtrlCreateButton("Schließen", 550, 550, 83, 25) $Label2 = GUICtrlCreateLabel("Programm Start mit Hotkey F7", 500, 500, 170, 24) GUICtrlSetFont(-1, 6, 800, 0, "MS Sans Serif") GUISetState() ; MainLoop While True Switch GUIGetMsg() Case -3 Exit Case $go If $bIdle Then StartTimer() Else StopTimer() ; zum Abbruch einer laufenden Aufnahme EndIf EndSwitch If Not $bIdle Then If _CheckTimer() Then StopTimer() EndIf WEnd Func _CalcRecordingSeconds() Local $inHr, $inMin, $inSec, $sumSec = 0 For $i = 0 To 4 $sumSec = 0 If $i > 0 Then If BitAND(GUICtrlRead($aCheckbox[$i-1]), $GUI_UNCHECKED) Then ContinueLoop EndIf $inHr = GUICtrlRead($aInput[$i][0]) $inMin = GUICtrlRead($aInput[$i][1]) $inSec = GUICtrlRead($aInput[$i][2]) If $inHr <> '' Then $sumSec += $inHr*60*60 If $inMin <> '' Then $sumSec += $inMin*60 If $inSec <> '' Then $sumSec += $inSec $aRecTimes[$i] = $sumSec Next EndFunc ;HotKey's ;~ HotKeySet ("{F7}", "StartTimer") ; Soll das unabhängig aufgerufen werden können - auch wenn die GUI im Hintergrund ist? ; Wenn nicht: GUISetAccelerators() verwenden. HotKeySet ("{F7}", '_ToggleStartStop') Func _ToggleStartStop() Return ($bIdle ? StartTimer() : StopTimer()) EndFunc Func StartTimer() If $iCurrRec = -1 Then ; erstmaliger Aufruf _CalcRecordingSeconds() EndIf While $iCurrRec < UBound($aRecTimes) -1 $iCurrRec += 1 If $aRecTimes[$iCurrRec] <> 0 Then ExitLoop ; leere Einträge überspringen WEnd If $aRecTimes[$iCurrRec] = 0 Then Return MsgBox(16, 'FEHLER', 'Keine Aufnahmezeiten eingetragen!') GUICtrlSetData($go, 'Stop') MsgBox(64, 'Aufnahme', 'Starte Aufnahme #' & $iCurrRec+1) $TimerStart = TimerInit() $bIdle = False ; starte Aufnahme ControlSend($sWinOBS, "", "", "{F8}") EndFunc Func _CheckTimer() Return (Floor(TimerDiff($TimerStart)/1000) >= $aRecTimes[$iCurrRec]) EndFunc Func StopTimer() If $iCurrRec = UBound($aRecTimes) -1 Then ; letzte Aufnahme beendet If BitAND(GUICtrlRead($Herunterfahren), $GUI_CHECKED) Then Return MsgBox(64, 'Herunterfahren', 'Hier [#' & @ScriptLineNumber & '] Shutdown einfügen.') EndIf Else $bIdle = True ; beende Aufnahme ControlSend($sWinOBS, "", "", "{F8}") GUICtrlSetData($go, 'Start') MsgBox(64, 'Aufnahme', 'Stoppe Aufnahme #' & $iCurrRec+1) EndIf EndFunc #comments-start ;############################## ;Start mit der ersten Aufnahme# ;############################## ;Funktion das mit der Taste F7 gestartet wird Func StartTimer() HotKeySet ("{F7}") $running = Not $running GUICtrlSetData($go, $button[$running]) $end = Convert($input) $timer=TimerInit() If $running And TimerDiff($timer)>=$end Then $running = False GUICtrlSetData($go, $button[$running]) Send ("{F8}") ;;;;; If _IsChecked($Input2) Then Call ("ANAufnahem2") Else Call ("AUSAufnahem2") EndIf EndIf EndFunc ;Funktion mit Knöpfen (Knopf Start) ist hier mit enthalten und Schließen While 1 Switch GUIGetMsg() Case $Close Exit Case -3 Exit Case $go $running = Not $running GUICtrlSetData($go, $button[$running]) $end = Convert($input) $timer=TimerInit() Case Else If $running And TimerDiff($timer)>=$end Then $running = False GUICtrlSetData($go, $button[$running]) ControlSend($sWinOBS, "", "", "{F8}") Send ("{F8}") ;;;;; If _IsChecked($Input2) Then Call ("ANAufnahem2") Else Call ("AUSAufnahem2") EndIf EndIf EndSwitch WEnd Func Convert($array) Return 1000*(60*(60*(GUICtrlRead($array[0]))+GUICtrlRead($array[1]))+GUICtrlRead($array[2])) EndFunc Func _IsChecked($Herunterfahren) Return BitAND(GUICtrlRead($Herunterfahren), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;###################### ;Aufnahme 1 endet hier# ;###################### Func ANAufnahem2 () Sleep (3000) ;Puffer um abzuspeichern While 2 Switch GUIGetMsg() Case $Close Exit Case -3 Exit Case $go $running2 = Not $running2 GUICtrlSetData($go, $button [$running2]) $end = Convert($input2) $timer2=TimerInit() Case Else If $running2 And TimerDiff($timer2)>=$end2 Then $running2 = False GUICtrlSetData($go, $button[$running2]) ControlSend($sWinOBS, "", "", "{F8}") Send ("{F8}") ;;;;; If _IsChecked($Input3) Then Call ("AN") Else Call ("AUS") MsgBox(0, 'Info', 'Tesssssssst 2 durch an?') EndIf EndIf EndSwitch WEnd EndFunc Func AUSAufnahem2 () ControlSend($sWinOBS, "", "", "{F8}") Sleep (1000) MsgBox(0, 'Info', '2 durch AUS') EndFunc ;################################################################################################## ;Hier wird nochmal abgefragt und entschieden ob der Harken bei Herrunterfahren drin ist oder nicht# ;################################################################################################## Func AN() ControlSend($sWinOBS, "", "", "{F8}") Sleep (1000) MsgBox(0, 'Info', 'ANNNNNNNNNNNNNNNNNNNNNNNNNNN') ; Shutdown(1) EndFunc Func AUS() ControlSend($sWinOBS, "", "", "{F8}") Sleep (1000) MsgBox(0, 'Info', 'Aufnahme gestoppt') EndFunc #comments-end
Danke ![]()
also das klappt schonmal super F7 ist der Hotkey für das Starten der Aufnahme für das Aufnahmeprogramm und der GUI es wird sozusagen alles beides gleichzeitig gestartet der Start Stop Button unten der ist eigentlich egal auf dem wird nicht drauf rum gedrückt es wird nur einmal F7 und dann läuft er den ersten Timer ab wenn der abgelaufen ist soll er an das Programm F8 senden und ca 5 sec mit der nächsten aufnahme beginnen wo wieder F7 gesendet wird
so soll das eigentlich ablaufen
PS: das letzte Input feld unten wenn dort was drin steht läuft er nur noch und Stopt nicht wenn die zeit abgelaufen ist (Aufnaheme 5)
Alles anzeigen
Du brauchst doch nur eine einzige Schleife.
- Mainloop läuft
- Programmteil1 (Funktion!!) wird aufgerufen
- Funktion setzt Check-Variable: 1: 'Bin-am-Arbeiten'
- Wenn die Funktion fertig ist wird Inhalt auf 0: 'Fertig' gesetzt
- In Schleife bei jedem Durchlauf prüfen: Inhalt der Check-Variable
- Variable = 1 ? Funktion rennt noch - tue nichts
- Variable = 0 ? Funktion ist fertig - auf zur nächsten
usw. usf.
Ggf. ist es sinnvoll den Check nicht im Mainloop auszuführen, sondern eine Prüffunktion mit AdlibRegister einzusetzen.
könntest du mir ggf mal bitte ein beispiel machen, wie gesagt bin anfänger ich bräuchte sowas wie ein anhaltspunkt (beispiel)
Es gibt viele Möglichkeiten mit Timern zu arbeiten.
Für parallele Abläufe kannst du z.B. folgendes simples Bsp. nutzen
AutoIt Alles anzeigenGlobal $gTime1 = 5 ; Angabe in Sekunden Global $gTime2 = 10 Global $gTime3 = 60 Global $hGui = GUICreate('Test ' & StringFormat('%02d:%02d:%02d', @HOUR, @MIN, @SEC)) Global $lbEvent1 = GUICtrlCreateLabel('', 20, 20, 200, 17) GUICtrlSetColor(-1, 0x000088) GUICtrlSetBkColor(-1, 0xE6E6FA) Global $lbEvent2 = GUICtrlCreateLabel('', 20, 45, 200, 17) GUICtrlSetColor(-1, 0x000088) GUICtrlSetBkColor(-1, 0xE6E6FA) Global $lbEvent3 = GUICtrlCreateLabel('', 20, 70, 200, 17) GUICtrlSetColor(-1, 0x000088) GUICtrlSetBkColor(-1, 0xE6E6FA) Global $dumTimer1 = GUICtrlCreateDummy() Global $dumTimer2 = GUICtrlCreateDummy() Global $dumTimer3 = GUICtrlCreateDummy() Global $gTimer0 = TimerInit() Global $gt1 = 0, $gt2 = 0, $gt3 = 0 AdlibRegister(_FireDummy) GUISetState() While True Switch GUIGetMsg() Case -3 Exit Case $dumTimer1 GUICtrlSetData($lbEvent1, $gt1 & ' * ' & $gTime1 & ' Sec abgelaufen') Case $dumTimer2 GUICtrlSetData($lbEvent2, $gt2 & ' * ' & $gTime2 & ' Sec abgelaufen') Case $dumTimer3 GUICtrlSetData($lbEvent3, $gt3 & ' * ' & $gTime3 & ' Sec abgelaufen') EndSwitch WEnd Func _FireDummy() Local Static $bFire1 = False, $bFire2 = False, $bFire3 = False Local Static $clocksec = 0 Local $TDiff = TimerDiff($gTimer0) If Floor($TDiff / 1000) > $clocksec Then $clocksec += 1 WinSetTitle($hGui, '', 'Test ' & StringFormat('%02d:%02d:%02d', @HOUR, @MIN, @SEC)) EndIf If Floor($TDiff / ($gTime1*1000)) > $gt1 Then $gt1 += 1 $bFire1 = True EndIf If Floor($TDiff / ($gTime2*1000)) > $gt2 Then $gt2 += 1 $bFire2 = True EndIf If Floor($TDiff / ($gTime3*1000)) > $gt3 Then $gt3 += 1 $bFire3 = True EndIf If $bFire1 Then $bFire1 = False GUICtrlSendToDummy($dumTimer1) EndIf If $bFire2 Then $bFire2 = False GUICtrlSendToDummy($dumTimer2) EndIf If $bFire3 Then $bFire3 = False GUICtrlSendToDummy($dumTimer3) EndIf EndFuncMit ein paar Jahren auf dem Buckel immer noch gut: Multi-Timer
danke ![]()
das bringt mir nicht viel ich muss wissen wie ich die zweite schleife zum laufen bringen muss, ansonsten muss ich es kompliziert machen und das Programm 5 mal öffnen und ich sage den dann wenn der erste Timer abgelaufen ist einfach das er nach abschluss die Aufnahme 2.au3 öffnen soll denn ein Input feld/Timer geht ja nur die erweiterung klappt nicht mit 5 weiteren auf einem Fenster
Hallo WhiteHorse
ich denke dein Problem ist, dass du in Endlosschleifen deine Aufgaben abwickelst.
Ich sehe da eine Funktion "ANAufnahem2". Innerhalb der Funktion wird eine Endlosschleife gestartet. Das Ende der Aufnahme versuchst du aber in einer anderen Schleife abzufangen. So kann das nicht funktionieren.
Du musst lernen zu verstehen, was da eigentlich gerade passiert. Außerdem frage ich mich woher du Call ["Funktionsname"] her hast. Programmierst du sonst in einer anderen Programmiersprache?
Call habe ich mal von einem anderen Forum aufgeschnappt da ging es aber auch um C++ Autoit, ich versuche eigentlich immer selbst die Probleme zu lösen und schreibe mir die Funktionen der Skripte dann nochmal separat auf um sie später vielleicht noch mal zu benutzen
wie ich sehe hast du auch bemerkt das ich Anfänger bin
aber mich Interessiert diese Programmiersprache und möchte auch so viel wie möglich darüber lernen ich habe viele ideen und Programme die ich gern schreiben würde aber meine Erfahrung (um setzung) lässt mich an dieser stelle im stich
Ich versuche immer so viel wie möglich von Foren und ggf Videos zurückzugreifen egal ob Deutsch oder Englisch, dazu ziehe ich auch das Hilfe menu im Programm hinzu F1 was ich mir ebenfalls für Deutsch gezogen habe
PS nein ich arbeite im moment nur mit Autoit