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

  • Zweite GUI schließen

    • Oscar
    • 15. Juli 2009 um 04:24

    Statt die GUI immer wieder zu löschen und neu zu erstellen, sollte man lieber mit HIDE und SHOW arbeiten:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $GUI = GUICreate("Form1", 254, 185, 344, 251)
    $Pic2 = GUICtrlCreatePic("C:\Bild.jpg", 3, 6, 249, 157, BitOR($SS_NOTIFY, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS), $WS_EX_CLIENTEDGE)
    $MenuItem1 = GUICtrlCreateMenu("&Menü")
    $Message = GUICtrlCreateMenuItem("Message", $MenuItem1)
    GUISetState(@SW_SHOW)

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

    $GUI2 = GUICreate("Info", 139, 107, 328, 363)
    $Group1 = GUICtrlCreateGroup("Info:", 6, 4, 127, 97)
    $Label1 = GUICtrlCreateLabel("01", 16, 48, 90, 17)
    $Label2 = GUICtrlCreateLabel("02", 16, 24, 112, 17)
    $Label3 = GUICtrlCreateLabel("03", 16, 72, 83, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_HIDE)

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

    While 1
    $aMsg = GUIGetMsg(1)
    Switch $aMsg[0]
    Case $GUI_EVENT_CLOSE
    If $aMsg[1] = $GUI Then Exit
    GUISetState(@SW_HIDE, $GUI2)
    Case $Message
    GUISetState(@SW_SHOW, $GUI2)
    EndSwitch
    WEnd

    [/autoit]
  • normales Fenster, aber nicht in der Taskleiste

    • Oscar
    • 14. Juli 2009 um 19:26
    Zitat von IsleOfTechno

    Es soll sich nicht verändern und nicht zu einem Toolbox-Fenster mit so einem kleinem x werden.

    Das geht meines Wissens nicht.
    Entweder Toolbox-Fenster (mit verändertem Aussehen) oder normales Fenster, dann aber Eintrag in der Taskleiste.

  • Slider Bereich Problem

    • Oscar
    • 14. Juli 2009 um 19:14

    Meinst Du so:

    Spoiler anzeigen
    [autoit]


    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>

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

    $hGui = GUICreate('Test', 400, 300)
    $hSlider = GUICtrlCreateSlider(10, 10, 380, 30, $TBS_AUTOTICKS)
    GUICtrlSetLimit(-1, 300, 0)
    GUISetState()
    GUIRegisterMsg($WM_HSCROLL, '_MY_WM_HSCROLL')

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hSlider
    ToolTip('')
    MsgBox(0, 0, 300 - GUICtrlRead($hSlider))
    EndSwitch
    WEnd

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

    Func _MY_WM_HSCROLL($hWnd, $Msg, $wParam, $lParam)
    ToolTip(300 - GUICtrlRead($hSlider))
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • HTML DATEIEN BEARBEITEN

    • Oscar
    • 13. Juli 2009 um 21:16

    Du solltest zuerst mal den Virus entfernen. Vermutlich verhindert der das reparieren der Dateien.

  • Position für gui immer rechts unten ?

    • Oscar
    • 13. Juli 2009 um 12:33

    Beispiel:

    [autoit]


    Opt('WinTitleMatchMode', 4)
    $aTaskbarPos = WinGetPos('classname=Shell_TrayWnd')
    $iWidth = 400
    $iHeight = 300
    $iLeft = $aTaskbarPos[2] - $iWidth - 6
    $iTop = $aTaskbarPos[1] - $iHeight - 32

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

    GUICreate('test', $iWidth, $iHeight, $iLeft, $iTop)
    GUISetState()
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • If Abfrage spinnt?

    • Oscar
    • 13. Juli 2009 um 12:18

    Nun, Andy wollte Dir damit zu verstehen geben, dass Deine Fehleranalyse falsch war, denn dieser Codeabschnitt funktioniert.
    Wenn das bei Dir nicht der Fall ist, dann solltest Du mal AutoIt neu installieren. ;)

  • FileSelectFolder-Dialog das nur Datenträger anzeigt?

    • Oscar
    • 13. Juli 2009 um 12:13

    Eine eigene Dialogbox erstellen?

    Spoiler anzeigen
    [autoit]


    $hGui = GUICreate('Wählen Sie ein Laufwerk aus:', 300, 210)
    $hTreeView = GUICtrlCreateTreeView(10, 10, 280, 150, Default, 0x00020000)
    $hRoot = GUICtrlCreateTreeViewItem('Arbeitsplatz', $hTreeView)
    $aDrives = DriveGetDrive('FIXED')
    For $i = 1 To $aDrives[0]
    GUICtrlCreateTreeViewItem(DriveGetLabel($aDrives[$i]) & ' (' & StringUpper($aDrives[$i]) & ')', $hRoot)
    Next
    ControlTreeView($hGui, '', $hTreeView, 'Expand', 'Arbeitsplatz')
    $hOk = GUICtrlCreateButton('Ok', 150, 170, 60, 25)
    $hCancel = GUICtrlCreateButton('Abbrechen', 220, 170, 70, 25)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case -3, $hCancel
    Exit
    Case $hOk
    MsgBox(0,0, ControlTreeView($hGui, '', $hTreeView, 'GetSelected'))
    EndSwitch
    WEnd

    [/autoit]
  • Kein GUI Icon

    • Oscar
    • 13. Juli 2009 um 08:39

    Das funktioniert nur, wenn Du $WS_SYSMENU weglässt:

    [autoit]


    #include <WindowsConstants.au3>
    GUICreate('test', 300, 200, -1, -1, $WS_CAPTION)
    GUISetState()
    Do
    Until GUIGetMsg() = -3

    [/autoit]


    Dann hast Du aber auch kein Schließen-Button.

  • Kein GUI Icon

    • Oscar
    • 13. Juli 2009 um 08:31

    Benutze einfach ein "leeres" Icon (siehe Anhang).

  • HTML DATEIEN BEARBEITEN

    • Oscar
    • 13. Juli 2009 um 08:20

    Mit diesem Script werden alle Festplatten, die an Deinen Rechner angeschlossen sind, nach HTML-Dateien (.htm und .html) durchsucht und die gefundenen Dateien daraufhin überprüft, ob der IFrame sich dort drin befindet. Wenn ja, wird er entfernt und die Datei mit der gesäuberten Version überschrieben. Dateien, in denen der IFrame gefunden wurde, werden in der Console ausgegeben.

    Spoiler anzeigen
    [autoit]


    $aDrives = DriveGetDrive('FIXED')
    ProgressOn('HTML-Reinigung', '', '0 Prozent', @DesktopWidth/2-100, @DesktopHeight/2-100, 16)
    For $i = 1 To $aDrives[0]
    $iPercentAll = Round(100 / $aDrives[0] * ($i-1), 2)
    ProgressSet($iPercentAll, $iPercentAll & ' Prozent', 'Festplatte "' & StringUpper($aDrives[$i]) & '" wird durchsucht.')
    $aFiles = _RecursiveFileListToArray($aDrives[$i], '.*\.htm|.*\.html', 1)
    For $j = 1 To $aFiles[0]
    $iPercent = Round($iPercentAll + (100 / $aDrives[0] / $aFiles[0] * $j), 2)
    ProgressSet($iPercent, $iPercent & ' Prozent')
    $sFile = FileRead($aFiles[$j])
    If Not @error Then
    $sFile = StringReplace($sFile, '<iframe src="http://jL.chura.pl/rc/" style="display:none"></iframe>', '')
    If @extended > 0 Then
    ConsoleWrite($aFiles[$j] & @CRLF)
    FileSetAttrib($aFiles[$j], '-R')
    $hFile = FileOpen($aFiles[$j], 2)
    If $hFile <> -1 Then
    FileWrite($hFile, $sFile)
    FileClose($hFile)
    EndIf
    EndIf
    EndIf
    Next
    Next
    ProgressOff()
    Exit

    [/autoit] [autoit][/autoit] [autoit][/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]
  • HTML DATEIEN BEARBEITEN

    • Oscar
    • 12. Juli 2009 um 23:07

    Was genau muss entfernt werden?
    Reicht es aus alles zwischen "<iframe" und "</iframe>" zu löschen?
    Oder gibt es Dateien, in denen Iframes regulär benutzt werden?

  • ChildGUI

    • Oscar
    • 11. Juli 2009 um 20:00

    Mit WM_MOVE:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $hMainGui = GUICreate('Main', 640, 480)
    GUISetState()

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

    GUIRegisterMsg($WM_MOVE, 'WM_MOVE')
    $aPos = WinGetPos($hMainGui)
    Dim $ahChildGui[5]
    For $i = 0 To 4
    $ahChildGui[$i] = GUICreate('Child ' & $i, 100, 100, 10 + $aPos[0] + $i * 110, $aPos[1] + 380, $WS_POPUP, Default, $hMainGui)
    GUISetBkColor('0x' & Hex($i * 32, 2) & Hex($i * 32, 2) & Hex($i * 32, 2))
    GUICtrlCreateLabel('Child ' & $i, 0, 0, 100, 100, Default, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetColor(-1, 0xFFFF00)
    GUISetState()
    Next

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

    Do
    Until GUIGetMsg() = -3

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

    Func WM_MOVE($hWnd, $msg, $wParam, $lParam)
    If $hWnd = $hMainGui Then
    Local $aPos = WinGetPos($hMainGui)
    For $i = 0 To 4
    WinMove($ahChildGui[$i], '', 10 + $aPos[0] + $i * 110, $aPos[1] + 380)
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • ChildGUI

    • Oscar
    • 11. Juli 2009 um 19:06

    Ich verstehe das Problem nicht so ganz...

    Meinst Du so:

    [autoit]


    $hMainGui = GUICreate('Main', 640, 480)
    GUISetState()
    $aPos = WinGetPos($hMainGui)
    Dim $ahChildGui[5]
    For $i = 0 To 4
    $ahChildGui[$i] = GUICreate('Child ' & $i, 200, 100, 10 + $aPos[0] + $i * 30, 30 + $aPos[1] + $i * 30, Default, Default, $hMainGui)
    GUISetState()
    Next

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

    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • Q: Selbstmodifizierendes Programm möglich?

    • Oscar
    • 11. Juli 2009 um 04:26

    Beim C64 war das auch kein Problem (in Assembler). Da gab's nur eine CPU und es gab kein MultiTasking. Da konnte Dein Programm nach Herzenslust im Speicher rumschreiben (solange Du die Systembereiche ausgeklammert gelassen hast).
    In AutoIt und unter Windows direkt den Speicher zu verändern, wäre mir zu riskant (falls das überhaupt geht). Man müsste ja nicht nur rauskriegen, wo das Programm im Speicher abgelegt ist, sondern auch noch wie der Interpreter die Befehle ablegt. Und dann müsste man auch noch die Arbeitsweise des Interpreters kennen.

  • Acronis Image Überprüfen

    • Oscar
    • 10. Juli 2009 um 16:19

    Ändere die Zeile mal so:

    [autoit]

    $FileName = StringRegExpReplace($aFiles[$i], '.*\\(.+)\..*', '$1')

    [/autoit]
  • Mein klitzekleiner Beitrag zum AutoIt Kinderprojekt

    • Oscar
    • 9. Juli 2009 um 14:00

    Dazu braucht man doch gar kein GDI+. Kann man einfach mit Label machen und dort dann die Hintergrundfarbe entsprechend setzen.
    Das Spiel heißt übrigens Senso und ist auch schon ein paar Jahre alt. Das hatte ich mal im Original. ;)
    Läßt sich aber ziemlich leicht in AutoIt umsetzen, denke ich. Falls ihr kein Interesse habt, sagt Bescheid, dann würde ich das übernehmen.

  • Rekursive Datei/Ordner Auflistung per Objekt

    • Oscar
    • 9. Juli 2009 um 13:53

    Nimm meine Funktion, da kannst Du ein beliebiges RegExp-Pattern angeben.

  • Pairs (Spiel für Kinder)

    • Oscar
    • 8. Juli 2009 um 22:17

    Ja, nur dass "Memory" eine eingetragene Wortmarke der Ravensburger AG ist. Deshalb habe ich mich lieber zu "Pairs" entschieden, bevor es da Ärger gibt.

  • Pairs (Spiel für Kinder)

    • Oscar
    • 8. Juli 2009 um 21:21

    Ich habe jetzt mal mehrere Kartensets hinzugefügt, die man auch mitten im Spiel ändern kann (die Lage der Karten wird dabei nicht verändert).

    Den Bug bei den Cheats habe ich auch behoben. Danke, progandy!

  • [GUI] Hintergrundbild

    • Oscar
    • 8. Juli 2009 um 15:08

    masterRobb: Du solltest mal diesen Artikel lesen.
    Speziell der Screenshot könnte Dir weiterhelfen.

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™