Ich vermute, du solltest die Zeilen der "Cache" Datei zählen lassen, nicht die Zeilen der .plist
[autoit]
$Zeilen = _FileCountLines( "Cache")
Ein ubound($array) wäre evtl. noch eleganter.
Ich vermute, du solltest die Zeilen der "Cache" Datei zählen lassen, nicht die Zeilen der .plist
[autoit]
$Zeilen = _FileCountLines( "Cache")
Ein ubound($array) wäre evtl. noch eleganter.
_FFSetValueById ist in der Datei FFEx.au3.
Muss man nicht unbedingt haben, aber funktioniert bei mir.
Der Kram steckt in einem iFrame, da kann Javascript nix für.
Probier mal das hier... ist nicht ausgereift, aber könnte gehen.
_FFFrameEnter(0)
_FFSetValueById("id","Max Mustermann")
_FFFrameEnter(0)
_FFSetValueById("password","My_Password")
Kannst du mal im Detail erklärem was du schützen willst ?
Du weisst sicher was Kopierschutz bedeutet, oder ?
Was hat das nun mit SQL zu tun ?
Ein guter Kopierschutz wäre ein Dongle wie z.B. Marx Cryptobox.
Der ist (ziemlich) unknackbar und natürlich total unbrauchbar für AutoIt.
Eine mögliche Lösung wäre Infinite_Screen.
Irgendwie seltsam, die Sache mit dem scrollbaren Desktop war früher bei vielen Grafiktreibern dabei, auch bei Linux etc.
Heutzutage ist das recht selten geworden.
Trotzdem, das einzig Wahre wäre in neues Schlepptop mit mehr Auflösung (Full HD).
Ich hab mal kurz in den Sourcecode von Infinite_Screen geschaut und ich vermute,
dass da einfach nur Fenster rumgeschoben werden.
Was heisst eigentlich "Vollbild" ? Wenns nicht gerade DirectX oder OpenGL ist,
sollte man das Fenster doch trotzdem verschieben können, oder ?
Probier mal, ob die "WinMove" Funktion da greift.
Wenn du was besseres als AutoIt haben willst, ohne dafür Geld auszugeben,
dann schau mal was Microsoft anbietet.
Mir wäre PureBASIC zu exotisch. VisualBASIC ist nicht übel, wenns schon BASIC sein muss.
So?
_FTP_ProgressDownload($Conn, @ProgramFilesDir & "\MBDevelopment\GameSync\update.zip", "/Update/1.2.zip", $FunctionToCall = "_UpdateProgress")
Vergleiche mal:
_FTP_ProgressDownload($Conn, "xulrunner.zip", "/pub/xulrunner/releases/14.0b6/runtimes/xulrunner-14.0b6.en-US.win32.zip", "_UpdateProgress")
Der letzte Parameter für _FTP_ProgressDownload fehlt.
EDIT: hehe, Progandy war schneller.. schlauer Bursche, das.
Wen ich folgendes Program laufen lasse, komme ich fehlerfrei über 500.000 Items(dauert ewig):
[autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
GUICreate("Dings", 220, 250, 100, 200, -1)
GUISetState(@SW_SHOW)
$LV = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 200, 150)
$hLV = GUICtrlGetHandle($LV)
$items=0
While True
_GUICtrlListView_DeleteAllItems($LV)
For $i = 1 To 32768
GUICtrlCreateListViewItem('Bla|Blub', $LV)
$items+=1
Next
ConsoleWrite("items: " & $items & @CRLF)
WEnd
Sorry, war in der englischen Hilfe. Mit deinem Beispiel gibts zwar ne GUI, aber die Progressbar ist weiterhin eine eigene GUI?!
Dann hast du noch irgendwo einen "ProgressOn", der nicht gebraucht wird.
--
In der Hilfe stehen 2 Beispiele, wie du oben genannt hast - keinst mit einer GUI Progressbar...
Tja, da ist nur die Callbackfunktion...
Komplettes Beispiel:
#include <FTPEx.au3>
#include <Debug.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
GUICreate("Dings", 220, 250, 100, 200, -1)
GUISetState(@SW_SHOW)
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
Local $server = 'ftp.mozilla.org'
Local $username = ''
Local $pass = ''
Local $Open = _FTP_Open('MyFTP Control')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0)
_FTP_ProgressDownload($Conn, "xulrunner.zip", "/pub/xulrunner/releases/14.0b6/runtimes/xulrunner-14.0b6.en-US.win32.zip", "_UpdateProgress")
Local $Ftpc = _FTP_Close($Open)
Func _UpdateProgress($percent)
GUICtrlSetData($progressbar1, $percent)
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Return -1 ; _FTP_DownloadProgress Aborts with -1, so you can exit you app afterwards
EndSwitch
Return 1 ; Otherwise contine Download
EndFunc ;==>_UpdateProgress
Ich hab was einfacheres gefunden, hier ein Beispiel:
[autoit]
#include <FTPEx.au3>
#include <Debug.au3>
Local $server = 'ftp.mozilla.org'
Local $username = ''
Local $pass = ''
Local $Open = _FTP_Open('MyFTP Control')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0)
ProgressOn ( "title", "maintext")
_FTP_ProgressDownload($Conn, "xulrunner.zip", "/pub/xulrunner/releases/14.0b6/runtimes/xulrunner-14.0b6.en-US.win32.zip","_UpdateProgress")
Local $Ftpc = _FTP_Close($Open)
Func _UpdateProgress($percent)
ProgressSet($percent, int($percent) & "%")
return 1
EndFunc ;==>_UpdateProgress
eine andere Callbackfunktion, die ein normales Progressbar GUI Element steuert, steht in der Hilfe zu _FTP_ProgressDownload.
Was bei meinem Beispiel nervt, ist dass man es nicht so einfach abbrechen kann.
Schau mal in der Hilfe nach "_FTP_SetStatusCallback".
Lass das hier mal 1-2Minuten laufen, dann ist der Listview plötzlich leer.
[autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
GUICreate("Dings", 220, 250, 100, 200, -1)
GUISetState(@SW_SHOW)
$LV = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 200, 150)
$hLV = GUICtrlGetHandle($LV)
While True
_GUICtrlListView_DeleteAllItems($hLV)
For $i = 0 To 1234
GUICtrlCreateListViewItem('Bla|Blub', $LV)
Next
WEnd
Übrigens, bei mir war "$guiListView" so benannt, weil die Variable zur GUI gehört -
ich muss dummerweise viele Globals verwenden und kriege so etwas mehr Ordnung rein.
Zitat
Setze das seit Jahren in produktiver Umgebung ein, ohne jedes Problem.
Tja... das mag gutgehen, wenn du nicht extrem viele Elemente aus der ListView löscht. Zeitbombe.
Link : _GUICtrlListView_DeleteAllItems
Falsch ist folgendes:
Zitat
Bemerkungen
Falls diese Funktion mit einem Listview, welches durch die Funktion GUICtrlCreateListView erstellt wurde, angewendet wird, muss der Befehl _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView)) heißen, da sonst eine Fehlermeldung erscheint. ($ListView ist die Variable wie das Listview heißt)
Richtig stehts in den Kommentaren vom Beispiel:
Zitat
; Die Items wurden mit Hilfe der Grundfunktionen erstellt. Die Control-ID ist an die Funktion zu übergeben
; Die Items wurden mit Hilfe von UDF Funktionen erstellt. Das Handle ist an das Control zu übergeben
Ich hab das in meinem Programm falsch gemacht - wenn man mit _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($guiListView)) den Inhalt löscht und dann mit GUICtrlCreateListViewItem("wasauchimmer",$guiListView) wieder Items hinzufügt... und das viele male wiederholt, ist der Listview irgendwann leer und es lässt sich nichts mehr hinzufügen. GUICtrlCreateListViewItem gibt dann null zurück.
Ich hab ein paar kleine Änderungen gemacht, jetzt läufts bei mir.
Der Einfachheit halber hänge ich mal den ganzen Ordner an.
Du meinst sowas ?http://www.autoitscript.com/forum/topic/13…-of-2011-12-21/
(Ich habs nicht ausprobiert)
20 MB text durchsuchen muss ja ewig dauern... vielleicht gehts besser, wenn du die "rlinkurls" als SQLite Datenbank machst.
Die Suche in einer Datenbank geht doch naturgemäß ziemlich flott, dafür sind die dinger schliesslich gemacht.
Ich habe mir angewöhnt, immer Opt("MustDeclareVars", 1) zu nutzen.
Wenn ich dann mal einen Variablennamen vergeige, kriege ich eine Fehlermeldung.
Nebenbei kriege ich mehr Übersicht, welche Variable wozu dient.
Bei solchen Neuigkeiten - ausgerechnet heute - guckt man sofort auf die offizielle AutoIt-Website.
Leider wird dort die neue Version noch geheimgehalten.