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

  • _GUICtrlMonthCal_GetCurSel probleme

    • Oscar
    • 11. August 2009 um 14:27

    Das geht doch aber auch mit den Standard-Funktionen (dann kann man einfach GUICtrlRead benutzen):

    Spoiler anzeigen
    [autoit]


    #include <GuiMonthCal.au3>

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

    Global $gui = GUICreate('Kalender')

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

    Global $kalender = GUICtrlCreateMonthCal(@YEAR & '/' & @MON & '/' & @MDAY, 100, 20, 175, 175)
    Global $button_waehlen = GUICtrlCreateButton('Button', 10, 20)

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

    GUISetState()

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

    Do
    $msg = GUIGetMsg()
    If $msg = $button_waehlen Then
    MsgBox(0, "Gewähltes Datum", GUICtrlRead($kalender))
    EndIf
    Until $msg = -3

    [/autoit]
  • Was für Menüs findet ihr besser?

    • Oscar
    • 11. August 2009 um 04:45

    Variante 1 würde ich mir noch gefallen lassen, wenn es nur eine Tabzeile beinhalten würde, aber sobald es zwei oder mehr sind, ist das grausam.
    Ich bin also auch für Variante 2.

  • Fenster aktivieren

    • Oscar
    • 10. August 2009 um 18:06

    Versuch's mal so:

    [autoit]


    Run("SETUP.EXE")
    WinWait("Installation Setup for Evaluation Version")
    ControlClick("Installation Setup for Evaluation Version", "", "[CLASS:Button; INSTANCE:6]")

    [/autoit]
  • Programm

    • Oscar
    • 10. August 2009 um 16:11

    Ja, geh zu der anderen Seite und erstelle Deine Bots.
    Leute gibt's... :pinch:
    [Thread closed]

  • Maus

    • Oscar
    • 10. August 2009 um 15:35

    Wir unterstützen hier keine Bots. Bitte Forenregeln lesen!
    [Thread closed] -der zweite auch-

  • Array sortieren und doppelte Einträge finden

    • Oscar
    • 10. August 2009 um 15:25

    Ich konnte auch gerade so ein Tool gebrauchen, deshalb habe ich mal eins geschrieben:

    Spoiler anzeigen
    [autoit]


    $sSearchPath = 'h:\' ; Pfad der durchsucht werden soll (rekursiv)
    $sSearchPattern = '.+\.zip' ; RegExp-Pattern
    $sSavePath = @ScriptDir & '\Doppelte.txt' ; Datei (inkl. Pfad), in der die doppelten gespeichert werden

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

    ToolTip('Bitte warten! Verzeichnis wird eingelesen!', @DesktopWidth/2-100, 80, 'Double-Finder', 1, 7)
    Global $aFiles = _RecursiveFileListToArray($sSearchPath, $sSearchPattern, 1)
    Global $sExists = '|', $sFilename = '', $sDouble = '', $iPos = 0
    ToolTip($aFiles[0] & ' Dateien gefunden' & @CRLF & 'Bitte warten! Doppelte werden gesucht!', @DesktopWidth/2-100, 100, 'Double-Finder', 1, 7)
    For $i = 1 To $aFiles[0]
    $sFilename = StringRegExpReplace($aFiles[$i], '.+\\(.+)', '$1')
    $iPos = StringInStr($sExists, '\' & $sFilename)
    If $iPos Then
    $iStart = StringInStr($sExists, '|', 0, -1, $iPos)
    $iEnd = StringInStr($sExists, '|', 0, 1, $iPos)
    $sDouble &= StringMid($sExists, $iStart, $iEnd - $iStart) & '|'
    $sDouble &= $aFiles[$i] & '|'
    EndIf
    $sExists &= $aFiles[$i] & '|'
    Next
    $hFile = FileOpen($sSavePath, 2)
    FileWrite($hFile, StringReplace($sDouble, '|', @CRLF))
    FileClose($hFile)
    ShellExecute('notepad.exe', $sSavePath)
    ToolTip('Fertig! Datei erstellt!', @DesktopWidth/2-100, 120, 'Double-Finder', 1, 7)
    Sleep(3000)
    Exit

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

    ;===============================================================================
    ; Function Name: _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    ; Description:: gibt Verzeichnisse und/oder Dateien (rekursiv) zurück, die
    ; einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(0, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc

    [/autoit]

    Das Script findet alle doppelten Dateien im Suchpfad und listet diese auf. Die drei Variablen ganz oben müssen entsprechend angepasst werden.
    Ist auch ganz gut geeignet zum finden von doppelten MP3s. :)
    Mit der Anzahl der gefundenen Dateien steigt allerdings auch die Rechenzeit an. Bei vielen Dateien (und/oder langsamen Rechner) nur Geduld, das Script läuft noch. ;)

  • Fenster aktivieren

    • Oscar
    • 10. August 2009 um 14:11

    Bevor Du ein Fenster aktivieren kannst, musst Du erstmal warten (WinWait) bis das Fenster überhaupt geöffnet wurde.

    Ansonsten ist es bei automatischen Installationen besser die Control-Befehle zu verwenden anstatt Send, weil Dir bei Send der Benutzer "dazwischenfunken" kann.
    Mit dem Tool "Au3Info.exe" bekommst Du alle Informationen, die Du für die Control-Befehle benötigst.

  • _MemoryRead fehler

    • Oscar
    • 8. August 2009 um 16:01

    Und damit wir Dir das glauben, hast Du das MemoryWrite extra auskommentiert. ^^
    Ok, im Grunde kein Bot, eher ein Cheat. Wie wäre es mit ehrlich spielen?

  • Problem mit GUI Menü

    • Oscar
    • 8. August 2009 um 15:48

    Benutze für das Menu doch einfach eine zweite GUI (Child):

    Spoiler anzeigen
    [autoit]


    #Region - Includes
    #include <ButtonConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #EndRegion - Includes

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

    #Region GUI-Design
    $MainGUI = GUICreate("HastyNotes", 640, 480, -1, -1, $WS_POPUP)
    GUISetBkColor(0xFFFFFF)

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

    $TopLeisteStart = GUICtrlCreatePic("Images/TopLineStart.jpg", 0, 0, 7, 23, -1, $GUI_WS_EX_PARENTDRAG)
    $TopLeisteMiddle = GUICtrlCreatePic("Images/TopLineMiddle.jpg", 7, 0, 589, 23, -1, $GUI_WS_EX_PARENTDRAG)
    $TopLeisteEnd = GUICtrlCreatePic("Images/TopLineEnd.jpg", 633, 0, 7, 23, -1, $GUI_WS_EX_PARENTDRAG)
    $Background = GUICtrlCreatePic("Images/Background.jpg", 0, 23, 640, 432)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $TopButton1 = GUICtrlCreatePic("Images/Mini.jpg", 589, 0, 22, 23)
    $TopButton2 = GUICtrlCreatePic("Images/Close.jpg", 611, 0, 22, 23)
    $BottomLeiste = GUICtrlCreatePic("Images/BottomLine.jpg", 0, 455, 640, 25)
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_MOVE, '_WM_MOVE')

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

    $aMainPos = WinGetPos($MainGUI)
    $MenuGUI = GUICreate('', 636, 16, $aMainPos[0] + 2, $aMainPos[1] + 23, $WS_POPUP, Default, $MainGUI)
    $hFileMenu = GUICtrlCreateMenu('File')
    GUICtrlCreateMenuItem('Open', $hFileMenu)
    GUISetState(@SW_SHOW)
    #EndRegion GUI-Design

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $TopButton1
    GUISetState(@SW_MINIMIZE)
    Case $TopButton2
    Exit
    EndSwitch
    WEnd

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

    Func _WM_MOVE($hWnd, $Msg, $wParam, $lParam)
    If $hWnd = WinGetHandle($MainGUI) Then
    WinMove($MenuGUI, '', BitAND($lParam, 0x0000FFFF) + 2, BitShift($lParam, 16) + 23)
    EndIf
    EndFunc

    [/autoit]
  • _MemoryRead fehler

    • Oscar
    • 8. August 2009 um 15:35

    Tja, da wird das Spiel wohl einen Botschutz haben. :P
    Dieses Forum hat übrigens ein paar Regeln. Schon gelesen?

  • 2 Bilder zu einem machen

    • Oscar
    • 7. August 2009 um 15:40

    Moment...mal in meinem Archiv kramen...ah, da:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    $hSource1 = _GDIPlus_ImageLoadFromFile(@WindowsDir & "\web\wallpaper\Tulpen.jpg")
    $hSource2 = _GDIPlus_ImageLoadFromFile(@WindowsDir & "\web\wallpaper\Mondkrater.jpg")
    $iX1 = _GDIPlus_ImageGetWidth($hSource1)
    $iY1 = _GDIPlus_ImageGetHeight($hSource1)
    $iX2 = _GDIPlus_ImageGetWidth($hSource2)
    $iY2 = _GDIPlus_ImageGetHeight($hSource2)

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

    If $iY1 < $iY2 Then $iY1 = $iY2

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

    $hGui = GUICreate("GDI+", $iX1 + $iX2, $iY1)
    $hPic = GUICtrlCreatePic('', 0,0, $iX1 + $iX2, $iY1)
    $hWnd = WinGetHandle($hGui)
    GUISetState()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hDestination = _GDIPlus_BitmapCreateFromGraphics($iX1 + $iX2, $iY1, $hGraphic)
    $hGraphic1 = _GDIPlus_ImageGetGraphicsContext($hDestination)
    _GDIPlus_GraphicsDrawImage($hGraphic1, $hSource1, 0, 0)
    _GDIPlus_GraphicsDrawImage($hGraphic1, $hSource2, $iX1, 0)

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

    _GDIPlus_ImageSaveToFile($hDestination, @ScriptDir & "\Test.jpg")
    GUICtrlSetImage($hPic, @ScriptDir & "\Test.jpg")
    Do
    Until GUIGetMsg() = -3

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

    _GDIPlus_Shutdown()

    [/autoit]

    Ist nicht von mir, sondern hier aus dem Forum (wenn ich mich recht erinnere von progandy).

  • AutoIt in der C´t

    • Oscar
    • 7. August 2009 um 04:31
    Zitat von Andy

    Aktuell Platz 4 in der Google-Trefferliste nach Eingabe von "AutoIt".


    Tatsächlich! Das war mir noch gar nicht aufgefallen. :)

    Zitat von Andy

    Und ich bin sicher, daß dieses Forum bereits von c´t-lern "unterwandert" ist.


    Also, ich bin's nicht!
    Auch wenn ich die c't abonniert habe und in Hannover wohne und sogar ganz in der Nähe des Heise-Verlags arbeite und fast jeden Tag am Verlagsgebäude vorbeifahre. :D

  • ListviewItem an run Übergeben

    • Oscar
    • 6. August 2009 um 11:00

    Der dritte Parameter bei _GUICtrlListView_GetItemText() kennzeichnet das Subitem (Spalte).

  • ListviewItem an run Übergeben

    • Oscar
    • 6. August 2009 um 10:51

    Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GuiListView.au3>
    #include <GuiConstantsEx.au3>

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

    GUICreate('ListView Get Item Text', 400, 300)
    $hListView = GUICtrlCreateListView('Hostname|BENUTZERNAME|SITZUNGSNAME', 2, 2, 394, 268)
    GUISetState()
    For $i = 0 To 9
    GUICtrlCreateListViewItem(Random(100, 999, 1) & '|' & Random(1000, 9999, 1) & '|' & Random(10000, 99999, 1), $hListView)
    Next
    $hButton = GUICtrlCreateButton('Alle SITZUNGSNAMEN anzeigen', 100, 275, 220, 22)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hButton
    For $i = 0 To _GUICtrlListView_GetItemCount($hListview) -1
    MsgBox(0, 'Item ' & $i, _GUICtrlListView_GetItemText($hListView, $i, 2))
    Next
    EndSwitch
    WEnd

    [/autoit]
  • ListviewItem an run Übergeben

    • Oscar
    • 6. August 2009 um 10:20

    Mit _GUICtrlListView_GetItemText() kannst Du jeden (Sub-)Item-Text auslesen.

  • Script friert nach einigen stunden ein ?

    • Oscar
    • 6. August 2009 um 09:49

    Wenn die Abbruchbedingungen in den While...WEnd-Schleifen nicht erreicht werden (weil sich NsLookUp aufgehängt hat), dann baue zusätzliche Abbruchbedingungen (per Timer) ein, sodass u.U. der Prozess gekillt werden kann.

  • GUI Label + Progressbar zentrieren

    • Oscar
    • 6. August 2009 um 09:40

    Einfach die Position berechnen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    $iWidth = @DesktopWidth
    $iHeight = @DesktopHeight
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("", $iWidth, $iHeight, 0, 0, $WS_POPUP)
    $Label1 = GUICtrlCreateLabel("Software wird geprüft", $iWidth / 2 - 150, $iHeight / 2 - 50, 300, 36, $SS_CENTER)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    $Progress1 = GUICtrlCreateProgress($iWidth / 2 - 150, $iHeight / 2 - 10, 300, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
  • Pakete mit Autoit senden

    • Oscar
    • 6. August 2009 um 06:04

    Du möchtest Dir unsere Forenregeln durchlesen!
    [Thread closed]

  • Wert wird nicht übernommen (Datei)

    • Oscar
    • 6. August 2009 um 05:40

    Die erste Passwortabfrage musst Du noch ändern:

    [autoit]


    $PasswortAbfrage = InputBox("Passwort", "Bitte geben Sie Ihr Passwort ein!")
    If $PasswortAbfrage <> "--" Then ; <- hier "<>" steht für ungleich
    MsgBox(0, "Falsch", "Leider ist das Passwort falsch!")
    Exit
    EndIf

    [/autoit]
  • Recursion level

    • Oscar
    • 5. August 2009 um 19:05

    Das passiert, wenn Du innerhalb einer Funktion diese wieder aufrufst, ohne eine Abbruchbedingung (die max. Rekursionstiefe liegt bei 5100) zu setzen.
    Oder wenn Du "Spaghetticode" programmierst. ;)

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™