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

Beiträge von BugFix

  • Word Feldfunktion erstellen

    • BugFix
    • 23. August 2010 um 11:36
    Zitat von zemkedesign

    eine Feldfunktion in Word einfügen


    Ja welche denn?
    Und erfahrungsgemäß sieht das aufgezeichnete Makro nicht so aus. :rolleyes:

  • IsInteger - nur 64-bit Integer-Prüfung

    • BugFix
    • 23. August 2010 um 10:16

    Hi,
    nachdem ich eine Weile nach einem vermeintlichen Fehler in meinem Skript suchte, stellte ich fest, dass die Funktion IsInt nur auf 64bit Integer prüft.
    Aus der Funktionsbeschreibung wird das nicht ersichtlich. Das sollte man vielleicht hinzufügen.
    Ich wollte in einer Fehlerabfrage absichern, dass nur 32bit Integer an eine Struktur übergeben werden und wunderte mich, dass die Fehlerabfrage nicht funktionierte. Die Erklärung fand sich dann zwar in der Hilfe, aber nicht zur Funktion, sondern in der Übersicht Datentypen.

  • Makro Monkey

    • BugFix
    • 23. August 2010 um 08:39

    Ich kann nur wiederholen, was ich schon zu deinen Fragen vorab in der Shoutbox gesagt habe: HotKeySet() erledigt das für dich.
    Du meintest zwar, dass dies nicht die Funktion wär, die du suchst. Aber dann hast du sie wohl noch nicht verstanden.
    Dein Skript ist ein sehr aufwändiger Nachbau der Funktion HotKeySet() und da es nicht so simpel, wie diese Funktion zu nutzen ist, sehe ich da auch keinen Mehrwert.
    Aber laß dich nicht entmutigen. Es gibt sicher noch Einiges, dass nicht bereits in Funktionen gegossen ist. ;)

  • Spezifische Farbe in einem String

    • BugFix
    • 22. August 2010 um 14:50

    Images sind immer links angeordnet, geht nicht anders.
    Du brauchst kein weißes Image, wenn kein Image dargestellt werden soll, verweise auf einen Indexwert, der größer als in deiner Imagelist ist.
    Vor dem Item wird ebenfalls Platz gehalten für Images - selbst wenn nicht gesetzt. Der Style bezieht sich immer auf Item oder Item+SubItems, aber nicht nur auf SubItems.

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <GuiImageList.au3>

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

    Local $aHost[4] = ['W2K8-D001','W2K8-D002','W2K8-D003','W2K8-D004']

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

    $gui = GUICreate('test', 430, 300)
    $lv = GUICtrlCreateListView('Host|Java|AReader|Flash|Firefox', 10, 10, 400, 200, Default, $LVS_EX_SUBITEMIMAGES)
    $hListView = GUICtrlGetHandle($lv)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 150)
    For $i = 1 To 4
    _GUICtrlListView_SetColumnWidth($hListView, $i, 61)
    Next

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

    $hImage = _GUIImageList_Create()
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
    _GUICtrlListView_SetImageList($hListView, $hImage, 1)

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

    For $i = 0 To 3
    _GUICtrlListView_AddItem($hListView, $aHost[$i], 3) ; <== Index den es in der ImageList nicht gibt
    For $j = 1 To 4
    _GUICtrlListView_AddSubItem($hListView, $i, '', $j, Random(0,2,1))
    Next
    Next

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

    GUISetState()

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

    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • Buttons nach Labelklick hinzufügen

    • BugFix
    • 22. August 2010 um 13:15

    WinMove() anschauen.

  • Assembler Hilfe-Thread

    • BugFix
    • 22. August 2010 um 11:54

    Hi,
    habe ein seltsames Problem. Dein Bsp. Addition nur mit anderen (Integer)-Werten.
    Ist der erste übergebene Integer = oder ein Vielfaches von 256, wird er als 0 geführt. Ab dem Folgewert beginnt er wieder bei 1. ?(

    Spoiler anzeigen
    [autoit]

    $Fasm = FasmInit() ;FASM initialisieren
    FasmReset($Fasm) ;FASM resetten
    FasmAdd($Fasm, "use32") ;wir benutzen den 32-Bit Assembler
    FasmAdd($Fasm, "mov eax, [esp + 4]") ;erster Parameter ins EAX-Register, 4 Byte nach der Rücksprungadresse
    FasmAdd($Fasm, "mov ebx, [esp + 8]") ;zweiter Parameter ins EBX-Register
    FasmAdd($Fasm, "add eax, ebx") ;EAX = EAX + EBX
    ;ein einfaches RET reicht nun
    FasmAdd($Fasm, "ret") ;zurück zur aufrufenden Funktion
    $bytecode=FasmGetBinary($Fasm)
    ConsoleWrite($bytecode&@CRLF) ;Bytecode per Copy/Paste in das nächste Script transferieren
    MsgBox(0,"Bytecode, der vom Assembler erstellt wurde:",String(FasmGetBinary($Fasm))) ;Bytecode anzeigen
    ;die folgenden 3 Zeilen ersetzen den MemoryFuncCall()
    $tCodebuffer=dllstructcreate("byte["&stringlen($Bytecode)/2-1&"]") ;Speicher für den Bytecode reservieren
    dllstructsetdata($tCodeBuffer,1,$Bytecode) ;Bytecode in den Speicher schreiben

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

    $Ret= DllCall("user32.dll", "int", "CallWindowProcW", "ptr", DllStructGetPtr($tCodeBuffer), "byte", 255, "int", 2000000, "int", 0, "int", 0);bytecode aufrufen, rückgabe in a[0], aufruf IMMER mit 4 Parametern!
    MsgBox(0,"255+2000000 - OK",$Ret[2]&" + "&$Ret[3]&" = "&$Ret[0])

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

    $Ret= DllCall("user32.dll", "int", "CallWindowProcW", "ptr", DllStructGetPtr($tCodeBuffer), "byte", 256, "int", 2000000, "int", 0, "int", 0);bytecode aufrufen, rückgabe in a[0], aufruf IMMER mit 4 Parametern!
    MsgBox(0,"256+2000000 - FALSCH",$Ret[2]&" + "&$Ret[3]&" = "&$Ret[0])

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

    $Ret= DllCall("user32.dll", "int", "CallWindowProcW", "ptr", DllStructGetPtr($tCodeBuffer), "byte", 512, "int", 2000000, "int", 0, "int", 0);bytecode aufrufen, rückgabe in a[0], aufruf IMMER mit 4 Parametern!
    MsgBox(0,"512+2000000 - FALSCH",$Ret[2]&" + "&$Ret[3]&" = "&$Ret[0])

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

    FasmExit($Fasm) ;FASM aus dem Speicher entfernen

    [/autoit]

    Edit: Das kommt von Copy&Paste: Du hattest als Übergabetyp des ersten Parameters 'byte' - hatte ich nicht drauf geachtet ;)

  • Spezifische Farbe in einem String

    • BugFix
    • 21. August 2010 um 23:20

    Verwende besser ein Listview, damit kannst du die gewünschten Einstellungen vornehmen - verwende die Forensuche dazu (Listview Format).

  • Ich brauch dringend schnell hilfe pls

    • BugFix
    • 21. August 2010 um 23:12

    Ich kann mich des Eindrucks nicht erwehren, dass hier kein sauberes Ziel verfolgt wird. Wässrige und ausweichende Angaben, haarsträubende Story zur Dringlichkeit (bei "brauche schnell Hilfe" läuten meine Alarmglocken).
    Es kann sein, dass ich mich irre. In dem Fall kann der Threadstarter mit ausreichenden Argumenten mir eine PN zukommen lassen.
    Bis dahin: CLOSED

  • Bilderrechte?

    • BugFix
    • 21. August 2010 um 15:06

    Für alle darstellbaren Daten (Text, Ton, Bild, Film) gilt das Urheberrechtsschutzgesetz.
    Da ist klar geregelt, dass ohne Einwilligung des Rechteinhabers dessen Bilder (etc. pp.) nicht verwendet werden dürfen.
    Wenn du also Bilder verwenden möchtest, die dir nicht urheberrechtlich gehören, mußt du dir die Erlaubnis des Rechteinhabers einholen. Das kann ein langwieriges Unterfangen sein, den Rechteinhaber ausfindig zu machen.
    Denke nie: "Solange sich keiner dran stört, geht das schon.." - Das könnte sehr teuer werden.

    Zitat von Leviathan

    Es spricht aber nix dagegen, ähnliche Grafiken zu verwenden.


    Das geht so auch nicht. Wenn die 'ähnliche Grafik' erkennen läßt, worauf eigentlich Bezug genommen wird, fällt dieses auch unter den Urheberrechtsschutz.
    Bsp.:
    Du verwendest für ein Spiel eigene Zeichnungen von Mickey-Mouse. Die sind zwar dann kein Original, aber Mickey-Mouse als solches darf nicht nachempfunden werden.

  • Bool prüfung für Strings Array´s Integer

    • BugFix
    • 18. August 2010 um 09:50

    Ich finde es nicht sinnvoll, mehrere Typen in einer Abfrage abzuhandeln.
    Dadurch geht der Kontext des Skriptes verloren.
    Bsp.:

    [autoit]

    If bool($wert) Then

    [/autoit]


    sagt mir doch nichts mehr über den Grund der Prüfung. Und das ist doch elementar für mein Skript.
    Wenn ich prüfe, dann ganz gezielt auf einen Typ um entsprechend reagieren zu können. Im Moment des Schreibens ist einem das bewußt. Aber glaub mir, wenn du nach einem Jahr in das Skript schaust, grübelst du: "WTF, auf was hab ich da bloß geprüft?" :D

  • GUIAutoSize?

    • BugFix
    • 17. August 2010 um 08:06

    Als Erstes Herzlich Willkommen im Forum.

    Zitat von Großvater

    Meine Vorstellung, AutoIt sei im Prinzip eine "modernere" Version von AutoHotkey, stimmt leider nicht 100-prozentig.


    Das ist nicht ganz richtig. Es ist eine Parallelentwicklung zu AHK mit anderen Schwerpunkten. Was Maus-, Tastatur- u. einige andere Dinge im GUI-Handling betrifft ist AHK ausgereifter. Andere Bereiche sind wiederum in AutoIt wesentlich flexibler und komfortabler.
    Sieh beide als Geschwisterpaar, in dem sich AHK zum Künstler und AutoIt zum Ingenieur entwickelt. Das trifft in etwa den Status. ;)

    AutoSize ist als native Funktion nicht vorhanden. Ich bin mir aber ziemlich sicher, dass jemand dazu schon eine eigene Funktion erstellt hat. Wenn du hier in der Suche nicht fündig wirst, schau auch mal bei unseren Brüdern im EN-Forum nach.

  • Verteilung unterschiedlicher Gewichtungen

    • BugFix
    • 16. August 2010 um 22:29

    Hier mal der Alghoritmus in Textform, umsetzen mußt du selber.
    - Gesamtsumme 'Item' (oder Punkte o. was auch immer) bilden
    - teilen durch Anzahl der Teilnehmer um Zuordnungsbetrag zu ermitteln ( Int($summe/$teilnehmerzahl) )
    - vorhandene Item in ein 2D-Array speichern ( [n][0]=Wert, [n][1]=Anzahl )
    - jetzt in einer Schleife das Array solange durchgehen, bis alle Item ausgegeben sind
    - für jedes Item:
    -- gib jedem Teilnehmer ein Item (addiere auf und vergleiche ob Zuordnungsbetrag erreicht)
    -- jeder ein Item des Werts bekommen?
    --- Ja
    --- noch welche da? ==> das gleiche nochmal
    --- keine mehr da? ==> auf zum nächsten Wert
    --- Nein
    --- Betrag des Item aus folgenden Werten summieren und an die restlichen Teilnehmer der Runde ausgeben
    usw. usf.

  • _GDIPlus_GraphicsDrawArc

    • BugFix
    • 16. August 2010 um 22:08

    Für den Kreis geht es so: https://autoit.de/index.php?page…1845#post101845 ;)

  • Themieda mit AutoIt

    • BugFix
    • 15. August 2010 um 21:49

    Ob es überhaupt geht weiß ich nicht. Halte es aber auch nicht für sinnvoll, da viele AV-Scanner mit Themieda behandelte Programme dann selbst als Virus einstufen.

  • Just 4 Fun - Was tut das Skript?

    • BugFix
    • 15. August 2010 um 09:36

    Freut mich, wenn euch der kleine Gag gefallen hat. :D

    Als Obfuscator allein taugt es nicht, da in der Form nur mit Execute() ausführbare Befehlszeilen erstellt werden können (also z.B. keine Schleifen o.a. mehrzeilige Befehlsstrukturen).
    Aber als Prä-Obfuscator ist es sicherlich nicht schlecht:
    - alle Ein-Zeilen-Befehle damit "vorbehandeln"
    - danach ab in den Obfuscator

    Bleibt aber die Frage der Performance. Aus einem Befehl wird eine Anzahl Befehle für jedes verwendete Zeichen plus dem eigentlichen Befehl. Das stell ich mir bei großen Skripten (und es sind ja meist die großen, wertvollen Skripte, die man schützen möchte) dann aber doch sehr bremsend vor.
    Wenn ihr möchtet, erstelle ich mal den "PräObfuscator" und wer ein entsprechend großes Skript hat, kann dann ja mal einen Performancevergleich anstellen.

  • Das NDM-1 Gen, müssen wir eine Pandemie befürchten ?

    • BugFix
    • 15. August 2010 um 09:22

    Es hilft schon, einfach das Original zu lesen, statt der Panikmache aus der Blöd-Zeitung.
    Hier als Extrakt:
    - Mediziner haben eine neues Bakterium lokalisiert (NDM-1)
    - der Erreger ist multiresistent gegen Antibiotika
    - er hat damit das Potenzial für ein globales Gesundheitsproblem
    - eine Zusammenarbeit internationaler Gesundheitsbehörden ist nötig

    Nun noch etwas zu multiresistenten Keimen:
    Diese (MRSA) Erreger sind Alltag in unserem Leben. Das ist leider auch dem Umstand geschuldet, dass gegen jeden quersitzenden Furz sofort Antibiotika verordnet werden. Somit ist es nur eine Frage der Zeit, bis Erreger (deren Lebenszyklus ja millionenfach geringer als der unsrige ist) sich an diese Drogen angepaßt haben und gegen diese resistent sind.
    Für Gesunde sind diese Erreger, auch wenn neue auftauchen, weitgehend uninteressant. Unser intaktes Immunsystem sollte damit klarkommen. Erkrankungen sind vom Verlauf her dann meist überschaubar und nicht unbedingt lebensbedrohlich.
    Das Problem bilden Alte, Kinder und Kranke. Deren noch nicht ausgereiftes oder bereits strapaziertes Immunsystem kann hier u.U. weniger ausrichten und dann sind die Krankheitsverläufe durchaus bedrohlich.

    Aber um auf das Topic zurückzukommen:
    Momentan hat die Meldung in etwa den Wert des folgenden Satzes.
    "In China ist ein Sack Reis geplatzt! - Droht der Welt jetzt eine Hungerkatastrophe?" :rofl:

  • OscarLin.dll ansprechen

    • BugFix
    • 15. August 2010 um 09:01

    Das Oscar-Protokoll zu portieren ist nicht gerade simpel. :S Aber die Mühe hat sich schon jemand gemacht. :rolleyes:_TocLib.au3

  • Just 4 Fun - Was tut das Skript?

    • BugFix
    • 14. August 2010 um 22:08
    Zitat von Der_Doc

    Mh
    also ich finde da nix raus.

    :D

    Es ist eine Anlehnung an das Brainfuck-Prinzip.
    Ich bilde ein Array (zur Verwirrung als Pointerstruktur) und hinterlege dort ASCII-Werte. In einem Array speichere ich die ASCII-Werte aller Zeichen einer Befehlszeile [ MsgBox(0, "Test", "Hello World!") ] aber nicht direkt, sondern relativ zum vorigen Zeichen. Dannach wird in einer Schleife daraus die Zeichenkette zusammengesetzt und am Ende mit Execute ausgeführt.

  • Welchen AutoIt Datentyp muss ich verwenden.

    • BugFix
    • 14. August 2010 um 15:13

    Na dann verwende doch auch "int_ptr". Wobei es vermutlich auch ein "int" tut. Einen Rückgabewert erwartest du ja nicht von der Funktion (außer Erfolg/Fehler).
    Aber warum verwendest du beim letzten Parameter "dword" statt "uint"? Es ist zwar oft egal, aber ich versuche mich an die Vorgaben zu halten, wenn AutoIt das ermöglicht.

  • Just 4 Fun - Was tut das Skript?

    • BugFix
    • 14. August 2010 um 15:00

    Hi,
    hier ein ganz einfaches Skript. Wie schnell bekommt ihr heraus, was es tut - ohne es auszuführen? :P
    Wenn man große Skripte so schreiben würde und dann noch einen Obfuscator drüberjagt, besteht kaum noch die Chance sich da durchzufinden - allerdings auch für den Autor. :rofl:

    [autoit]

    Local $1 = DllStructCreate('ptr[128];')
    Local $2[33] = [77,38,-12,-37,45,9,-80,8,-4,-12,2,50,17,14,1,-82,10,-12,2,38,29,7,0,3,-79,55,24,3,-6,-8,-67,1,7]
    Local $3 = 0, $4 = 0, $5 = ''
    For $6 = 1 To 128
    DllStructSetData($1, 1, $6, $6)
    Next
    While $3 < UBound($2)
    $4 += $2[$3]
    $5 &= Chr(DllStructGetData($1, 1, $4))
    $3 += 1
    If $3 = UBound($2) Then Execute($5)
    WEnd

    [/autoit]

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™