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. Yjuq

Beiträge von Yjuq

  • Ein Programm mit AutoIt bedienen, aber Button ist keine eigenständige Instanz...

    • Yjuq
    • 19. August 2015 um 18:46

    Hey, das sieht mir schwer nach einem Rebar-Control aus. Dazu gibt es entsprechende Funktionen in der GuiReBar.au3. Versuch doch mal ob du passende Funktionen findest um den Button ein wenig einzugrenzen. Parallel vielleicht noch mit der GuiButton.au3 arbeiten. :)

    €dit: Was mir noch alternativ einfällt, schick doch mal eine Windows Message an das Programm. Welche das genau ist und welche Parameter du setzen musst, da muss ich erst selber ein wenig herumexperimentieren. ^^

  • Context wird nicht überschrieben trotz Backbuffer

    • Yjuq
    • 18. August 2015 um 18:49

    Hallöle, das Minimalbeispiel fehlt. Hab keine Lust da eine GUI zu programmieren nur um dein eigentliches Problem mal grafisch am Bildschirm zu sehen.
    LG. Make :)

  • Mahlzeit :-)

    • Yjuq
    • 18. August 2015 um 14:44

    Oder die einfach zu faul sind sich mit der englischen Sprache zu befassen. ^^

    Herzlich willkommen! :)

  • AutoIt Grundlagen Schulung oder Webinar / Interessenten gesucht.

    • Yjuq
    • 11. August 2015 um 14:47

    Heyo, ich selber kann dir gerne Privatunterricht geben. Das Ganze wird sich allerdings nur online abspielen können!
    Habe ehh bis zu Oktober rein gar nichts zu tun ^^

  • XML-Problem, Anzahl der Starttags und Endtags stimmen nicht - Wie sinnvoll ermitteln?

    • Yjuq
    • 10. August 2015 um 14:45

    Soa, hier mal ein Ansatz:

    [autoit]

    #include <Array.au3>
    #include <StringConstants.au3>
    Global $iFor, $sTmp, $iExt, $asF

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Schritt 1: Datei einlesen und Zeile für Zeile in Array speichern
    Global $sXML = FileRead('Formatted.xml')
    Global $asXML = StringSplit($sXML, @CRLF, $STR_ENTIRESPLIT)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Schritt 2: Datei Zeile für Zeile lesen und offene Tags in Stack Objekt speichern.
    ; Fehlerhafte Daten und Zeilennummern ebenfalls speichern.
    Global $oTAG = ObjCreate('System.Collections.Stack')
    Global $oData = ObjCreate('System.Collections.Stack')

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; In der ersten Zeile wird die XML Versionsnummer etc. gespeichert... Interessiert uns nicht ^^
    For $iFor = 2 To $asXML[0]
    $sTmp = _XMLGetTag($asXML[$iFor])
    $iExt = @extended

    [/autoit][autoit][/autoit][autoit]

    If $sTmp Then
    If $iExt Then ; Wenn Tag geschlossen wird
    If StringSplit($oTAG.peek(), '|')[0] = $sTmp Then ; und alles gut ist ^^
    $oTAG.pop() ; entferne offenen Tag
    Else ; Ansonsten halt: Fehler :)
    $oData.push($sTmp & '|' & $iFor & '|' & $iExt)
    EndIf
    Else ; Wenn Tag geöffnet wird
    $oTAG.push($sTmp & '|' & $iFor)
    EndIf
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Nun die ungeschlossenen Tags noch in die Liste einfügen:
    While $oTAG.count
    $oData.push($oTAG.pop() & '|' & '0')
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Fehlerhafte Daten und deren Zeilennummern ausgeben:
    $asF = $oData.ToArray()
    _ArrayDisplay($asF)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Filtern den TAG-Namen sowie Klasse heraus
    ; @extended 0: TAG wird geöffnet
    ; 1: TAG wird geschlossen
    Func _XMLGetTag($sStr)
    ; Wenn sich der Tag wieder selber schließt (<tag /> bzw. <tag>xyz</tag>) kann man diesen ignorieren
    If StringRight($sStr, 2) = '/>' Or StringRegExp($sStr, '<.*?(?: |>).*</.*>') Then Return ''

    [/autoit][autoit][/autoit][autoit]

    Local $sTAG = StringRegExp($sStr, '<(.*?)(?: |>)', $STR_REGEXPARRAYGLOBALMATCH)[0]
    Local $bExt = StringLeft($sTAG, 1) = '/'
    Return SetExtended($bExt, ($bExt ? StringTrimLeft($sTAG, 1) : $sTAG))
    EndFunc

    [/autoit]

    Ist leider noch ein wenig fehlerhaft, mir fehlt aber gerade die Zeit das zu debuggen. Aber damit solltest du zmd. schon mal weiter kommen. Die Ausgabe sieht folgendermaßen aus:

    Name des Tags|Zeilennummer|offen oder geschlossen

    abc|123|0 << Tag abc in Zeile 123 wurde nicht geschlossen
    efg|456|1 << Tag efg in Zeile 456 wurde nicht geöffnet


    Ich setze mich nachher nochmal ran, ich hoffe dass ich dir damit schon mal einen Ansatz liefere. ^^

  • Neuer Laptop!? --- Hauptsache es läuft :D

    • Yjuq
    • 24. Juli 2015 um 01:07

    Erst einmal ein Dankeschön an die ganzen Antworten!

    Mal zu Blender:
    Ich rendere keine aufwendigen Szenen, eher so Kleinigkeiten. Ich interessiere mich halt nebenbei auch für die Modellierung am PC, lerne es aber noch. Mit meinen Acer Aspire 7750G hatte ich bisher noch keine Probleme. ^^

    @Bitnugger hat mir angeboten mein Laptop für einen guten Whiskey als Dankeschön zu reparieren. Das teuerste wird wohl der Bildschirm sein, alle anderen Einzelteile sollten wohl zu beschaffen sein. Würde selber wohl dafür um die 100€~120€ schätzen (Je nachdem wie teuer der Whiskey und Versandt ist ^^), einen gebrauchten Bildschirm habe ich damals auch gebraucht für 60€ bekommen. Ich bin durchaus bereit meinen Laptop wieder auf Vordermann zu bringen, kann ich mir den Rest nämlich sparen und mir vielleicht später einen guten Stand PC zulegen. Der Laptop muss nur noch mind. 3 Jahre halten, und da er 800€ damals gekostet hat, fände ich es ziemlich schade ihn komplett aufzugeben.

    Selber daran herumschrauben kann ich nicht, schon vergebens versucht. Hab nämlich keine Ahnung wie ich die einzelnen Komponenten entferne um da an die entsprechenden Bauteile zu gelangen. War schon bei dem Bildschirm damals eine schwere Geburt (hatte den schon mal gewechselt). ^^


    Mal schauen wie viel letztendlich die Reparatur kosten würde, bin mal gespannt was Bitnugger mir da sagt. In der Zwischenzeit klick ich mich durch die Angebote. :P

  • Neuer Laptop!? --- Hauptsache es läuft :D

    • Yjuq
    • 18. Juli 2015 um 23:22

    Schönen guten Abend ^^
    Für meine Ausbildung (am ersten Oktober) suche ich noch einen Laptop, mein derzeitiger ist eigentlich noch komplett funktionsfähig, jedoch hat dieser diverse Hardware Schäden. Nun bin ich am überlegen ob es sich lohnt meinen alten wieder herzurichten oder doch gleich einen neuen zu kaufen. Erst einmal vorweg, welche Aufgaben der Laptop die nächsten 3 Jahre übernehmen soll.

    Ich werde eine schulische Ausbildung zum Mediengestalter (Schwerpunkt Game Developement) machen, Hauptaufgabe wird sein auf dem Laptop ausschließlich zu Programmieren. Neben OpenOffice sollte eventuell noch ein paar Grafikprogramme / Modellierungssoftware installiert werden wie Blender oder GIMP. Games sollen nicht drauf und ist auch nicht vorgesehen, habe sowieso jetzt schon kaum Zeit um am PC zu zocken, dafür leidet mein Handy derzeitig umso mehr. ^^

    Nun wollte ich mal schauen wie ich am kostengünstigsten davon komme, ich hab 'n bissl was angespart aber mehr als 600€ werde ich wohl derzeitig nicht ausgeben können. Vielleicht kommt noch ein wenig was dazu. :P


    Eine mögliche Option wäre für mich, ob sich hier jemand findet der zu einen fairen Preis meinen Laptop komplett restauriert. Das heißt, zmd. alle Hardware Schäden beseitigt die ich in den letzten 4~5 Jahren angesammelt habe. Konkret wären folgende Schäden zu melden:
    - Laptop Bildschirm hat unten Rechts einen Bruch, die Taskleiste wird komplett mit „Streifen“ überblendet, kurz gesagt: Man erkennt dort kein klares Bild mehr. Es muss also ein neuer Bildschirm eingebaut werden.
    - Der Input für die Stromzufuhr hat einen Wackelkontakt. Ich vermute mal dass dies nur neu gelötet werden muss.
    - Mein Kopfhörer Input ist richtig derbe hinüber. Komplett innen drin gebrochen, ich glaube da muss komplett was neu eingebaut werden.
    - Zwei meiner drei USB Anschlüsse sind hinüber, bei beiden fehlt diese Plastikhalterung innen drin, abgebrochen. Bei einem ist sogar diese Metallspitze (weiß nicht wie das heißt, ein USB Anschluss hat doch 4 dieser Metalldinger innen drin um die Signale durchzugeben) komplett hineingedrückt. Ich schätze beide müssen ausgetauscht werden.

    Wer sich zutraut die Schäden zu beheben kann sich melden. Natürlich werde ich in dem Fall sämtliche Komponenten bezahlen und auch die geleistete Arbeit. Da ich aber nicht viel Ahnung davon habe, wäre es sehr nett wenn ihr mir ungefähr die Kosten für solch einen Aufwand mitteilen könntet.


    Alternativ würde ich mir sonst einen neuen Laptop zulegen. Neben den bereits oben angesprochenen Punkten sollte mindestens 500 GB freier Speicherplatz (neben den Systemdaten) zur Verfügung stehen. 3 USB Anschlüsse sowie ein HDMI Anschluss. Falls jemand einen gebrauchten hat der in etwa in dieses Bild passt, kaufe ich auch diesen. Marke ist mir egal, aber das äußere Erscheinungsbild sollte da noch halbwegs in Ordnung sein. ^^

    Ansonsten, habt ihr vielleicht irgendwelche Empfehlungen für mich? Falls ich wichtige Sachen vergessen habe, fragt und hakt ruhig nach. :P

  • Probleme mit Is Declared

    • Yjuq
    • 18. Juli 2015 um 18:10

    Das ist eine wirklich verzwickte Lage,... [Blockierte Grafik: http://smilys.net/nachdenkliche_smilies/smiley5005.gif]
    Ich glaube wir müssen da etwas systematisch vorgehen um das Problem zu lösen. Was glaubst du wo sich der Fehler versteckt? Ich habe da schon einen leisen verdacht, würde dies aber gerne nochmal nachprüfen bevor ich hier was falsches schreibe.

  • Zukunft für AutoIt.de - Impressionen und Ideen

    • Yjuq
    • 5. Juli 2015 um 20:15

    Hier hat sich ja viel getan o.o

    @Gun-Food
    Echt Klasse, mehr kann ich nicht sagen!
    ~ Dankeschön :)

  • Zukunft für AutoIt.de - Impressionen und Ideen

    • Yjuq
    • 28. Juni 2015 um 18:51

    Achso, da hab ich das thema ein wenig falsch verstanden :/

  • Zukunft für AutoIt.de - Impressionen und Ideen

    • Yjuq
    • 28. Juni 2015 um 17:09

    Für den Fall dass das Forum von Gun-Food letztendlich aufgegeben und nicht abgegeben wird, was machen wir da? Letztendlich zerspringt doch dann die gesamte Community mit einem Punkt. Würde sich denn jemand finden der einen Neuaufbau des Forums leiten würde und ggf. die Serverkosten übernehmen könnte? Ich habe nämlich die Befürchtung das genau dieser Fall eintreten wird, daher wollte ich vorab schon einmal klären, ob sich jemand findet der das in Angriff nehmen möchte!?

    Aber warten wir mal ab ob Gun-Food sich hier auch noch zu Wort meldet! Es wäre schade wenn wir an diesen Punkt ankommen würden...

  • UDF zum schreiben und lesen von Array´s in(aus) ein(em) INI-File

    • Yjuq
    • 28. Juni 2015 um 16:23

    @Peter S. Taler
    Nein, das war damals nur zwei einzelne Funktionen zum Abspeichern und lesen von 3D Arrays in eine Textdatei. Vielleicht fliegen die Funktionen irgendwo im Netz herum, hab aber ehrlich gesagt keine Lust danach zu suchen. Im Grunde hat man solche Funktionen ehh schnell mal geschrieben, sind nicht mal 5 Minuten. ^^

  • UDF zum schreiben und lesen von Array´s in(aus) ein(em) INI-File

    • Yjuq
    • 28. Juni 2015 um 14:24

    Ach herrje, ist mir ja fast noch nie passiert 8|

    Hab ich gar nicht gesehen dass der Thread von 2010 ist ^^
    Sorry, mein Fehler :P

  • Start- / Endadresse Skript im Speicher finden

    • Yjuq
    • 26. Juni 2015 um 15:59

    [Blockierte Grafik: http://data5.blog.de/media/039/3707039_6d9a32c9d0_m.gif][Blockierte Grafik: http://www.looki.de/gfx/user/1/5/1/680c5_816726/avatar_160.jpg] Die UDF wrappert die DLL Call Aufrufe zu bestimmten Funktionen, um Werte direkt im RAM zu lesen bzw. zu verändern. Damit sollte damals in AutoIt ein einfacher manueller Zugriff auf den Arbeitsspeicher erreicht werden. Sehr beliebt bei vielen Bot Codern, da man damit eben viel mehr Möglichkeiten hat als diese klassischen Pixelbots. :D

  • Start- / Endadresse Skript im Speicher finden

    • Yjuq
    • 26. Juni 2015 um 11:21

    @Mars, hab ich tatsächlich schon gemacht. Meine UDF baut direkt auf die winapi UDF auf, macht 50% weniger eigencode und bleibt Übersichtlich. Ist im bösen forum auch schon hochgeladen. Und das meine ich ernst, nicht als Witz ^^

  • Start- / Endadresse Skript im Speicher finden

    • Yjuq
    • 25. Juni 2015 um 22:09
    Zitat

    NomadMemory.au3 kannte ich schon, aber hatte noch keine Zeit mich damit wirklich zu beschäftigen.
    Scheint aber wohl die einzige Alternative zu sein.


    Quatsch, die greift nur auf die WinAPI zu. Die Funktionen hat AutoIt aber mtlw. selber integriert.
    _WinAPI_WriteProcessMemory() als Beispiel. Alle funktionen in der NomadMemory sind mtlw schon in der WinAPI UDF vorhanden.

  • Start- / Endadresse Skript im Speicher finden

    • Yjuq
    • 25. Juni 2015 um 19:50
    Zitat

    Selbstmodifizierender Code?
    Ich sehe dafür keinen vernünftigen Grund (außer bei Viren oder ähnlichen Programmen).


    Hast dich wohl nie damit beschäftigt, was? ^^
    Mir fallen auf Anhieb gleich mehrere Möglichkeiten ein wofür man sowas brauchen könnte.

    - Debugger beispielsweise können einen Software Breakpoint in kompilierte Programme einsetzen. Gibt aber bestimmt auch andere Ansätze für sowas...
    - Diese "Anti Hack Programme" in diversen Spielen (bei normalen Programmen noch nicht gesehen) scannen in ihrem eigenen Softwares bestimmte Stellen, um zu sehen ob dort Änderungen durchgeführt wurden. So werden eben Zugriffe bemerkt und dann kann die Software entsprechend reagieren.
    - Möglicher Ansatz für eine Seed AI (wenn auch ein nicht sinnvoller Ansatz ^^) >> https://de.wikipedia.org/wiki/Seed_AI <<
    - Wikipedia hat auch noch was: https://de.wikipedia.org/wiki/Selbstmodifizierender_Code

  • UDF zum schreiben und lesen von Array´s in(aus) ein(em) INI-File

    • Yjuq
    • 25. Juni 2015 um 18:10

    Hey Raupi, so was ähnliches habe ich auch schon einmal geschrieben. Zu dem * und | Zeichen:
    Damals habe ich einen von den nicht druckbaren Zeichen genommen. Es bieten sich z.B. der Group separator (GS: 0x1d) und der Unit seperator (US: 0x1f) ganz gut an. Andere Option wäre natürlich noch die Zeichen einfach mithilfe eines \ zu escapen. ^^

  • Firefox und Noscirpt - temporäres Freischalten von Seiten - Au3Record

    • Yjuq
    • 13. Juni 2015 um 20:21

    Frage:

    Zitat

    Wie löst Ihr solche Klick-Aktionen von der Aufzeichnung der Koordinaten bis zur Scriptumsetzung?


    Antwort:

    Zitat

    lokalisiere Fenster x
    nimm die Koordinate 0,0 vom Fenster als Bezugspunkt
    bewege die Maus auf 10,20 (nicht bildschirmbezogen)
    klicke dort


    Ich glaube die bessere Frage wäre hier: Wie heißen die notwendigen Befehle dazu?
    Da klickt man sich am besten durch die Hilfe durch. Da du jetzt schon ziemlich oft irgendwas gefragt hast, sollten wir mal auf dein eigentliches Problem besser eingehen.
    Dein Hauptproblem besteht wohl darin, dass du die mitgelieferte Hilfedatei nicht richtig nutzen kannst. ^^

    Zuerst öffnen wir doch einmal die Hilfe und schauen im [Index] nach. Unter der Funktionsreferenz (eng.: [Function Reference]) finden wir alle Built-in Funktionen von AutoIt. Nun, wir wollen was mit Fenstern machen, schauen wir doch mal nach, da finden wir die das [Window Management]. Nun finden wir eine Handvoll Befehle um mit Fenstern zu arbeiten. Uns interessiert aber in erster Linie die Fensterposition! Kurz mal durch die Liste geschaut, sehen wir dass WinGetPos() doch eigentlich von der Bezeichnung her passen könnte. Aufgeschlagen und nachgelesen, passt. Eine Teilaufgabe wäre damit schon erledigt, Fensterposition ermitteln.

    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit][autoit][/autoit][autoit]

    $aiPos = WinGetPos('')

    [/autoit][autoit][/autoit][autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]

    Jetzt denken wir mal scharf nach. Wie können wir nun relativ von den entnommenen Fensterpositionen neue Koordinaten ausrechnen? Man nehme die x-Koordinate und die y-Koordinate und addiert seine Koordinaten einfach drauf. Bei z.B. (100 | 200) als relative Koordinate zu den Fensterkoordinaten (235 | 420) bekommen wir die absoluten Koordinaten (335 | 620). Schön, ein kleines bischen Mathematik angewandt, und schon können wir die Maus bewegen. Befehl ist wie oben in der Referenz zu suchen!

    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit][autoit][/autoit][autoit]

    $x = 10
    $y = 20

    [/autoit][autoit][/autoit][autoit]

    $aiPos = WinGetPos('')
    MouseMove($aiPos[0] + $x, $aiPos[1] + $y)

    [/autoit][autoit][/autoit][autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]

    War doch jetzt nicht so schwierig, oder? Kleiner Tipp: Mit der Option Opt('MouseCoordMode', 0) kannst du auch gleich relativ zum aktiven(!) Fenster Mauskoordinaten setzen:

    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit][autoit][/autoit][autoit]

    Opt('MouseCoordMode', 0)

    [/autoit][autoit][/autoit][autoit]

    $x = 10
    $y = 20

    [/autoit][autoit][/autoit][autoit]

    WinActivate('')
    MouseMove($x, $y)

    [/autoit][autoit][/autoit][autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]
  • Variable in WinMove auflösen - viele Varianten - alles Fehler

    • Yjuq
    • 13. Juni 2015 um 18:27
    Zitat

    Du kannst nicht einfach 4 Parameter in eine Variable zusammenfassen.
    Das funktioniert nicht!


    Dann wollen wir doch mal diese Grenze einfach sprengen ^^

    [autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit][autoit][/autoit][autoit]

    $param = '$win, "", 2609, 11, 514, 473'

    [/autoit][autoit][/autoit][autoit]

    $win = '' ; beliebiges Fenster
    WinWaitActive($win, '', 5)
    _ParamVar(WinMove, $param)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Such dir besser eine passendere Funktionsbeschreibung,
    ; ich bin da gerade zu faul für ^^
    Func _ParamVar($hFunc, $sParam)
    Return Execute(StringFormat('%s(%s)', FuncName($hFunc), $sParam))
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

    [/autoit]

    Je nachdem wie viel Zeit man in dieses sinnlose Unterfangen stecken möchte, kann man die Funktion extrem flexibler machen.
    Naja, wer's braucht ^^

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™