progandy, Du hast vollkommen recht. Es reicht wirklich!
Sowas unterstützen wir hier nicht (siehe Forenregeln). Thread closed!
Beiträge von Oscar
-
-
Eine Progressbar geht immer von 0...100%.
Willst Du einen anderen Wert benutzen, musst Du entsprechend umrechnen. -
Du solltest die Scripte vorher kompilieren und dann die Exe'n starten.
-
Diese Funktion gibt alle freien Laufwerksbuchstaben als String oder als Array zurück (siehe Beispiele).
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include<Array.au3>
#include<ComboConstants.au3>
#include<GUIConstantsEx.au3>; Beispiel 1 Anfang
[/autoit] [autoit][/autoit] [autoit]
$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; Beispiel 2 Anfang
[/autoit] [autoit][/autoit] [autoit]
$aFreeDriveLetter = _FreeDriveLetter(1) ; Parameter = 1
_ArrayDisplay($aFreeDriveLetter, '[0] = Anzahl der Elemente')
; Beispiel 2 Ende; Beispiel 3 Anfang
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$aFreeDriveLetter = _FreeDriveLetter(2) ; Parameter = 2
_ArrayDisplay($aFreeDriveLetter, 'Nullbasiertes Array')
; Beispiel 3 Ende;===============================================================================
[/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 -
Meckert Vista eigentlich auch, wenn man eine Verknüpfung im AutoStart-Ordner anlegt?
[autoit]FileCreateShortcut(@ScriptFullPath, @StartupDir & '\' & @ScriptName)
[/autoit] -
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.
-
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. -
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"?
-
Nur um die Begriffe ("Sägezahn" und "Dreieck") zu verdeutlichen:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include<GUIConstantsEx.au3>; Beispiel Sägezahn
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
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(); Beispiel Dreieck
[/autoit]
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() -
Das entspräche dann aber nicht einem "Sägezahn", sondern einem "Dreieck".
-
Ich habe das jetzt so geändert, dass, wenn kein Text markiert wurde, ein Leerstring zurückgegeben wird.
-
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]
[/autoit] [autoit][/autoit] [autoit]
; Beispiel Anfang
#include<WindowsConstants.au3>$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
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(0, 'Beispiel', $String)
; Beispiel Ende;===============================================================================
[/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- 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.
-
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). -
Raupi, ich habe Dir mal schnell eine solche Funktion geschrieben:
[autoit]
[/autoit][autoit][/autoit][autoit]
$sText = ''
For $i = 0 To 5000
$sText &= Chr(Random(65, 90, 1))
Next
_StringDisplay($sText)Func _StringDisplay($sText, $sTitle = 'String-Display')
[/autoit]
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)
EndFuncEdit: Kommentare hinzugefügt!
-
Ja, beim Drag&Drop wird ein @CRLF angehängt.
[autoit]
Den kannst Du so entfernen:$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. -
Und was soll da nicht funktionieren?
-
[autoit]
[/autoit][autoit][/autoit][autoit]
$text = 'MsgBox(0, 0, "blabla") ; das ist der Kommentar' & @CRLF & 'Exit ; Noch ein Kommentar' & @CRLF
$text = StringRegExpReplace($text, ';.*', '')MsgBox(0, 0, $text)
[/autoit]Den Rest schaffst Du ja sicher allein.

-
Wie jetzt? Organize Includes wurde dort mit aufgenommen?
Klar, ich bin dafür, aber IMHO muss man das noch extra installieren.
-
Klasse! So funktioniert es jetzt einwandfrei.

-
Schau Dir mal "_GUICtrlComboBox_SetMinVisible" an.