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

  • unedliche öffnung von fenster!!!!!!

    • Oscar
    • 30. Dezember 2008 um 18:04

    progandy, Du hast vollkommen recht. Es reicht wirklich!
    Sowas unterstützen wir hier nicht (siehe Forenregeln). Thread closed!

  • progress und guictrlsetlimit

    • Oscar
    • 30. Dezember 2008 um 14:41

    Eine Progressbar geht immer von 0...100%.
    Willst Du einen anderen Wert benutzen, musst Du entsprechend umrechnen.

  • Scripte parallel bzw. gleichzeitig starten

    • Oscar
    • 30. Dezember 2008 um 13:50

    Du solltest die Scripte vorher kompilieren und dann die Exe'n starten.

  • _FreeDriveLetter (Ausgabe aller freien Laufwerksbuchstaben)

    • Oscar
    • 30. Dezember 2008 um 13:24

    Diese Funktion gibt alle freien Laufwerksbuchstaben als String oder als Array zurück (siehe Beispiele).

    Spoiler anzeigen
    [autoit]


    #include<Array.au3>
    #include<ComboConstants.au3>
    #include<GUIConstantsEx.au3>

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

    ; Beispiel 1 Anfang
    $sFreeDriveLetter = _FreeDriveLetter(0) ; Parameter = 0
    $sFirstDrive = StringLeft($sFreeDriveLetter, 2)
    $sLastDrive = StringRight($sFreeDriveLetter, 2)
    GUICreate('Ausgabe als Combobox', 250, 70)
    GUICtrlCreateCombo('', 10, 20, 58, 25, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
    GUICtrlSetFont(-1, 16, 400, 0, 'Arial')
    GUICtrlSetData(-1, $sFreeDriveLetter, $sLastDrive)
    GUISetState()
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    ; Beispiel 1 Ende

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

    ; Beispiel 2 Anfang
    $aFreeDriveLetter = _FreeDriveLetter(1) ; Parameter = 1
    _ArrayDisplay($aFreeDriveLetter, '[0] = Anzahl der Elemente')
    ; Beispiel 2 Ende

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

    ; Beispiel 3 Anfang
    $aFreeDriveLetter = _FreeDriveLetter(2) ; Parameter = 2
    _ArrayDisplay($aFreeDriveLetter, 'Nullbasiertes Array')
    ; Beispiel 3 Ende

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

    ;===============================================================================
    ; Function Name..: _FreeDriveLetter([$iMode])
    ; Description....: Gibt alle freien Laufwerksbuchstaben zurück (String oder Array)
    ; Parameter......: $iMode = 0 Rückgabe als String (gut als Auswahl für Comboboxen)
    ; 1 Rückgabe als Array (Array[0] = Anzahl der Array-Elemente)
    ; 2 Rückgabe als Array (Nullbasiert)
    ; Return Value(s): String bzw. Array mit den freien Laufwerksbuchstaben
    ; Author.........: Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _FreeDriveLetter($iMode = 0)
    If $iMode < 0 Or $iMode > 2 Or Not IsNumber($iMode) Then $iMode = 0
    Local $sFreeDriveLetter = ''
    For $i = 67 To 90
    If Not DriveGetType(Chr($i) & ':') Then $sFreeDriveLetter &= Chr($i) & ':|'
    Next
    If $iMode Then
    Return StringSplit(StringTrimRight($sFreeDriveLetter, 1), '|', $iMode)
    Else
    Return StringTrimRight($sFreeDriveLetter, 1)
    EndIf
    EndFunc ;==>_FreeDriveLetter

    [/autoit]
  • Autostart mit Registry

    • Oscar
    • 30. Dezember 2008 um 12:50

    Meckert Vista eigentlich auch, wenn man eine Verknüpfung im AutoStart-Ordner anlegt?

    [autoit]

    FileCreateShortcut(@ScriptFullPath, @StartupDir & '\' & @ScriptName)

    [/autoit]
  • Picture-Save

    • Oscar
    • 29. Dezember 2008 um 18:38

    Ok, sehe ich ja auch so!
    Die Alternative wäre, wir lassen Skripte ohne Quelltext nicht mehr zu (evtl. Threads werden gelöscht).

    So, wie es jetzt ist, finde ich es aber Mist, weil man sich ein ZIP-Archiv downloadet und dann feststellt, dass der Quelltext fehlt.

  • Picture-Save

    • Oscar
    • 29. Dezember 2008 um 18:05

    Entschuldige, dass ich Deinen Thread dafür benutzt habe, aber genau darum geht es ja. Es gibt mittlerweile mehrere, die nur die Exe posten.
    Deshalb würde ich ja vorschlagen, dass wir das so handhaben, dass hier nur Programme (mit Quellcode/Skript) gepostet werden und in "Filebase" posten dann die, die Angst um ihren Quelltext haben.

  • Picture-Save

    • Oscar
    • 29. Dezember 2008 um 15:03

    Und? Wo ist das Skript?

    Ja, ich weiß, jetzt kommt wieder: "Angst vor Code-Klauer, etc."
    Dieses Unterforum heißt aber nunmal "Skripte".

    @All: Könnten wir uns vielleicht darauf einigen, dass hier nur Skripte gepostet werden und ausführbare Programme nach "Filebase"?

  • Zähler als For-Schleife in Art von Sägezahn?

    • Oscar
    • 28. Dezember 2008 um 23:40

    Nur um die Begriffe ("Sägezahn" und "Dreieck") zu verdeutlichen:

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>

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

    ; Beispiel Sägezahn
    GUICreate('Test', 610, 200)
    $hGraphic = GUICtrlCreateGraphic(0, 0, 610, 200)
    GUICtrlSetBkColor(-1, 0xffffff)
    GUICtrlSetColor(-1, 0x000000)
    $x = 0
    While $x < 600
    For $y = 0 To 100
    GUICtrlSetGraphic($hGraphic, $GUI_GR_PIXEL, $x, $y)
    $x += 1
    Next
    GUICtrlSetGraphic($hGraphic, $GUI_GR_MOVE, $x, $y)
    GUICtrlSetGraphic($hGraphic, $GUI_GR_LINE, $x, 0)
    WEnd
    GUISetState()
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

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

    ; Beispiel Dreieck
    GUICreate('Test', 610, 200)
    $hGraphic = GUICtrlCreateGraphic(0, 0, 610, 200)
    GUICtrlSetBkColor(-1, 0xffffff)
    GUICtrlSetColor(-1, 0x000000)
    $x = 0
    While $x < 600
    For $y = 0 To 100
    GUICtrlSetGraphic($hGraphic, $GUI_GR_PIXEL, $x, $y)
    $x += 1
    Next
    For $y = 100 To 0 Step -1
    GUICtrlSetGraphic($hGraphic, $GUI_GR_PIXEL, $x, $y)
    $x += 1
    Next
    GUICtrlSetGraphic($hGraphic, $GUI_GR_MOVE, $x, $y)
    GUICtrlSetGraphic($hGraphic, $GUI_GR_LINE, $x, 0)
    WEnd
    GUISetState()
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

    [/autoit]
  • Zähler als For-Schleife in Art von Sägezahn?

    • Oscar
    • 28. Dezember 2008 um 23:11

    Das entspräche dann aber nicht einem "Sägezahn", sondern einem "Dreieck".

  • _StringDisplay (beliebigen Text in einem Editfeld anzeigen lassen)

    • Oscar
    • 28. Dezember 2008 um 22:41

    Ich habe das jetzt so geändert, dass, wenn kein Text markiert wurde, ein Leerstring zurückgegeben wird.

  • _StringDisplay (beliebigen Text in einem Editfeld anzeigen lassen)

    • Oscar
    • 28. Dezember 2008 um 21:36

    Raupi hatte die Idee zu einer Funktion, mit der man beliebigen Text in einem Editfeld anzeigen lassen kann, ähnlich _ArrayDisplay für Arrays.
    Und weil mich das auch interessierte, habe ich mal eine solche Funktion geschrieben:

    Spoiler anzeigen
    [autoit]


    ; Beispiel Anfang
    #include<WindowsConstants.au3>

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

    $sText = 'Mieterbund rechnet mit hohen Nachzahlungen' & @CRLF & 'Mietern drohen nach Angaben des Deutschen Mieterbundes im Frühjahr 2009 saftige Heizkosten-Nachzahlungen von durchschnittlich 30 Prozent. "2008 war das Jahr der explodierenden Energiepreise", sagte Mieterbund-Präsident Franz-Georg Rips der Nachrichtenagentur dpa. Heizöl sei im Durchschnitt um etwa 30 Prozent und Gas etwa um 20 Prozent teurer geworden als im Vorjahr. "Die Zeche werden die Mieter 2009 zahlen müssen, wenn sie ihre Heizkostenabrechnung erhalten."' & @CRLF & @CRLF & '40 Prozent des Einkommens für Miete' & @CRLF & 'Rips zufolge sei für eine 80 Quadratmeter große Wohnung mit insgesamt 1200 bis 1300 Euro an Heizkosten zu rechnen. Auch insgesamt steige der Anteil am Nettoeinkommen, den Mieter für ihre Wohnung aufbringen müssen, weil die Kaltmieten wie auch andere Nebenkosten, etwa kommunale Gebühren, Müll und Abwasser, anzögen. Im Jahr 2009 würde der Anteil dieser Wohnkosten am Nettoeinkommen auf durchschnittlich 40 Prozent klettern, schätzt Rips. "Für einkommensschwächere Haushalte bedeutet die Preisentwicklung, dass sie mehr als 50 Prozent ihres Nettoeinkommens für Wohnung und Haushaltsenergie zahlen müssen."' & @CRLF & @CRLF & 'Mangel an Mietwohnungen?' & @CRLF & 'Zugleich warnt der Mieterbund vor einem zunehmenden Mangel an Mietwohnungen. Auch im vergangenen Jahr wurde wieder weniger neuer Wohnraum gebaut. Im neuen Jahr würden nach Schätzungen des Mieterbunds weniger als 200.000 Wohnungen fertig gestellt. "Davon entfallen ganze 50.000 auf Mietwohnungen, der Rest ist Eigentum", sagte Rips.' & @CRLF

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

    _StringDisplay($sText, 'Beispiel mit hor. Scrollbalken') ; mit hor. Scrollbalken (kein Zeilenumbruch am Editrand)

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

    _StringDisplay($sText, 'Beispiel mit Zeilenumbruch am Editrand', $WS_VSCROLL) ; Zeilenumbruch am Editrand

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

    $String = _StringDisplay($sText, 'Markierten Text ausgeben', $WS_VSCROLL) ; Markierten Text ausgeben
    MsgBox(0, 'Beispiel', $String)
    ; Beispiel Ende

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

    ;===============================================================================
    ; Function Name..: _StringDisplay($sText[, $sTitle] [, $sEditStyle] [, $iWidth] [, $iHeight] [, $iLeft] [, $iTop])
    ; Description....: Zeigt einen beliebigen Text in einem Editfeld an
    ; Parameter(s)...: $sText = der anzuzeigende Text
    ; $sTitle = Fenstertitel (optional)
    ; $sEditStyle = Edit-Style (optional)
    ; $iWidth = Breite des Fensters (optional, Standard = 400 Pixel)
    ; $iHeight = Höhe des Fensters (optional, Standard = 300 Pixel)
    ; $iLeft = Abstand von links (optional, Standard = zentriert)
    ; $iTop = Abstand von oben (optional, Standard = zentriert)
    ; Return Value...: Der markierte Text wird als String zurückgegeben
    ; Author.........: Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _StringDisplay($sText, $sTitle = 'StringDisplay', $sEditStyle = -1, $iWidth = 400, $iHeight = 300, $iLeft = -1, $iTop = -1)
    If Not IsDeclared('BS_DEFPUSHBUTTON') Then Local Const $BS_DEFPUSHBUTTON = 0x00000001
    If Not IsDeclared('GUI_EVENT_CLOSE') Then Local Const $GUI_EVENT_CLOSE = 0xFFFFFFFD
    If Not IsDeclared('WS_EX_COMPOSITED') Then Local Const $WS_EX_COMPOSITED = 0x02000000
    If Not IsDeclared('WS_MAXIMIZEBOX') Then Local Const $WS_MAXIMIZEBOX = 0x00010000
    If Not IsDeclared('WS_MINIMIZEBOX') Then Local Const $WS_MINIMIZEBOX = 0x00020000
    If Not IsDeclared('WS_SIZEBOX') Then Local Const $WS_SIZEBOX = 0x00040000
    Local $bEventMode = Opt('GUIOnEventMode', 0)
    Local $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    Local $hEdit = GUICtrlCreateEdit($sText, 5, 5, $iWidth - 10, $iHeight - 65, $sEditStyle)
    GUICtrlSetResizing(-1, 2 + 4 + 32 + 64)
    Local $hClose = GUICtrlCreateButton('Close', $iWidth / 2 - 25, $iHeight - 55, 50, 22, $BS_DEFPUSHBUTTON)
    GUICtrlSetResizing(-1, 64 + 256 + 512)
    ControlFocus($hGui, '', $hClose)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case $hClose, $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    ControlFocus($hGui, '', $hEdit)
    Local $sSelectedText = ControlCommand($hGui, '', $hEdit, 'GetSelected', '')
    If @error Then $sSelectedText = ''
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $bEventMode)
    Return $sSelectedText
    EndFunc ;==>_StringDisplay

    [/autoit]

    - Die Funktion benötigt keine Includes.
    - Die Fenstergröße/-position kann man als Parameter mit angeben. Das Fenster kann man nach dem öffnen aber auch größer ziehen.
    - Außerdem kann man den Edit-Style übergeben, sodass unterschiedliche Scrolleigenschaften möglich sind (siehe Beispiele).
    - Markieren/Kopieren/Einfügen usw. ist bei einem Edit ja sowieso per Kontextmenü möglich. Die Funktion gibt aber zusätzlich noch den markierten Text als String zurück.


    Vielleicht kann die Funktion ja noch jemand gebrauchen. :)

    Edit: Wenn nichts markiert wurde, wird jetzt ein Leerstring zurückgegeben.

  • Dumme frage

    • Oscar
    • 28. Dezember 2008 um 17:33

    Im (geschlossenen) Bot-Coding-Bereich wirst Du genügend Beispiele finden. Sieh Dich dort einfach um.
    Eine weitere Unterstützung für Bots wird es hier nicht geben (siehe Forenregeln).

  • Gibts sowas wie _ArrayDisplay auch für String´s ?

    • Oscar
    • 28. Dezember 2008 um 17:13

    Raupi, ich habe Dir mal schnell eine solche Funktion geschrieben:

    [autoit]


    $sText = ''
    For $i = 0 To 5000
    $sText &= Chr(Random(65, 90, 1))
    Next
    _StringDisplay($sText)

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

    Func _StringDisplay($sText, $sTitle = 'String-Display')
    Local $OnEventMode = Opt('GUIOnEventMode', 0)
    Local $hGui = GUICreate($sTitle, 400, 330)
    GUICtrlCreateEdit($sText, 5, 5, 390, 290, 0x00200000) ; 0x00200000 = $WS_VSCROLL
    Local $hClose = GUICtrlCreateButton('Close', 170, 300, 50, 22)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case 0xFFFFFFFD, $hClose ; 0xFFFFFFFD = $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $OnEventMode)
    EndFunc

    [/autoit]

    Edit: Kommentare hinzugefügt!

  • filexists

    • Oscar
    • 28. Dezember 2008 um 16:47

    Ja, beim Drag&Drop wird ein @CRLF angehängt.
    Den kannst Du so entfernen:

    [autoit]

    $bla = StringReplace(GUICtrlRead($edit), @CRLF, '')

    [/autoit]


    oder, falls da mehrere Dateien drinstehen sollen, den Inhalt mit StringSplit(GUICtrlRead($edit), @CRLF, 1) in ein Array umwandeln.

  • filexists

    • Oscar
    • 28. Dezember 2008 um 16:24

    Und was soll da nicht funktionieren?

  • Alles nach ";" löschen in einer Datei

    • Oscar
    • 28. Dezember 2008 um 16:15
    [autoit]


    $text = 'MsgBox(0, 0, "blabla") ; das ist der Kommentar' & @CRLF & 'Exit ; Noch ein Kommentar' & @CRLF
    $text = StringRegExpReplace($text, ';.*', '')

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

    MsgBox(0, 0, $text)

    [/autoit]

    Den Rest schaffst Du ja sicher allein. :)

  • Wie geh ich an AutoIt ran?

    • Oscar
    • 28. Dezember 2008 um 14:44

    Wie jetzt? Organize Includes wurde dort mit aufgenommen?

    Klar, ich bin dafür, aber IMHO muss man das noch extra installieren.

  • Virtuelles (partielles) Laufwerk Erstellen/Löschen

    • Oscar
    • 28. Dezember 2008 um 14:25

    Klasse! So funktioniert es jetzt einwandfrei. :thumbup:

  • Combobox mit Scrollbar

    • Oscar
    • 28. Dezember 2008 um 14:10

    Schau Dir mal "_GUICtrlComboBox_SetMinVisible" 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™