Ich verstehe nicht, wozu eine kpl. Datei in die Zwischenablage kopiert werden soll.
Es reicht doch der Pfad, alles andere kann dann doch in weiteren Schritten folgen.
Beiträge von BugFix
-
-
Hi,
ich war mal so frei, deine Syntaxstruktur anzupassen.
Sonst kann man sich da schlecht reinlesen.
Spoiler anzeigen
[autoit]Func _FileChangeDir($lFilePath)
[/autoit]
Local $er = FileChangeDir($lFilePath)
If $er = 0 Then; Pfad konnte nicht vom Standard FileChangeDir geändert werden
Local $i, $lVolLetter
Local $lPos = StringInStr($lFilePath, ":")
If $lPos > 1 Then
Local $lVolName = StringLeft($lFilePath, $lPos)
Local $fPath = StringMid($lFilePath, $lPos+1)
Local $var = DriveGetDrive("all")
If NOT @error Then
For $i = 1 to $var[0]
If (DriveGetLabel($var[$i]) & ":") == $lVolName Then
$lVolLetter = $var[$i]
Exitloop
EndIf
Next
If $lVolLetter <> "" Then
$er = FileChangeDir($lVolLetter & $fPath)
If $er = 1 Then
Return("1"); Arbeitsverzeichnis erfolgreich geändert
Else
Return("0"); Fehler im Dateipfad
EndIf
Else
Return("0"); kein Volume mit diesem Namen gefunden
EndIf
EndIf
Else
Return("0"); ungültiger Volumename
EndIf
Else
Return("1"); Arbeitsverzeichnis erfolgreich geändert (Standard FileChangeDir)
EndIf
EndFunc -
Die Syntax ist korrekt, sollte gehen.
Laß dir doch mal vor der Schleife $var ausgeben:
_ArrayDisplay($var)
Dann kannst du sicher sein, dass auch Daten übergeben werden. -
Auch von mir:
til lykke med fødselsdagen

-
Ich hatte für die Arbeit mit Listbox mal ein Bsp. mit Code-Ausgabe erstellt.
Vielleicht nützt dir das was.
FAQ -
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.
