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

Beiträge von Oscar

  • Rechner

    • Oscar
    • 19. Februar 2009 um 21:30

    "Wurzelbehandlungen" gehen mit Sqrt()
    Gleichungssysteme bin ich überfragt.

  • Webradio Player + Streamripper

    • Oscar
    • 19. Februar 2009 um 21:26

    Eine Exe-Datei von einem Neuen?
    Sorry, aber nicht auf meinem Rechner... :pinch:

  • Warum AutoIt?

    • Oscar
    • 19. Februar 2009 um 21:22

    Mir gefällt die Syntax von AutoIt auch besser, gerade in Bezug auf die "fehlenden" Klammern. Die Klammern haben mich an anderen Sprachen schon immer genervt.

    [OT]

    Zitat

    Programmieren ist Kust, und AutoIt ein Pinsel.


    Ich kaufe ein "n"! :D
    [/OT]

  • Rechner

    • Oscar
    • 19. Februar 2009 um 21:15

    Ist ganz einfach. Mit Execute kannst Du einen String ausrechnen lassen:

    [autoit]


    $sProblem = InputBox('Rechner', 'Bitte Aufgabe eingeben', '(2*sin(20))/(120-cos(20))')
    MsgBox(0, 'Rechner', Execute($sProblem))

    [/autoit]

    Fehlt bloß noch die Fehlerbehandlung. ;)

  • Avira AntiVir Personal

    • Oscar
    • 19. Februar 2009 um 21:01

    Avira AntiVir macht keine Probleme mehr seit dem heutigen Update!
    Update also einfach nur Dein AntiVir.

  • Adressbuch

    • Oscar
    • 19. Februar 2009 um 17:43

    Warum löschst Du alle Deine Beiträge hier?

    Zum Script...was soll diese Konstruktion bewirken:

    [autoit]


    If FileExists("") Then
    Else
    DirCreate("C:\Programme\Adressbuch\")
    FileInstall("Timer.exe","C:\Programme\Adressbuch\Timer.exe")
    EndIf

    [/autoit]


    If...Then...Else...EndIf sind völlig überflüssig, weil sowieso immer der Else-Zweig ausgeführt wird. :whistling:

  • AutoIt ein VIRUS??????

    • Oscar
    • 19. Februar 2009 um 17:21

    Macht ein Update!
    Es gibt eine neue Suchengine (V8.02.00.85, 19.02.2009), mit der die compilierten Programme nicht mehr als Trojaner erkannt werden. :)

  • AutoIt ein VIRUS??????

    • Oscar
    • 19. Februar 2009 um 14:18

    Ich habe eben eine Antwort auf meine EMail bekommen:

    Zitat

    Dieses Problem wird mit dem nächsten Engine Update behoben sein.

    Mit dieser Version werden die AutoIt-Programme noch immer als Trojaner erkannt:
    V8.02.00.83, 17.02.2009
    V7.01.02.48, 19.02.2009

  • Fehler abfagen ohne MsgBox

    • Oscar
    • 19. Februar 2009 um 11:07

    So gesehen hast Du recht, aber ein echtes Try-Catch muss nicht alle Cases durchtesten, wenn der Versuch bereits fehlschlägt (Zeitvorteil).
    Deshalb dürfte BugFix' Variante schneller sein, wenn es viele Case-Anweisungen gibt.

  • child window an main gui andocken?

    • Oscar
    • 19. Februar 2009 um 10:34

    Dazu brauchst Du doch nur die Koordinaten verändern (die "-204" weglöschen).

  • Fehler abfagen ohne MsgBox

    • Oscar
    • 19. Februar 2009 um 10:32

    Dann ist es aber "nur" ein simples Switch (was in diesem Fall ausreichen würde).
    BugFix wollte aber zeigen, dass man auch ein Try-Catch nachbauen kann.

  • Dateien umbennenen

    • Oscar
    • 19. Februar 2009 um 10:24

    Das Script hatte ich hier bereits rumliegen. :)

  • child window an main gui andocken?

    • Oscar
    • 19. Februar 2009 um 10:20

    Meinst Du so:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $hGui = GUICreate('Test', 640, 480)
    GUISetBkColor(0xffff00)
    GUISetState()
    $aPos = WinGetPos($hGui)
    $hChild = GUICreate('Child', 200, 100, $aPos[0]+$aPos[2]-204, $aPos[1]+30, $WS_POPUP, Default, $hGui)
    GUISetBkColor(0xff0000)
    GUISetState()

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

    GUIRegisterMsg($WM_MOVE, 'MY_WM_Move')

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

    Do
    Until GUIGetMsg() = -3

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

    Func MY_WM_Move()
    Local $aPos = WinGetPos($hGui)
    WinMove($hChild, '', $aPos[0]+$aPos[2]-204, $aPos[1]+30)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Dateien umbennenen

    • Oscar
    • 19. Februar 2009 um 09:59

    Ich habe mal eine Version erstellt, die überprüft, ob es den Zieldateinamen bereits gibt und die eine formartierte Ausgabe des Zählers ermöglicht (4stellig mit führenden Nullen):

    Spoiler anzeigen
    [autoit]


    $sSourcePath = FileSelectFolder('Quellverzeichnis auswählen', '')
    If @error Then Exit
    If StringRight($sSourcePath, 1) <> '\' Then $sSourcePath &= '\'

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

    $sTargetPath = FileSelectFolder('Zielverzeichnis auswählen', '')
    If @error Then Exit
    If StringRight($sTargetPath, 1) <> '\' Then $sTargetPath &= '\'

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

    $sInput = InputBox('JPG-Mover', 'Neuen Dateinamen eingeben')
    If @error Then Exit

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

    $hSearch = FileFindFirstFile($sSourcePath & '*.jpg') ; Search-Handle für JPG-Dateien
    If $hSearch = -1 Then Exit MsgBox(0, 'Fehler', 'Keine JPG-Dateien gefunden')

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

    $iNr = 0 ; Zähler für den Ziel-Dateinamen
    While 1
    $sFile = FileFindNextFile($hSearch) ; finde nächste Datei mit dem Suchmuster
    If @error Then ExitLoop ; keine weitere gefunden, dann While-Schleife verlassen
    If Not StringInStr(FileGetAttrib($sSourcePath & $sFile), 'D') Then ; Wenn der gefundene String kein Verzeichnis ist, dann...
    $iNr += 1 ; Zähler um eins erhöhen
    While FileExists($sTargetPath & $sInput & StringFormat('%04s', $iNr) & '.jpg') ; falls es eine Zieldatei mit diesem Namen bereits gibt, dann...
    $iNr += 1 ; Zähler nochmal um eins erhöhen und
    WEnd ; Schleife erneut durchlaufen
    ConsoleWrite($sSourcePath & $sFile & ' -> ' & $sTargetPath & $sInput & StringFormat('%04s', $iNr) & '.jpg' & @CRLF) ; Ausgabe in die Console
    FileMove($sSourcePath & $sFile, $sTargetPath & $sInput & StringFormat('%04s', $iNr) & '.jpg') ; Datei verschieben
    EndIf
    WEnd
    ToolTip('')
    FileClose($hSearch)

    [/autoit]
  • AutoIt ein VIRUS??????

    • Oscar
    • 18. Februar 2009 um 21:55

    Aua! Stimmt! Beim Kompilieren kommt immer noch die Falschmeldung. So schlimm war's ja noch nie. X(

  • AutoIt ein VIRUS??????

    • Oscar
    • 18. Februar 2009 um 21:43

    Jo! Mit der Virendefinitionsdatei 7.01.02.44 18.02.2009 ist alles wieder ok. Bis zur 43 war die "AutoIt3.exe" angeblich ein Trojaner.

  • Variable Umdeklarieren

    • Oscar
    • 18. Februar 2009 um 16:48

    Und das ist doch ein klassischer Fall für Switch:

    Spoiler anzeigen
    [autoit]


    guictrlcreatecombo("PLUS", 10, 30, 60, 20)
    guictrlsetdata( -1,"MINUS|MAL|DIVIDIERT|WURZEL|SINUS|COSINUS|TANGENS")
    Switch $3
    case "MINUS"
    _Arrayadd( $5, "-")
    Case "PLUS"
    _Arrayadd( $5, "+")
    case "MAL"
    _Arrayadd( $5, "*")
    case "DIVIDIERT"
    _Arrayadd($5, "/")
    case "WURZEL"
    _ArrayAdd( $5, "Sqrt")
    case "SINUS"
    _arrayadd( $5, "sin")
    case "COSINUS"
    _arrayadd( $5, "cos")
    case "TANGENS"
    _arrayadd( $5, "tan")
    EndSwitch

    [/autoit]
  • GDI+ Graphic abspeichern

    • Oscar
    • 18. Februar 2009 um 16:40

    Ach was?! So herum funktioniert das?
    Ist das jetzt echt so vorgesehen oder ist das ein Bug?
    Die MY_WM_PAINT-Funktion sieht so auf jeden Fall kürzer und "richtiger" aus. :D


    Aber egal, vielen Dank, progandy! :thumbup:
    Ich habe so viel probiert und mich gewundert, warum das nicht funktioniert. Jetzt weiß ich wenigstens, wie es geht.

  • GUICtrlCreateListView problem

    • Oscar
    • 18. Februar 2009 um 13:43

    Schonmal was von Arrays gehört? ;)

  • GDI+ Graphic abspeichern

    • Oscar
    • 18. Februar 2009 um 13:38

    Danke, für's testen.
    Das heißt, theoretisch sollte mein Beispiel oben funktionieren?
    Ich habe noch nicht viel mit GDI+ gemacht, deshalb war ich am zweifeln, ob das so überhaupt richtig ist.

    Naja, jetzt habe ich das so ähnlich wie von Dir vorgeschlagen (mit _ScreenCapture) gemacht:

    Spoiler anzeigen
    [autoit]


    #include <ScreenCapture.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    $hGui1 = GUICreate('test', 540, 540, -1, 0, $WS_POPUP)
    _GDIPlus_Startup ()
    $hGraphic1 = _GDIPlus_GraphicsCreateFromHWND(WinGetHandle($hGui1))
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic1, 2)
    $hPen = _GDIPlus_PenCreate(0xcc000000, 2)
    Global $ahBrush[4]
    $ahBrush[0] = _GDIPlus_BrushCreateSolid(0xffffffff)
    $ahBrush[1] = _GDIPlus_BrushCreateSolid(0xff42b8c8)
    $ahBrush[2] = _GDIPlus_BrushCreateSolid(0xffff1a10)
    $ahBrush[3] = _GDIPlus_BrushCreateSolid(0xfffef433)

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

    GUIRegisterMsg($WM_PAINT, 'MY_WM_PAINT')
    GUISetState()

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

    $sFile = @ScriptDir & '\pic.jpg'
    If FileExists($sFile) Then FileDelete($sFile)

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

    _ScreenCapture_CaptureWnd($sFile, $hGui1)

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

    Do
    Until GUIGetMsg() = -3

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

    _GDIPlus_PenDispose($hPen)
    For $i = 0 To UBound($ahBrush) -1
    _GDIPlus_BrushDispose($ahBrush[$i])
    Next
    _GDIPlus_GraphicsDispose($hGraphic1)
    _GDIPlus_Shutdown()

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

    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    If $hWnd = WinGetHandle($hGui1) Then
    _GDIPlus_GraphicsClear($hGraphic1, 0xffffffff)
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 30, 30, 480, 480, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 31, 31, 478, 478, $ahBrush[0])
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 54, 54, 432, 432, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 55, 55, 430, 430, $ahBrush[0])
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 78, 78, 384, 384)
    _GDIPlus_PenSetColor($hPen, 0xddffffff)
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 102, 102, 336, 336, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 103, 103, 334, 334)
    _GDIPlus_PenSetColor($hPen, 0xcc000000)
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 126, 126, 288, 288, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 127, 127, 286, 286, $ahBrush[1])
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 150, 150, 240, 240, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 151, 151, 238, 238, $ahBrush[1])
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 174, 174, 192, 192, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 175, 175, 190, 190, $ahBrush[2])
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 198, 198, 144, 144, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 199, 199, 142, 142, $ahBrush[2])
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 222, 222, 96, 96, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 223, 223, 94, 94, $ahBrush[3])
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 246, 246, 48, 48, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 247, 247, 46, 46, $ahBrush[3])
    _GDIPlus_PenSetColor($hPen, 0xcc000000)
    _GDIPlus_GraphicsDrawEllipse($hGraphic1, 258, 258, 24, 24, $hPen)
    _GDIPlus_GraphicsFillEllipse($hGraphic1, 259, 259, 22, 22, $ahBrush[3])
    _GDIPlus_GraphicsDrawLine($hGraphic1, 266, 270, 274, 270, $hPen)
    _GDIPlus_GraphicsDrawLine($hGraphic1, 270, 266, 270, 274, $hPen)
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    So funktioniert's. Danke, BugFix!

    Ich lasse es mal auf "offen". Vielleicht weiß ja einer, ob das auch mit den GDI+ Funktionen klappt...

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™