1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. alpines

Beiträge von alpines

  • mit "IF" Funktion mehrere Variablen ansprechen

    • alpines
    • 31. Januar 2018 um 21:51

    Stürzt das Script bei dir mittendrin ab oder startet es wegen der Meldung überhaupt nicht? Bei mir startet es nämlich nach den Korrekturen.

  • mit "IF" Funktion mehrere Variablen ansprechen

    • alpines
    • 31. Januar 2018 um 21:47

    Das letzte Komma auch?

  • mit "IF" Funktion mehrere Variablen ansprechen

    • alpines
    • 31. Januar 2018 um 21:34

    Deine Arraydeklaration ist falsch, das letzte Underscore _ darf dort nicht sein, da du keine neue Zeile beginnst sondern das Array schließt.

    Außerdem solltest du niemals Variablen global in Funktionen erzeugen, das ist wirklich wirklich schlechter Stil.

    Wenn du die Variablen nur in der Funktion verwendest, dann nimm als Scope lieber Local.

  • mit "IF" Funktion mehrere Variablen ansprechen

    • alpines
    • 31. Januar 2018 um 21:28
    Zitat von AlphavibeZ

    Ist es denn auch möglich quasi eine Art "Installer" zu generieren die dann auf den gewünschten Rechnern die Verzeichnisse mit den verschiedenen Dateien erstellt?

    Natürlich, kommt aber alles darauf an wie und womit. Soll jeder Client den Installer selbstständig starten, oder wird von einem Rechner auf alle kopiert etc...

  • mit "IF" Funktion mehrere Variablen ansprechen

    • alpines
    • 31. Januar 2018 um 20:16
    Zitat von AlphavibeZ

    Ich habe 54 Hersteller mit jeweils einem langen Link. Ist also mmn. wesentlich übersichtlicher das untereinander gelistet zu haben als alles in einer ewig langen Zeile

    Gerade dann solltest du Arrays verwenden, da sonst dein Script einfach explodiert. Du kannst Arraydeklarationen auch auf mehrere Zeilen ausbreiten wenns dich stört:

    AutoIt
    Global $aHersteller[][2] = [ _
    [1, 2], _
    [3, 4], _
    [5, 6] _
    ]
  • mit "IF" Funktion mehrere Variablen ansprechen

    • alpines
    • 31. Januar 2018 um 19:45
    Zitat von AlphavibeZ

    Das funktioniert bei mir aber nicht, egal wie ich es versuche.

    Du postest neun Zeilen Code und fragst uns wie das Problem zu lösen ist. Wie sollen wir dir denn helfen?

    Dein Code enthält keine syntaktischen Fehler und sollte laufen, die $s_hersteller2 Variable soltle auch deklariert werden, dein Problem muss also woanders liegen.

    Übrigens: Du baust einen If-Block für jede Abfrage obwohl du nur einen If-Block bräuchtest wenn du das ganze als Array implementierst.

    Hier mal ein kleines Beispiel:

    AutoIt
    Global $aHersteller[][2] = [["Bla", "http://bla"], ["Blubb", "http://blubb"], ["12345", "http://12345"]]
    
    For $i = 0 To UBound($aHersteller) - 1
        If $s_hersteller = $aHersteller[$i][0] Then
            _IENavigate($oIE, $aHersteller[$i][1])
        EndIf
    Next

    Ich würde dir dringend raten dir die AutoIt-Grundlagen nochmal anzugucken und sie durchzuarbeiten, wenn du weiter Code schreibst der zwar funktioniert aber schlecht ist, dann lernst du daraus nichts und wirst in ein paar Monaten wohl nicht mehr reinblicken und das ist bei Scripten, welche du lange verwenden möchtest, wichtig.

    Arrays gehören wirklich zu den AutoIt-Basics.

  • Script zum beheben der "Script breaking changes"

    • alpines
    • 30. Januar 2018 um 10:08
    Zitat von Musashi

    Bei MsgBox($MB_YESNOCANCEL + $MB_ICONQUESTION + $MB_DEFBUTTON2 , "","") weiß man sofort worum es geht, bei 291 nicht unbedingt, und das ist ja nur ein Bruchteil der möglichen Kombinationen.

    Deshalb mache ich das meistens so, dass ich nicht die Summe, sondern die einzelnen Flags als Addition hinschreibe. Zum Beispiel: 48 + 4

    Letzen Endes ist es Stilsache, es benennen ja auch nicht alle ihre Variablen mit der ungarischen Notation :)

  • Script zum beheben der "Script breaking changes"

    • alpines
    • 30. Januar 2018 um 08:25
    Zitat von Peter S. Taler

    Wieso sollte $MB_DEFBUTTON2 mehr Aussagekraft haben als 256 ?

    Gut, das war vielleicht ein nicht so einleuchtendes Beispiel aber vielleicht stimmst du ja überein, dass

    BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME), BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))

    verständlicher ist als 0x94CE0000, 0x00000180

    Bei MsgBoxen verwende ich auch direkt die Nummern, weil ich sie mehr oder weniger über die Jahre auswendig gelernt habe und zur Not mit dem MsgBox Wizard (Alt+W im SciTE Code) erzeuge.

  • Script zum beheben der "Script breaking changes"

    • alpines
    • 29. Januar 2018 um 21:41
    Zitat von BugFix

    Jein, wenn ich mir dadurch Includes erspare, schreibe ich lieber die Zahlenwerte und im Kommentar dahinter den Namen der Konstanten

    Könntest auch den Au3Stripper nutzen, das habe ich mir angewöhnt. Oder du definerst die Konstanten oben selber ohne es zu includen, aber hast dann das Problem, dass du bei einigen UDFs die Konstanten neu deklarierst.

  • Anwendung ausführen mit Klick auf GUICtrlCreateMenu und nicht auf GUICtrlCreateMenuItem

    • alpines
    • 29. Januar 2018 um 12:47

    Bisschen Googlen hilft: https://www.autoitscript.com/forum/topic/11…-top-menu-item/

    AutoIt
    #include <GUIConstantsEx.au3>
    
    Opt("GUIOnEventMode", 1)
    
    GUICreate("My GUI")
    GUISetOnEvent($GUI_EVENT_CLOSE, "CloseScript")
    $Start = GUICtrlCreateMenu("&Start")
    $HelpM = GUICtrlCreateMenuItem("&Options", -1)
    GUICtrlSetOnEvent(-1, "handle_Options_Click")
    
    GUISetState(@SW_SHOW) ; will display an empty dialog box
    
    While 1
        Sleep(100) ; sleep a short while
    WEnd
    
    
    Func handle_Options_Click()
        MsgBox(0, "TRACE", "Options menu button was clicked" & @CRLF)
    EndFunc
    Func CloseScript()
        Exit
    EndFunc
    Alles anzeigen
  • Kommentare in NTFS-Metadaten von Files schreiben - wie geht das ?

    • alpines
    • 28. Januar 2018 um 12:18
    Zitat von Peter S. Taler

    Abfangen? Nachsehen ob Typ = offiche und Datentrräger ist Ntfs?

    Deshalb vorher mit https://www.autoitscript.com/autoit3/docs/f…tFileSystem.htm prüfen, ob es sich wirklich um NTFS handelt!

  • Kommentare in NTFS-Metadaten von Files schreiben - wie geht das ?

    • alpines
    • 26. Januar 2018 um 17:41
    Zitat von Peter S. Taler

    Das übersteigt meine Möglichkeiten. Gibt es da einen chrash Kurs für Anfänger oder ev. freundliche Hilfe?

    Ich hätte mir eine C# DLL geschrieben und Funktionen exportiert um das ganze nochmal in C# zu wrappen (da gibt es sicherlich viel bessere Möglichkeiten).

    Also praktisch eine bool writeAuthor(string filename, string author); und dann könntest du diese DLL in AutoIt ansprechen und einfach die Parameter übergeben.

    Zum Thema C# DLLs in AutoIt habe ich bereits ein Tutorial verfasst.

  • Kommentare in NTFS-Metadaten von Files schreiben - wie geht das ?

    • alpines
    • 26. Januar 2018 um 17:17
    Zitat von Peter S. Taler

    Könnt Ihr mal prüfen ob es das bei Euch auch gibt - damit wir mal auf einen stand "aufsetzen" können?

    Tatsächlich, als Detailansicht und dem Rechtsklick in den Listviewheader kann ich mir das auch anzeigen lassen.

    Bei solchen Themen solltest du am besten mit dem Präfix C# oder C++ suchen, da für solche Sprachen meist Beispiele existieren.

    Ich habe für C# etwas vielversprechendes gefunden was du dir mal angucken solltest: http://scatteredcode.net/tutorials/c-ad…tom-properties/

    Das kannst du dann zu AutoIt umwandeln.

  • Kommentare in NTFS-Metadaten von Files schreiben - wie geht das ?

    • alpines
    • 26. Januar 2018 um 15:14

    Welches OS verwendest du? In Windows 7 habe ich diese Möglichkeit leider nicht. Stammt das Tab vielleicht von einer anderen Software?

  • Pazaak Kartenspiel - Star Wars

    • alpines
    • 26. Januar 2018 um 13:52

    Heyoo,

    ich hatte vor einiger Zeit das Projekt mal angefangen und wollte es vor der Klausurenphase noch zu Ende bringen.

    Heute stelle ich euch Pazaak vor: Ein Kartenspiel weit bekannt im Star Wars Universum.

    Pazaak Spielregeln

    Vor jedem Spiel darf man sich zehn Nebenstapelkarten aussuchen welche aus +1 bis +6, -1 bis -6 und +/- 1 bis +/- 6 bestehen.

    Von den +/- Karten darf man jeweils eine jeweils und von den + und - Karten jeweils zwei (des selben Wertes).

    Aus diesen zehn Karten werden nun vier für das zu spielende Set ausgewählt, mit diesen vier Karten muss man das gesamte Set lang auskommen.

    Also sollte man diese nicht leichtsinnig verschwenden, sondern immer strategisch legen!

    Nachdem man die Nebenstapelkarten ausgewählt und auf "Play" geklickt hat, fängt das Spiel an.

    Es wird zufällig ausgewählt welcher der beiden Spieler anfangen darf und dieser zieht zuerst eine Karte von einem Deck bestehend aus insgesamt 40 Karten.

    Diese Karten haben einen Wert von 1 bis 10 (und von jedem Wert gibt es insgesamt vier).

    Nachdem man diese Karte gezogen hat, wird der Wert auf die Punktzahl verrechnet und man hat die Möglichkeit eine Karte vom Nebenstapel zu setzen.

    Legt man eine +2 Karte, so wird die +2 Karte auf das Spielfeld platziert und die Punktzahl um 2 erhöht. Analog für eine -2 Karte.

    Bei einer +/- 2 Karte wird man vorher gefragt, ob man diese als Addition oder Subtraktion spielen möchte.

    Es ist nicht möglich weniger als 0 Punkte zu haben.

    Erreicht man exakt 20 Punkte, so hält (HOLD) man automatisch und kann keine Karten mehr legen oder ziehen.

    Erreicht man mehr als 20 Punkte, so kann man in der Runde (sofern man noch keine Nebenstapelkarte gelegt hat) eine Nebenstapelkarte legen um wieder auf oder unter 20 zu kommen.

    Man gewinnt die Runde, wenn man mehr Punkte und dabei auf oder unter 20 Punkte bleibt.

    Man verliert die Runde, wenn man weniger Punkte als der Gegner (und der Gegner auf oder unter 20 Punkten bleibt) oder mehr als 20 Punkte hat und den Zug beendet.

    Man spielt die Runde unentschieden, wenn man auf der selben Punktzahl wieder Gegner die Runde hält.

    Das Set gilt als gewonnen, wenn man als erster drei Siege hat und als verloren, wenn der Gegner als erster drei Siege hat.

    Landet man beispielsweise auf 19 Punkte und möchte keine Nebenstapelkarte ziehen und nicht das Risiko eingehen keine 1 zu ziehen, so kann man seinen Zug halten (HOLD).

    Dabei darf man für die gesamte Runde keine einzige Karte mehr ziehen oder legen aber der Gegner hat immer noch die Möglichkeit einen zu überbieten.

    Screenshot

    [Blockierte Grafik: https://i.imgur.com/99kyOpg.png]

    Im Spiel musste man sich die Nebenstapelkarten bei verschiedenen Händlern zusammenkaufen,

    aber ihr habt hier direkt alle am Anfang verfügbar (auch wenn es einige Karten überflüssig macht).

    Da ein Multiplayer (ohne TCP) keinen Sinn macht, habe ich die Bots im Originalspiel (Star Wars: Knights Of The Old Republic 1) beobachtet und einen Bot nachprogrammiert.

    Die Logik des Bots findet ihr im bot_logic.png (ich habe einige Sachen nachträglich eingefügt und einige andere sehr kleine Sachen sind leider nicht enthalten).

    Aus diesem Grund sind auch die komplizierten Karten (±1T, D, 2 & 4, 3 & 6, 1±2) nicht enthalten, weil das die Logik für den Bot einfach sprengen würde.

    Es waren mehrere Bots mit verschiedenen Spielstilen geplant gewesen aber das ist extrem viel Arbeit und hinter dem Originalspiel saß ein ganzes Entwicklerstudio.

    Das Spiel enthält Original Soundtracks aus dem Spiel welche ich aus einem YouTube-Video extrahiert habe und zudem noch originale Soundeffekte (klicken, Karte legen, etc).

    Wegen den Soundeffekten kann es zu einigen GUI-Artefakten kommen (Buttons welche halb enabled sind) und ich bitte diese zu entschuldigen.

    Ursprünglich hatte ich geplant die Karten aus dem Spiel zu extrahieren und alles mit GDI+ so nah am Spiel wie möglich zu halten aber ich habe leider nicht die Zeit dazu.

    Also, runterladen, spielen, Spaß haben! :)

    Bisherige Downloads: 24

    Dateien

    Pazaak.rar 4,23 MB – 803 Downloads
  • Anfängerfrage - Submit Button

    • alpines
    • 26. Januar 2018 um 11:25
    Zitat von AlphavibeZ

    (gibt es hierfür eigentlich eine einfachere , übersichtlichere und schnellere Variante?)

    Das schreit geradezu nach ARRAYS!

  • Assemblercode - Noch optimierbar?

    • alpines
    • 26. Januar 2018 um 09:04
    Zitat von Tuxedo

    der Prozessor Hersteller könnte seine Prozesoren daraufhin optimieren, daß sie bei bestimmten Benchmarks besser

    abschneiden.

    Der Prozessorhersteller hat doch, so wie ich Andy verstanden habe, nichts falsch gemacht. Die Last die auf den Kernen verteilt wird wird ganz allein von Windows entschieden.

    Wieso sollte ein Chiphersteller seine Technik für Benchmarks optimieren, wenn diese (oder sogar das Betriebssystem) nicht die volle Kapazität der CPU testen können.

  • Assemblercode - Noch optimierbar?

    • alpines
    • 26. Januar 2018 um 08:11
    Zitat von Tuxedo

    Das erklärt aber auch warum Intel CPU's bei vielen Benchmarks so stark sind, weil eben alles Single-Threaded

    optimiert ist.

    Das Wort "optimiert" ist hier ziemlich fehl am Platze. Wenige Entwickler machen sich nur die Mühe eine CPU bis zum Maximum auszureizen und so das meiste aus ihr rauszuholen.

  • Anfängerfrage - Submit Button

    • alpines
    • 25. Januar 2018 um 11:06

    Deine Html-Elemente haben keine title-Tags. Das was du suchst ist entweder .Value, .innerText oder .innerHTML.

  • Gruppe von Steuerlementen verstecken

    • alpines
    • 24. Januar 2018 um 18:13

    Du kannst die Controls in ein Array packen und das Array iterieren und einzeln hiden, alle gleichzeitig hiden wird von Windows wohl nicht unterstützt.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™