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

  • aus switch "rausspringen"

    • BugFix
    • 28. September 2009 um 23:32

    ContinueCase ist aber der falsche Weg!
    Du wirst es merken, wenn weitere Cases dadrunter stehen.

    ContinueCase bedeutet: Setze mit nächstem Case fort und nimm an dieser Case ist wahr.
    Heißt: der Code vom nächsten Case wird ausgeführt.

  • Anwendertreffen?

    • BugFix
    • 28. September 2009 um 20:51

    Wir machen mit unserer Familie jährlich ein Treffen. Und das ist schon haarig so etwas übereinstimmend zu organisieren, dass jeder zufrieden ist. Und wir sind nur 26 Leute.
    Insofern wage ich mal zu behaupten, dass es an eine Sysiphosarbeit grenzt, so etwas für eine große Anzahl von Menschen zu managen. (Falls überhaupt Gemeinsamkeit zu erreichen ist)

    Und mal noch ein anderer Aspekt:
    Hat jemand von euch schon mal ein Blind Date gehabt? Bzw. habt ihr euch mal mit jemandem getroffen, den ihr vorher lange Zeit 'kanntet' vom Chat her?
    In 90% der Fälle werdet ihr überrascht sein - aber unangenehm. Dies hat weniger mit eurem Gegenüber zu tun, sondern mehr mit dem Bild, das ihr euch von ihm selbst erstellt habt.
    Also ich weiß nicht, ob es unbedingt erstrebenswert ist, sich im RL zu sehen. Hier im Forum definieren wir uns in erster Linie über unser gemeinsames Interesse an AutoIt und die Fähigkeiten, die wir darin erworben haben. Aber wir sind ja auch Menschen mit Macken und Fehlern - und ob die wem anders gefallen..? :rolleyes:

  • _DayIntervalToDateArray & @Hour & @min

    • BugFix
    • 28. September 2009 um 20:22
    Zitat von Andy

    Diese Methode ist nur dann effektiv, wenn du damit irgendetwas einsparen kannst, Speicherplatz, Zeit usw.
    Aber nur "weil es geht" einen lesbaren Ausdruck in etwas (auf Anhieb) unleserliches zu verwandeln um es danach wieder in lesbare Daten zu transferieren ist suboptimal.

    Ja Andy, so ist es. Und da in diesem Kontext etliche Abfragen, die Zeit verbraten, eingespart werden, ist es hierfür durchaus sinnvoll.
    Dass weniger Code zu schreiben ist, ist ein angenehmer Nebeneffekt.
    Auch wenn die Einsparungen sicher nicht von Belang sind, erachte ich es als sinnvoll sich rechtzeitig Optimierungsmöglichkeiten zu erschließen. Bei größeren Skripten hat man dann tatsächlich einen Benefit.

  • Markierter Text direkt in Excel...

    • BugFix
    • 28. September 2009 um 11:23

    Das ist alles viel zu kompliziert. ;)
    Wenn du Excel bereits offen hast und die erste zu beschreibende Zelle markiert ist, starte einfach folgendes Skript.
    Wechsele dann in dein PDF-Dokument (egal ob mit dem lahmen Acrobat Reader oder was vernünftigem :D ), markiere den zu übertragenen Text und mit STRG+ALT+C wird alles ohne Zeilenumbrüche in Excel eingefügt. Dann wird in Excel auf die nächste Zeile gewechselt. Dabei bleibt Excel selbstverständlich im Hintergrund. Du kannst also bequem, ohne dein PDF-Dokument zu verlassen, beliebig viele Passagen so an Excel übergeben.
    Bist du fertig, beendest du das Skript mit STRG+ALT+E und speicherst dein Excel. (auch das läßt sich bei Bedarf gleich noch per Skript ausführen ;) )

    [autoit]

    HotKeySet('^!c', '_ClipToExcel') ; Strg + Alt + c ==> Text im PDF kopieren und dann in Excel einfügen
    HotKeySet('^!e', 'ende') ; Strg + Alt + e ==> Ende
    Global $oExcel = ObjGet("", "Excel.Application")

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

    While True
    Sleep(100)
    WEnd

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

    Func _ClipToExcel()
    Send('^c')
    $oExcel.ActiveCell.Value = StringRegExpReplace(ClipGet(), @CRLF, ' ')
    $oExcel.ActiveCell.Offset(1, 0).Select
    EndFunc

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

    Func ende()
    Exit
    EndFunc

    [/autoit]
  • Desktop "einschränken" ?

    • BugFix
    • 27. September 2009 um 18:31
    Zitat von Sen

    Eigentlich kann mans gar nicht falsch verstehen.


    Du siehst doch, dass man kann :D
    Auch nach der jetzigen Erklärung bin ich mir nicht sicher, was du meinst.

  • GDI-Bilder Drehen

    • BugFix
    • 27. September 2009 um 16:28

    Oder so:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $hGUI, $file, $hImage1, $hGraphic, $width, $height
    $hGUI = GUICreate("GDI+", 600, 400)
    GUISetState()
    _GDIPlus_Startup()
    $file = @SystemDir & '\oobe\images\mslogo.jpg'
    $hImage1 = _GDIPlus_BitmapCreateFromFile($file)
    $width = _GDIPlus_ImageGetWidth($hImage1)
    $height = _GDIPlus_ImageGetHeight($hImage1)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

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

    ;DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
    DrawInsert($hGraphic, $hImage1, 150, 10, 20, $width + 2, $height + 2, 0xFFFF8000, 2)

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

    Do
    Until GUIGetMsg() = -3
    _GDIPlus_ImageDispose($hImage1)
    _GDIPlus_Shutdown()
    EndFunc ;==>_Main

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

    ; #FUNCTION# ==================================================================================================
    ;Name...........: DrawInsert
    ; Description ...: Draw one image in another
    ; Syntax.........: DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
    ; inserts Graphics $hImage2 into $hGraphic
    ; Parameters ....: $hGraphics - Handle to a Graphics object
    ; $hImage - Handle to an Image object to be inserted
    ; $iX - The X coordinate of the upper left corner of the inserted image
    ; $iY - The Y coordinate of the upper left corner of the inserted image
    ; $iWidth - The width of the rectangle Border around insert
    ; $iHeight - The height of the rectangle Border around insert
    ; $iARGB - Alpha, Red, Green and Blue components of pen color - Border colour
    ; $nWidth - The width of the pen measured in the units specified in the $iUnit parameter - Border Width

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

    ; Return values .: Success - True
    ; Failure - False
    ;==================================================================================================
    Func DrawInsert($hGraphic, $hImage2, $iX, $iY, $nAngle, $iWidth, $iHeight, $iARGB = 0xFF000000, $nWidth = 1)
    Local $hMatrix, $hPen2

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

    ;Rotation Matrix
    $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixRotate($hMatrix, $nAngle, "False")
    _GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)

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

    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage2, $iX, $iY)

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

    ;get pen + color
    $hPen2 = _GDIPlus_PenCreate($iARGB, $nWidth)

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

    ; Draw a frame around the inserted image
    _GDIPlus_GraphicsDrawRect($hGraphic, $iX, $iY, $iWidth, $iHeight, $hPen2)

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

    ; Clean up resources
    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_PenDispose($hPen2)
    Return 1
    EndFunc ;==>DrawInsert

    [/autoit]
  • ListView - SubItem einzeln färben/formatieren, Finale Version! (v1.3)

    • BugFix
    • 27. September 2009 um 11:28

    Neue Version:

    - keine Begrenzung der Spaltenzahl mehr!
    - Auch bei mehreren Listview werden alle Formatierungsdaten in einem Array verwaltet
    - die Prüfung, ob ein (Sub)Item formatiert ist, läuft wesentlich schneller
    - Management zur Verwaltung der Formatinfos zu den Items ist integriert (UDF-Funktionen angepaßt)
    - Listview kann sortiert, Einträge können eingefügt, gelöscht werden etc.

    Details s. Bsp. 5_LV_Format.au3 in Post 1

  • Klick on Progress->Wert verändern

    • BugFix
    • 27. September 2009 um 00:40

    :D
    Hab grad bemerkt, dass ich es viel zu kompliziert gemacht hatte.
    Geht deutlich kürzer:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>

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

    $gui = GUICreate('test')
    $progress = GUICtrlCreateProgress(20, 50, 200, 20, $PBS_SMOOTH)
    $pPos = ControlGetPos($gui, '', $progress)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    $mPos = GUIGetCursorInfo($gui)
    If $mPos[4] = $progress Then
    $iProg = ($mPos[0] - $pPos[0]) / $pPos[2] *100
    GUICtrlSetData($progress, $iProg)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Klick on Progress->Wert verändern

    • BugFix
    • 26. September 2009 um 18:50

    Ich weiß zwar nicht, wozu das zu gebrauchen sein soll :rolleyes:
    aber so geht es:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate('test')
    $progress = GUICtrlCreateProgress(20, 50, 200, 20)
    $pPos = ControlGetPos($gui, '', $progress)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    $old = Opt('MouseCoordMode', 2)
    $mPos = MouseGetPos()
    If ($mPos[0] >= $pPos[0] And $mPos[0] <= $pPos[0] + $pPos[2]) And _
    ($mPos[1] >= $pPos[1] And $mPos[1] <= $pPos[1] + $pPos[3]) Then
    $iProg = ($mPos[0] - $pPos[0]) / $pPos[2] *100
    GUICtrlSetData($progress, $iProg)
    EndIf
    Opt('MouseCoordMode', $old)
    EndSwitch
    WEnd

    [/autoit]
  • Skript für Spiel

    • BugFix
    • 25. September 2009 um 20:30

    war10ck
    :D Das ist Leichenfledderei!
    Letzter Post:

    Zitat

    Sonntag, 18. November 2007, 15:12

  • Mac adressen wechseln

    • BugFix
    • 25. September 2009 um 18:31

    Ich kenne eigentlich nur eine sinnvolle Anwendung:
    Der Internetprovider vergibt eine statische IP, diese ist gekoppelt an die MAC-Adresse des Endgerätes. Wenn nun der PC (oder nur die Netzwerkkarte) getauscht wird muß die alte MAC-Adresse auf die neue Karte übertragen um den Account weiter nutzen zu können ohne extra den Provider zu kontaktieren.

  • Arbeitszeit Rechner

    • BugFix
    • 24. September 2009 um 18:56
    Zitat von latemail

    habe nur ich das Problem?


    Nö :D
    Da war ein Fehler in der Deklaration.
    Übernimm mal diese Zeile (34):

    [autoit]

    Local $currYear = @YEAR, $currM_D = '/' & @MON & '/' & @MDAY

    [/autoit]
  • Funktion aus einer Funktion ausführen

    • BugFix
    • 22. September 2009 um 20:15

    Wenn du eine Funktion über ihren String aufrufen willst, verwende den Befehl: Call()

    [autoit]

    Call("meineFunc")

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

    Func meineFunc()
    ; dein Code
    EndFunc

    [/autoit]
  • Nettoarbeitstage berechnen

    • BugFix
    • 22. September 2009 um 20:10

    Ich glaub, das hier war es:
    [ neu ] Arbeitszeit Rechner

  • Nettoarbeitstage berechnen

    • BugFix
    • 22. September 2009 um 19:53

    Genau diese Fragestellung wurde im Forum schon mal behandelt (und gelöst). Aber ich weiß nicht mehr unter welchem Titel. Vielleicht erinnert sich ja noch jemand anders daran.

  • GeForce GTX260 Problem

    • BugFix
    • 22. September 2009 um 17:42
    Zitat von Greenhorn

    Die Hersteller sehen dies eben nicht als Mangel an, da der Grafikchip mir ja gaaaaaaanz tolle Bilder und Frameraten liefert, und mehr braucht eine Grafikkarte nicht zu tun, rein rechtlich gesehen.


    Auch wenn ich kein Jurist bin, so ist diese Argumentation selbstredend auf den Hersteller zugeschnitten und entspricht m.E. nicht der Rechtslage.
    - Es ist korrekt, die GraKa erfüllt die von ihr geforderte Funktion fehlerfrei
    ABER
    - Die GraKa bringt eine Funktion mit (Zusatzgeräusch), die nicht zum Funktionsumfang der GraKa gehört und somit muß der Käufer diese ungewollte Funktion nicht ertragen.
    Somit liegt ein Mangel vor, nicht wegen Fehlfunktion, sondern wegen Vorhandensein von Funktionen, die nicht den technischen Spezifikationen der GraKa entsprechen.
    Kannst dich auch mal an den Verbraucherschutz wenden, die werden sich mit Freude drauf stürzen.
    Übrigens gibt es gesetzliche Normen, die die Lautstärke und Frequenz von jedem erdenklichen elektrischen Bauteil festlegen. Insofern stellt der Krach u.U. auch eine Verletzung von Normativen dar.

  • _RunTime - UDF zur PC-Laufzeit

    • BugFix
    • 22. September 2009 um 17:28

    Ich würde es passend finden, wenn du dazu schreibst, welchem Zweck die Funktion dient.
    Aus dem Funktionsnamen allein ist dies nicht zu entnehmen.

  • Strings vergleichen

    • BugFix
    • 22. September 2009 um 16:24
    Zitat von Andy

    nochmal "umgedreht". Der Grund erschliesst sich mir nicht....


    Ist vermutlich an die übliche AutoIt-Syntax angepaßt: 1 = True, 0 = False
    Je mehr der Wert gegen 1 läuft, desto 'wahrer', also größer ist die Übereinstimmung.
    Ich finde das sehr passend.

  • Chekbox in ini eintragen und Uhrzeit....

    • BugFix
    • 22. September 2009 um 09:19

    Du benötigst in der INI nur einen Schlüssel um festzulegen, an welchen Tagen die Sicherung laufen soll:

    Spoiler anzeigen
    [autoit]

    #cs - diese Werte speicherst du als Summe für mehrere Tage in der INI
    1 - Sonntag
    2 - Montag
    4 - Dienstag
    8 - Mittwoch
    16 - Donnerstag
    32 - Freitag
    64 - Samstag
    #ce
    ; z.B.
    Local $arCheckBox[7]
    $arCheckBox[0] = GUICtrlCreateCheckbox('Sonntag',...)
    $arCheckBox[1] = GUICtrlCreateCheckbox('Montag',...)
    ; usw.

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

    ; Auslesen
    Local $checked = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($arCheckBox[$i]), $GUI_CHECKED) Then
    $checked = BitOR($checked, 2^$i)
    EndIf
    Next
    ; in INI schreiben
    IniWrite($INI, 'sicherung', 'tage', $checked)

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

    #cs Muster-INI
    [sicherung]
    tage=42
    #ce
    ; 2 + 8 + 32 = Mo/Mi/Fr

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

    ; aus INI lesen
    Local $savedays = IniRead($INI, 'sicherung', 'tage', 0)

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

    ; prüfen ob aktueller Tag für Sicherung vorgesehen ist
    If BitAND($savedays, 2^(@WDAY-1)) Then
    ; starte Sicherung
    EndIf

    [/autoit]


    Wichtig ist, dass der Sonntag in der Reihenfolge der erste Tag ist, da @WDAY für Sonntag 1 zurückgibt. Auf der GUI kannst du das ja anders anordnen, aber im Array muß Sonntag an [0] sein.

  • Ordnerinhalt auslesen

    • BugFix
    • 21. September 2009 um 20:11
    Zitat

    Dienstag, 11. April 2006, 16:18


    Oh Franzi, das ist doch Leichenschändung. :D

    Zur Frage: Schau mal _FileListToArray() an.

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™