Tipp:
Nimm nicht die Standard-Input Box, sondern mach eine kleine GUI mit Inputfeld. Dort kannst du als Style festlegen: $ES_NUMBER
Das läßt nur numerische Eingaben zu. Wenn dabei der Bereich überschritten/unterschritten wird, blendest du diese GUI einfach wieder zur Korrektur ein.
Beiträge von BugFix
-
-
Wenn dies die einzige Angabe mit 'src="' im Quelltext ist, sollte auch dieses reichen:
[autoit]#include <INet.au3>
[/autoit][autoit][/autoit][autoit]
#include <String.au3>$source = _INetGetSource ( $s_URL )
[/autoit][autoit][/autoit][autoit]
$arFound = _StringBetween($source,'src="', '"', 1)If IsArray($arFound) Then MsgBox(0, 'gefunden', $arFound[0])
[/autoit] -
Hier meine Version für einen CountDown -Timer.
Eingabewert: Sekunden, optional: Minuten, Stunden, Tage
Anzeige: herunterzählend (Standard) oder heraufzählend bis Vorgabezeitraum abgelaufen als ToolTipDarstellung:
05 s
02:05 min
01:02:05 h
03 d, 01:02:05 hEDIT 13.08.2007
Hinzugefügt:
- Optional kann die Ausgabe statt als ToolTip in ein GUI-Ctrl erfolgenSpoiler anzeigen
[autoit];----------------------------------------------------------------------------------------------------------------------
[/autoit]
; Funktion _CountDown($SEC [, $MIN=0 [, $HOUR=0 [, $DAY=0 [, $VISIBLEDOWN=True [, $ALTERNATECTRL='TT']]]]])
;
; Beschreibung zählt vorgegebene Zeitspanne (Tage, Stunden, Minuten, Sekunden) herunter mit Anzeige Tooltip (Standard)
; oder Ausgabe in GUI-Ctrl; wahlweise Anzeige von Restzeit (Standard) oder abgelaufener Zeit
;
; Parameter $SEC: Sekunden
; optional $MIN: Minuten
; optional $HOUR: Stunden
; optional $DAY: Tage
; optional $VISIBLEDOWN: Ansicht (herunterzählen/heraufzählen)
; optional $ALTERNATECTRL: GUI-Ctrl in das die Ausgabe mittels GUICtrlSetData() ausgegeben wird
;
; Erfordernisse #include <Date.au3>
;
; Autor BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
#include <Date.au3>
Func _CountDown($SEC, $MIN=0, $HOUR=0, $DAY=0, $VISIBLEDOWN=True, $ALTERNATECTRL='TT')
$Sekunden = $SEC + $MIN*60 + $HOUR*3600 + $DAY*86400
$end = _DateAdd('s', $Sekunden, _NowCalc())
Local $message
Do
Sleep(100)
$sec = _DateDiff('s', _NowCalc(), $end)
If Not $VISIBLEDOWN Then
$secShow = $Sekunden - $sec
Else
$secShow = $sec
EndIf
Select
Case $secShow < 60
If $ALTERNATECTRL = 'TT' Then
ToolTip(StringFormat('%02u', $secShow) & ' s')
Else
GUICtrlSetData($ALTERNATECTRL, StringFormat('%02u', $secShow) & ' s')
EndIf
Case $secShow < 60*60
$message = StringFormat('%02u', Floor($secShow/60)) & ':' & _
StringFormat('%02u', Mod($secShow,60)) & ' min'
If $ALTERNATECTRL = 'TT' Then
ToolTip($message)
Else
GUICtrlSetData($ALTERNATECTRL, $message)
EndIf
Case $secShow < 60*60*24
$message = StringFormat('%02u', Floor($secShow/3600)) & ':' & _
StringFormat('%02u', Floor(Mod($secShow,3600)/60)) & ':' & _
StringFormat('%02u', Mod(Mod($secShow,3600),60)) & ' h'
If $ALTERNATECTRL = 'TT' Then
ToolTip($message)
Else
GUICtrlSetData($ALTERNATECTRL, $message)
EndIf
Case Else
$message = Floor($secShow/86400) & ' d / ' & _
StringFormat('%02u', Floor(Mod($secShow,86400)/3600)) & ':' & _
StringFormat('%02u', Floor(Mod(Mod($secShow,86400),3600)/60)) & ':' & _
StringFormat('%02u', Mod(Mod(Mod($secShow,86400),3600),60)) & ' h'
If $ALTERNATECTRL = 'TT' Then
ToolTip($message)
Else
GUICtrlSetData($ALTERNATECTRL, $message)
EndIf
EndSelect
Until $sec = 0
EndFunc ;==>_CountDown -
Auch für dich: Bitte keine Doppelposts, editieren.

Wenn du während des laufenden Programms die INI änderst, mußt du schon das Programm erneut starten, damit alle Einträge berücksichtigt werden.
Man könnt sicher eine Konstruktion bauen, die auch das ermöglicht, aber ich halte das nicht für sinnvoll.
-
2 Varianten
für IE:
C:\Dokumente und Einstellungen\USER\Lokale Einstellungen\Verlauf
oder
HKEY_CURRENT_USER / Software / Microsoft / Internet Explorer / TypedURLsFF weiß ich nicht, sicher ähnlich.
-
Die INI nur einmal außerhalb der Schleife lesen:
[autoit]$ini = "ProcessNames.ini"
[/autoit][autoit][/autoit][autoit]
$arProcess = IniReadSection($ini, "Process")
HotKeySet("!e", "ende") ; HotKey Alt+e zum Beenden
While 1
For $i = 1 To $arProcess[0][0]
If ProcessExists($arProcess[$i][1]) Then
ProcessSetPriority($arProcess[$i][1], 0)
EndIf
Next
Sleep(1000) ; Überprüfungs-Intervall, hier 1 Sekunde
WEndFunc ende()
[/autoit]
Exit
EndFunc -
Willst du den Verlauf speichern? - Also die Adressen der besuchten Seiten.
-
Hi,
in der Funktion ist eine Zeile, die ich nur beim tetsweise drinhatte. Kannst du rausschmeißen -macht keinen Sinn: $pos = 7
Hat aber keinen Einfluß weiter.Mach mal ein Debugging für alle Variablen in der Funktion
(in SciTE: Variable markieren, Alt+D ==> Wert wird in Console geschrieben).
Dann kannst du am einfachsten feststellen, wo es hakt.Rein vom Ablauf sehe ich im Moment keinen Fehler.
-
GUIGetMsg(1) ist die erweiterte Form. Du bekommst ein Array zurück:
$array[0] = 0 or Event ID or Control ID
$array[1] = The window handle the event is from
$array[2] = The control handle the event is from (if applicable)
$array[3] = The current X position of the mouse cursor (relative to the GUI window)
$array[4] = The current Y position of the mouse cursor (relative to the GUI window)Für dein Muster:
[autoit]msg1 = GUIGetMsg(1)
[/autoit]
If $msg1[0] = $MenuItem2 Then
MsgBox(0, "Mitteilung", "Funktion leider noch nicht implementiert")
EndIf
[autoit]
Es reicht aber auch:msg1 = GUIGetMsg()
[/autoit]
If $msg1= $MenuItem2 Then
MsgBox(0, "Mitteilung", "Funktion leider noch nicht implementiert")
EndIf -
Zitat
Original von Daniel W.
Weißt du was uns die Antwort erleichtern würde?a) Ein Krusty Burger
b) Ein Krabbenburger
c) Dein Sourcecodec!
Alternativ wäre auch eine Kristallkugel von Nutzen - aber wer hat die schon ?

-
Modal - System bedeutet: Dialog hat ein Icon.
Wenn du eine MsgBox sicher nach vorn bringen willst, mußt du den top-most Flag wählen (also plus 262144).
-
Schönes und vor allem anspruchsvolles Projekt.
Auch meine Empfehlung - einzelne Fenster für die Komponenten. Das bietet mehr Möglichkeiten z.B. das Code-Fenster zu maximieren.
Bin gespannt, wie sich das entwickelt.

-
Du mußt die Abbruchbedingung bzw. Schleifendurchlaufzahl noch festlegen.
Spoiler anzeigen
[autoit]Do
[/autoit] [autoit][/autoit] [autoit]
Sleep($sleep)MouseMove($kor01, $kor02)
[/autoit] [autoit][/autoit] [autoit]
MouseClick("left")
Send($anz01)MouseMove($kor03, $kor04)
[/autoit] [autoit][/autoit] [autoit]
MouseClick("left")
Send($ort01 += 1)
MouseMove($kor05, $kor06)
MouseClick("left")
Send($ort02 += 1)Send("{ENTER}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($sleep)MouseMove($kor07, $kor0cool
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MouseClick("left")Sleep($sleep)
[/autoit] [autoit][/autoit] [autoit]
Until $abbruchbedingung = $wert; ODER
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $AnzahlDurchlauf
[/autoit] [autoit][/autoit] [autoit]
Sleep($sleep)MouseMove($kor01, $kor02)
[/autoit] [autoit][/autoit] [autoit]
MouseClick("left")
Send($anz01)MouseMove($kor03, $kor04)
[/autoit] [autoit][/autoit] [autoit]
MouseClick("left")
Send($ort01 += 1)
MouseMove($kor05, $kor06)
MouseClick("left")
Send($ort02 += 1)Send("{ENTER}")
[/autoit] [autoit][/autoit] [autoit]
Sleep($sleep)MouseMove($kor07, $kor0cool
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MouseClick("left")Sleep($sleep)
[/autoit]
Next -
Zitat
Original von DjPro2k7
Okay hab ich jetzt so gemacht!
Ist zwar umständlich, aber funzt so.Also danke für eure Hilfe
Mag auf den ersten Blick etwas umständlicher aussehen. Du kannst dann aber das Skript viel leichter lesen.
Es hat sich als eine Art Standard eingebürgert, ein Skript etwa in dieser Form aufzubauen:
- Includes
- Optionen
- Konstanten/Variablen -Deklarationen
- GUI Deklarationen
- Hauptprogramm
- FunktionenNatürlich hat da jeder auch seine 'eigene Note'.

Aber das macht es, gerade für den Hilfe gebenden, einfacher dein Skript zu lesen. -
Mit der Suchfunktion findest du es.
-
Es empfiehlt sich alle Controls zuerst zu definieren und dann, wie schon gesagt bei Bedarf auf Enable oder Disable zu setzen.
Sehe nix, was dagegen spricht in deinem Bsp. -
Dort erscheint die Partition als:
- Logischer Datenträger D:
- Dateiformat RAWEDIT:
Hab jetzt mal mit Linux Live-CD gestartet (Kanotix). Ist ja voll der Hammer, braucht zwar 'ne Weile zum Lesen aber dann habe ich vollen Zugriff auf die Partition. Alle Daten da.
Dann werde ich mal eine leere Platte einhängen und per Live-CD alles sichern.Was hält mich eigentlich noch bei Windows? hmm.... achja: AutoIt

EDIT 2:
So, Problem gelöst. Habe mit 'Puppy Linux Live-CD' die Daten der Partition auf ein anderes Laufwerk gespeichert. Mit Linux-Tool 'gparted' die fehlerhafte Partition neu formatiert und dann die Daten zurückgeschrieben.
Einige Dateien waren aber futsch. Zerstörte Cluster genau im Bereich der FileTable. -
Wenn du in eine INI schreibst, verwende IniRead(), IniWrite etc.
Findest du super in der Hilfe. -
Es kann schon vom Ablauf her nicht funktionieren. Verwende deine Musterdaten mal von Hand.
- bei Ort fragt er nach, welches Karlsruhe
- bei Branche wird andere Branche vorgeschlagenIch arbeite selten mit IE.au3, aber wenn ich mich nicht irre, mußt du Submit für das Objekt durchführen, dass die Daten führt
[autoit]_IEFormSubmit ($oLocation)
[/autoit]
_IEFormSubmit ($oGesuchtes)
Bin mir da allerdings nicht sicher. -
Hi,
auf meinem Desktop-PC habe ich Probleme mit einem logischen Laufwerk.
Die Partition erscheint als RAW (Rohformat ohne Dateisystem).
Dadurch geht natürlich die gesamte PC-Performance total in den Keller. Schon das Booten dauert > 5 min, da Windows ja versucht das Laufwerk einzuhängen und die Bindungen herzustellen.Den Bootsektor habe ich bereits über die Reparaturkonsole neu erstellt. Das brachte aber keine Besserung.
Also wird der Fehler im File-System liegen. Mit TestDisk (von der Windows Oberfläche) wollte ich nun einen Check ausführen (und wenn mgl. reparieren) aber leider friert mir dabei der PC ein.
TestDisk von der UBCD startet gar nicht erst, sondern bricht nach der Config ab mit 'unallocatable memory'.PartitionMagic erkennt die Partition und weist sie auch richtig als NTFS-Partition aus, Größenangaben alles korrekt. Beim Abfragen der Eigenschaften treten dann aber Lesefehler auf und PM informiert über verlorene Cluster.
Falls jemand eine Idee hat, wie ich das Filesystem reparieren kann, wäre ich dankbar.