- davon merkt man ja selber nix ![]()
Beiträge von BugFix
-
-
So, ich stelle heute abend alles rein. Sooo viel wars dann doch nicht. Schaut nachher selber

-
*grad-total-auf-dem-Schlauch-steh*
Was willst du denn da übersetzen? Das einzige nicht original deutsche Wort ist "posten". -
Sollte vllt. vor jedem Post sichtbar sein
UserTools.txtEdit: So, nun könnt ihr es auch sehen

-
Versuchs mal mit Zeitdifferenz, statt Sleep:
[autoit]$start = TimerInit()
[/autoit]
While 1
If TimerDiff($start) >= 5000 Then
Send('2')
$start = TimerInit()
EndIf
Sleep(100)
; anderer Code in der Schleife
WEnd -
zu 1.
Such mal nach der Excel-UDF. Da kannst du direkt von AutoIt Exceldokumente erstellen, bearbeiten...zu 2.
Ist deine Tabelle ein ListView?
Da gibt es extra einen Style, der die abwechselnde Hintergrundfarbe ermöglicht. ( GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE) )Hier mal ein Bsp.:
[autoit]#include <GuiConstants.au3>
[/autoit][autoit][/autoit][autoit]
#include <GuiListView.au3>GuiCreate("Sample List View", 140, 100, -1, -1, $WS_OVERLAPPEDWINDOW)
[/autoit][autoit][/autoit][autoit]
$listView = GuiCtrlCreateListView("|Sample|ListView", 10, 10, 120, 80, -1, $LVS_EX_HEADERDRAGDROP)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE) ; legt fest, dass Hintergrundfarbe wechselt
GUICtrlSetBkColor(-1, 0xE6E6FA) ; Hintergrundfarbe 1
GuiCtrlCreateListViewItem("|A|One", $listView)
GUICtrlSetBkColor(-1, 0xcccccc) ; Hintergrundfarbe 2
GuiCtrlCreateListViewItem("|B|Two", $listView)
GUICtrlSetBkColor(-1, 0xcccccc) ; Hintergrundfarbe 2
GuiCtrlCreateListViewItem("|C|Three", $listView)
GUICtrlSetBkColor(-1, 0xcccccc) ; Hintergrundfarbe 2GuiSetState()
[/autoit]
_GUICtrlListView_SetColumnWidth($listView, 1, $LVSCW_AUTOSIZE_USEHEADER)
While GuiGetMsg() <> $GUI_EVENT_CLOSE
WEnd -
Du kannst dir den Klassennamen ausgeben lassen, vielleicht reicht dir das schon.
[autoit]
Hier mal ein Beispiel, Ausgabe in die Console:#Include <WinAPI.au3>
[/autoit][autoit][/autoit][autoit]
#include <guiconstants.au3>
$gui = GUICreate('')
Global $aCtrl[6] = [ _
GUICtrlCreateButton('', 20, 20), _
GUICtrlCreateCheckbox('', 20, 50), _
GUICtrlCreateRadio('', 40, 50), _
GUICtrlCreateEdit('', 100, 20), _
GUICtrlCreateInput('', 20, 80), _
GUICtrlCreateCombo('', 20, 110)]
GUISetState()Do
[/autoit]
For $i = 0 To UBound($aCtrl) -1
ConsoleWrite(_WinAPI_GetClassName($aCtrl[$i]) & @CRLF)
Next
Exit
Until 1
Ausgabe:
Das geht grundsätzlich auch mit WinGetClassList(), da hast du aber den Nachteil, dass keine Zuordnung zu den Controls besteht. Deshalb ist Einzelprüfung wohl günstiger. -
Alina
Hi, es ist mit der Word.au3 allein nicht zu lösen. Wie TrueMue schon richtig erwähnt hat, muß man hierzu auf das Word-Objektmodell zurückgreifen.
Es gibt darin aber eine Vielzahl von Objekten und Methoden, deren Anwendung teilweise ziemlich tricky ist.
Für deinen Fall benötigt man Select, Find, Replace und Execute. Wenn mich heut noch die Arbeitswut packen sollte, versuche ich mal das in eine UDF zu bringen.
-
Dann nimm doch ein 2D-Array und speichere in D1 das Handle und in D2 einen Verweis auf den Typ.
-
Hi,
[autoit]
mit folgendem Code läßt sich die aktuelle SciTE-Version im Web auslesen.
Vielleicht kann dies ja mit im Portal integriert werden.#include <ie.au3>
[/autoit]
$url = 'http://www.autoitscript.com/autoit3/scite/'
$oIE = _IECreate($url, 0, 0)
$oFrame = _IEFrameGetCollection($oIE, 0)
$txt = _IEPropertyGet($oFrame, "innertext")
$aVer = StringRegExp($txt, '(?<=with SciTE )\d\.\d{2}', 1)
$aDate = StringRegExp($txt, '(?<=History \().+(?=\))', 1)
MsgBox(0, 'SciTE Version', 'Aktuelle Version: ' & $aVer[0] & @LF & 'vom: ' & $aDate[0])
_IEQuit($oIE) -
Hi,
[autoit]
so kannst du Text aus dem Dokument lesen (hier Ausgabe in Console):#include <word.au3>
[/autoit]
$path = 'C:\Dokumente und Einstellungen\...\Test.doc'
$oWordApp = _WordCreate ("", 0, 0)
$oDoc = _WordDocOpen ($oWordApp, $path)
ConsoleWrite($oDoc.Range.Text & @CRLF)
_WordDocClose ($oDoc)
_WordQuit ($oWordApp) -
So gehts:
[autoit]#include <array.au3>
[/autoit]
Global $string = _FileListToArray("G:\12 2007\", "*.txt")
Global $aTmp[1]
For $i = 1 To UBound($string) -1
_ArrayAdd($aTmp, StringTrimLeft(StringTrimRight($string[$i], 4), 2))
Next
$indx = _ArrayMaxIndex($aTmp, 1, 1)
MsgBox(0, 'Höchster Wert', $string[$indx]) -
Die Funktion alleine nützt dir nichts. Dazu brauchst du auch die 'WinAPI.au3'.
-
Schau dir mal: ControlSend() und ControlCommand() an.
-
Ich hab mal aus der Hilfedatei ein kleines Bsp. gebastelt mit Rechtsklick zum Ändern des Sub-Items.
Für alle, die es mal brauchen können.
Die Zeile: $hWnd = ControlGetHandle('','',$hListView) läßt sich nicht umgehen. Für die neuen Funktionen wird fast immer das Handle benötigt.Spoiler anzeigen
[autoit]#include <GuiConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiListView.au3>GUICreate("(Internal) ListView Get Column", 400, 300)
[/autoit]
$hListView = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
_GUICtrlListView_SetExtendedListViewStyle ($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
_GUICtrlListView_SetColumnWidth($hListView, 0, 100)
GUISetState()
GUICtrlCreateListViewItem("index 0|data1|more1", $hListView)
GUICtrlCreateListViewItem("index 1|data2|more2", $hListView)
GUICtrlCreateListViewItem("index 2|data3|more3", $hListView)
GUICtrlCreateListViewItem("index 3|data4|more4", $hListView)
GUICtrlCreateListViewItem("index 4|data5|more5", $hListView)
Do
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_SECONDARYUP
$hWnd = ControlGetHandle('','',$hListView)
$indx = _GUICtrlListView_SubItemHitTest($hWnd)
$newText = InputBox('Wert ändern', 'Zeile: ' & $indx[0]+1 & '/Spalte: ' & $indx[1]+1, _GUICtrlListView_GetItemText($hWnd, $indx[0], $indx[1]))
If $newText <> '' Then _GUICtrlListView_SetItemText($hWnd, $indx[0], $newText, $indx[1])
EndSwitch
Until $msg = $GUI_EVENT_CLOSE
GUIDelete() -
[autoit]
_GUICtrlListView_SubItemHitTest($ListView)
[/autoit]
Kannste alt wer'n, wie 'ne Kuh - lernste immer noch dazu
Bei der Vielzahl von Func's findet man sich kaum noch durch :wacko: -
Achso, du möchtest ein Subitem per Klick auswählen und bearbeiten - das ist meines Wissens nicht möglich.
[autoit]
Du kannst dir nur den Index (oder auch Text) eines gesamten Items (inkl. Subitems) zurückgeben lassen. z.B. Auslösen mit re. Maustaste.
Für das Subitem selber mußt du den Spaltenindex selber angeben.$msg = GUIGetMsg()
[/autoit]
Case $msg = $GUI_EVENT_SECONDARYUP
$indxRow = _GUICtrlListView_GetSelectedIndices($hListView, True)
$SpaltenText = _GUICtrlListView_GetItemText($hListView, $indxRow[1], 'SpaltenIndex') ; 'SpaltenIndex' mußt du vorgeben -
Hi,
[autoit]
versuchs mal so:#include <File.au3>
[/autoit][autoit][/autoit][autoit]
Global $Quelle = 'Dateipfad'
Global $aFile, $n = 0, $FileOut = 'Datei1_', $sfx = '.txt'_FileReadToArray($Quelle, $aFile)
[/autoit]
For $i = 1 To UBound($aFile) -1
If Mod($i, 100) = 1 Then $n += 1
FileWriteLine($FileOut & $n & $sfx, $aFile[$i])
Next -
Oder so:
[autoit]$fh = FileOpen($Datei, 0)
[/autoit]
$str = FileRead($fh)
$str = StringRegExpReplace($str, '(?<=<entry name="W">)\d{1,4}(?=</entry>)', 1920)
FileClose($fh)
FileDelete($Datei)
$fh = FileOpen($Datei, 1)
FileWrite($fh, $str)
FileClose($fh) -
Büddeschön
