Ich hatte für die Arbeit mit Listbox mal ein Bsp. mit Code-Ausgabe erstellt.
Vielleicht nützt dir das was.
FAQ
Beiträge von BugFix
-
-
Zitat
_ArrayInsert($FileList, $j + $i, $tmpdir & $tmp[$j])
_ArrayInsert($FileList, $j + $i, $tmpdir & ^ ERROR
[autoit]
Bedeutet, dass $tmp kein Array ist (klar, wenn leerer Ordner). Da du es als Array ansprichst entsteht der Fehler.
Also solche Situationen abfangen, indem du vorher prüfst ob die Variable ein Array ist:If IsArray($tmp) Then
[/autoit]
_ArrayInsert($FileList, $j + $i, $tmpdir & $tmp[$j])
Else
; Fehler setzen oder MsgBox
EndIf -
Hmm, habe weder 'ne eMail bekommen, noch nervende Popups (allerdings nutze ich auch Adblock
).
Seltsame Dinge, die da geschehen... -
Hi,
hab noch 'ne Ergänzung.
[autoit]
So wird das Datum geprüft und ggf. angepaßt falls die Zielzeit kleiner als die aktuelle Zeit ist.#include <Date.au3>
[/autoit][autoit][/autoit][autoit]$ShutDownTime = '18:10'
[/autoit][autoit][/autoit][autoit]
If $ShutDownTime < @HOUR & ':' & @MIN Then
$now = @YEAR & '/' & @MON & '/' & @MDAY+1
Else
$now = @YEAR & '/' & @MON & '/' & @MDAY
EndIf$min = _DateDiff('n', _NowCalc(), $now & ' ' & $ShutDownTime )
[/autoit][autoit][/autoit][autoit]
$h = Floor($min/60)
$m = $min - $h*60
$h_m = StringFormat("%02u" & ":" & "%02u", $h, $m)MsgBox(0,'',"verbleibende Zeit: " & $h_m )
[/autoit] -
Puh, harter Brocken.
Ich werf einfach mal rein, was mir einfällt. In Kombination mit den Ideen der andren wirds ja vielleicht was.

1. muscle / body / schwarzenegger
2. stairway (to heaven ?)
3. lone tree
4. wild boy
5. thirst / to quench / to have one over the eight
Viel Spaß noch in Schweden. Bring doch ein paar hübsche Mädels mit.

-
[autoit]
#include <Date.au3>
[/autoit][autoit][/autoit][autoit]$ShutDownTime = '17:30' ; per InputBox
[/autoit]
$min = _DateDiff('n', _NowCalc(), _NowCalcDate( ) & ' ' & $ShutDownTime )
$h = Floor($min/60)
$m = $min - $h*60
$h_m = $h & ':' & $m
MsgBox(0,'',"verbleibende Zeit: " & $h_m) -
Schreiben in eine bestimmte Zeile? Ganz einfach, hier aus der Hilfe:
[autoit]#include <File.au3>
[/autoit]
;Example: Write to line 3 of c:\test.txt REPLACING line 3
_FileWriteToLine("c:\test.txt", 3, "my replacement for line 3", 1)
;Example: Write to line 3 of c:\test.txt NOT REPLACING line 3
_FileWriteToLine("c:\test.txt", 3, "my insertion", 0) -
Sag mal, liegt das am Wetter?
Ist mir auch in einigen anderen Threads aufgefallen, dass die Emotionen ziemlich schnell hochkochen.
Es geht doch überhaupt nicht um Schuldzuweisungen.
Du hast alles zu FTP durchgelesen, und die in den Bsp. verwendeten Funktionen sind dir rückhaltlos klar?
-
Hi, Danke Bernd das wars.
-
@WoW-Unit
Also so wie ich das bis jetzt mitbekommen habe, hast du kaum Programmierkenntnisse.
Daher meine Frage: Warum willst du ein FTP-Upload Programm erstellen, wenn du schon nach wenigen Schritten bemerkst, dass dir dafür z.Zt. noch die Voraussetzungen fehlen?Ich kann durchaus die Forenmitglieder verstehen, die dann leicht gereizt reagieren.
Stelle die Bsp. aus der Hilfe nach, erweitere diese. Kombiniere mit anderen Funktionen. Dabei lernst du die Basics.
Abfragen, Schleifen - bevor du das einsetzt und dann an der Umsetzung scheiterst, sollte dir klar sein, wie es funktioniert.
Ich wollte dich hiermit nicht entmutigen, aber dir sollte klar sein, dass die Grundlagen der Programmierung nicht in ein paar Tagen zu erlernen sind.
Bleib dran und gib nicht auf, versuche zuerst immer selbst einen Ansatz zu finden. Kommst du dann nicht mehr weiter, helfen wir gern. -
Das kann man schlecht verallgemeinern, kommt immer sehr auf den Einzelfall an, also vom Inhalt / Aufbau der Site, die du abfragen möchtest.
Sind die gesuchten Daten tatsächlich direkt im Quellcode, holst du dir diesen einfach mit:
[autoit]#include <INet.au3>
[/autoit]
$source = _INetGetSource ( $s_URL )Dann mußt du sehen, wie sich der gesuchte Text sicher herausfiltern läßt. ( _StringBetween() / StringRegExp() )
Falls es so nicht machbar ist verwende die <IE.au3>. Hier kann man jetzt aber gar keine allgemeinen Tipps geben. Jetzt muß man genau schauen, wo der gesuchte Inhalt zu finden ist.
-
Zitat
Wie kann man das Ganze jetzt automatisieren, also wenn Scite gestartet wird prüfen ob eine Internetverbindung besteht und dann das Update starten...
[autoit]$var = Ping("www.autoit.de")
[/autoit]
If @error = 0 Then
MsgBox(0, '', 'Verbindung besteht')
Else
MsgBox(0, '', 'keine Verbindung')
Endif -
Hi,
um meine Array Funktionen zu komplettieren:_Array2DInsert( )
- analog zu _ArrayInsert( ) aber für 1D-Arrays und 2D-Arrays
- fügt ein neues Arrayelement an benannter Position ein
- Anzahl der Elemente in der 2-ten Dimension nicht limitiert (nur durch Autoit selbst)Edit:
Hab es jetzt noch so erweitert, dass es mit 1D und 2D -Arrays arbeitetSpoiler anzeigen
[autoit];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[/autoit]
;
; Function _Array2DInsert(ByRef $avArray, $iElement [, $sValue=''])
;
; Description Insert an Array element on a given position
; Works with any occurences in 2nd Dimension
; Works also with 1D-Array
;
; Parameter $avArray Given Array
; $iElement 0-based Array Index, to insert new Element
; optional $sValue Value of new Element, parts must be seperate with '|'
;
; Return Succes the given Array with new Element
; Failure 0 and set @error
; @error = 1 given array is not array
; @error = 2 given parts of Element too less/much
; @error = 3 $iElement larger then Ubound
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _Array2DInsert(ByRef $avArray, $iElement, $sValue='')
If ( Not IsArray($avArray) ) Then
SetError(1)
Return 0
EndIf
Local $UBound2nd = UBound($avArray,2)
If @error = 2 Then
Local $arTMP[UBound($avArray)+1]
If $iElement > UBound($avArray) Then
SetError(3)
Return 0
EndIf
For $i = 0 To UBound($arTMP)-1
If $i < $iElement Then
$arTMP[$i] = $avArray[$i]
ElseIf $i = $iElement Then
If $i < UBound($avArray) Then
$arTMP[$i] = $sValue
$arTMP[$i+1] = $avArray[$i]
Else
$arTMP[$i] = $sValue
EndIf
ElseIf ($i > $iElement) And ($i < UBound($avArray))Then
$arTMP[$i+1] = $avArray[$i]
EndIf
Next
Else
Local $arTMP[UBound($avArray)+1][$UBound2nd], $arValue
If $sValue = '' Then
For $i = 0 To $UBound2nd-2
$sValue &= '|'
Next
EndIf
$arValue = StringSplit($sValue, '|')
If $arValue[0] <> $UBound2nd Then
SetError(2)
Return 0
EndIf
If $iElement > UBound($avArray) Then
SetError(3)
Return 0
EndIf
For $i = 0 To UBound($arTMP)-1
If $i < $iElement Then
For $k = 0 To $UBound2nd-1
$arTMP[$i][$k] = $avArray[$i][$k]
Next
ElseIf $i = $iElement Then
If $i < UBound($avArray) Then
For $k = 0 To $UBound2nd-1
$arTMP[$i][$k] = $arValue[$k+1]
$arTMP[$i+1][$k] = $avArray[$i][$k]
Next
Else
For $k = 0 To $UBound2nd-1
$arTMP[$i][$k] = $arValue[$k+1]
Next
EndIf
ElseIf ($i > $iElement) And ($i < UBound($avArray))Then
For $k = 0 To $UBound2nd-1
$arTMP[$i+1][$k] = $avArray[$i][$k]
Next
EndIf
Next
EndIf
$avArray = $arTMP
EndFunc ;==>_Array2DInsert -

Hatte ich vergessen zu erwähnen, diese Variante habe ich auch schon durch. Mit demselben Ergebnis. -
Hi,
habe eine ganz simple Listbox. Da die Einträge wechseln und unterschiedlich lang sind wollte ich den Style "$WS_HSCROLL" verwenden. Leider tut sich dabei nix.
Definiere ich den Style in der Ctrl-Erstellung passiert gar nix.
Erstelle ich erst das Ctrl und setze dann den Style, habe ich zwar eine Scrollbar, die scrollt aber nicht.
Und GUICtrlRecvMsg() arbeitet ohne Fehlermeldung aber auch ohne Wirkung.Mehr fällt mir eigentlich nicht ein um den Style zu aktivieren.
Habt ihr noch Ideen oder findet hierbei 'nen Fehler ?Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt("GUIOnEventMode", 1)Dim $txt1 = 'blablablablablablablablablablablabla'
[/autoit] [autoit][/autoit] [autoit]
Dim $txt2 = 'laberlaberlaberlaberlaberlaberlaber'$GUI = GUICreate("", 200, 200, -1, -1)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "CloseSettings");~ $list = GUICtrlCreateList('', 20, 20, 160, 160, $WS_HSCROLL) ; Scrollbar erscheint nicht
[/autoit] [autoit][/autoit] [autoit]$list = GUICtrlCreateList('', 20, 20, 160, 160)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetStyle($list, $WS_HSCROLL) ; Scrollbar erscheint aber scrollen geht nicht
;~ $scroll = GUICtrlRecvMsg($list, $WS_HSCROLL,1,0) ; bringt keinen Fehler aber ohne jede WirkungGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData(-1, $txt1 & '|' & $txt2)While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc CloseSettings()
[/autoit]
Exit
EndFunc -
Danke Bernd für deine Bemühungen. Leider ohne Erfolg.
Genau das gleiche Bild wie vorher.
Vielleicht ist das noch von Interesse:
Das Hilfe-Fenster erscheint und die linke Hälfte (Inhaltsverzeichnis) enthält Daten. Die rechte Hälft ist leer.Nur ich versteh echt nicht den Zusammenhang:
Rufe ich die Autoit Hilfe per Doppelklick auf, verschwindet sie wieder.
Bin ich in Scite und rufe über F1 die Hilfe funktioniert es. Es wird doch aber in beiden Fällen die 'hh.exe' gestartet.

-
Aufruf der "hh.exe" per Doppelklick im Explorer und per Befehlszeile:
Hh.exe was run without a valid command line
Aber das ist ja OK, der Parameter für die Datei wurde ja nicht übergeben.Aufruf "hh.exe /?":
Das Fenster öffnet kurz und schließt dann wieder.
Edit: Hab jetzt mal die "hh.exe" ersetzt, keine Änderung.
-
Hier der Weg über Objekte. Da du nicht geschrieben hast, was du mit dem Dokument tun willst, habe ich in dem Bsp.
- Objekt erstellen
- DOC öffnen
- Schriftgröße ändern
- am Ende des Dokuments Text anfügen (hier Datum + Uhrzeit)
- DOC speichern
- DOC drucken (z.Zt. auskommentiert)
- Objekt schließenSpoiler anzeigen
[autoit]#Include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]
Dim $DOC_path = 'D:\Test.doc'Const $END_OF_STORY = 6
[/autoit] [autoit][/autoit] [autoit]
Const $MOVE_SELECTION = 0$objWord = ObjCreate("Word.Application")
[/autoit] [autoit][/autoit] [autoit]
$objWord.Visible = True ; oder False, wenn alles im Hintergrund laufen soll; Worddokument öffnen
[/autoit] [autoit][/autoit] [autoit]
$objDoc = $objWord.Documents.Open($DOC_path)$objSelection = $objWord.Selection
[/autoit] [autoit][/autoit] [autoit]
; zum Ende des Dokuments bewegen
$objSelection.EndKey($END_OF_STORY, $MOVE_SELECTION)
; 2 Zeilenumbrüche setzen
$objSelection.TypeParagraph()
$objSelection.TypeParagraph()
; Schriftgröße auf 14
$objSelection.Font.Size = "14"
; Datum + Uhrzeit schreiben
$objSelection.TypeText( "" & _Now() )
; 2 Zeilenumbrüche setzen
$objSelection.TypeParagraph()
$objSelection.TypeParagraph()
; Schriftgröße auf 10
$objSelection.Font.Size = "10"; Dokument speichern
[/autoit] [autoit][/autoit] [autoit]
$objWord.ActiveDocument.SaveAs($DOC_path); Dokument drucken
[/autoit] [autoit][/autoit] [autoit]
;~ $objDoc.PrintOut(); Word beenden
[/autoit]
$objWord.QuitFalls ernsthafter Bedarf besteht, würde ich mich breitschlagen lassen, und analog zur Excel.UDF eine Word.UDF erstellen. (aber braucht man die wirklich ?
) -
Hi Leute,
ich habe plötzlich folgendes Problem:
Wenn ich eine Hilfedatei (*.chm) per KOmmandozeilenaufruf oder im Explorer per Doppelklick öffne, wird die Hilfedatei kurz geöffnet und schließt sich dann wieder von selbst.
Im Kontext mit einer Anwendung wird die Hilfe normal geöffnet und bleibt offen (z. B. AutoIt-Hilfe aus Scite heraus aufrufen).Hat jemand da 'ne Idee ?

Edit:
Habs zusätzlich noch hier
http://board.protecus.de/t29864.htm
eingestellt -
[autoit]
Send("{CTRLDOWN}{TAB}{CTRLUP}")
[/autoit]Es geht auch
[autoit]Send("^{TAB})
[/autoit]Ich verwende aber lieber die erste Variante, da diese eineindeutig zur Kombination führt.