Wo liegt dein Problem? Klappt doch tadellos.
[autoit]Opt("WinTitleMatchMode", 2)
ShellExecute('wordpad.exe')
WinWaitActive('WordPad')
Send('Das ist ein Test')
Wo liegt dein Problem? Klappt doch tadellos.
[autoit]Opt("WinTitleMatchMode", 2)
ShellExecute('wordpad.exe')
WinWaitActive('WordPad')
Send('Das ist ein Test')
Könntest du das vllt. ncoh einmal erläutern was du meinst Bugfix, also das mit den Labeln, das habe icih noch nciht verstanden.
OK, hier mal ein Muster, wie sowas geht. Du definierst nur einmal die GUI und wechselst nur die Bezeichnungen aus. In Abhängigkeit der gewählten "Version", die du lädst, wertest du die Einträge aus den Inputs, Buttons etc. aus.
#include<GUIConstantsEx.au3>
#include<WindowsConstants.au3>
Global $arLabel[3][3] = [ _
['Sub1 - Label1','Sub1 - Label2','OK'], _
['Sub2 - Label1','Sub2 - Label2','Bla'], _
['Sub3 - Label1','Sub3 - Label2','Aha']]
Global $indxSub
$GUI = GUICreate('Master')
$b1 = GUICtrlCreateButton('Sub1', 10,10,50,20)
$b2 = GUICtrlCreateButton('Sub2', 10,40,50,20)
$b3 = GUICtrlCreateButton('Sub3', 10,70,50,20)
$Sub = GUICreate('Sub')
$l1 = GUICtrlCreateLabel('', 20, 33, 120, 17)
$l2 = GUICtrlCreateLabel('', 20, 63, 120, 17)
$i1 = GUICtrlCreateInput('', 130, 30, 80)
$i2 = GUICtrlCreateInput('', 130, 60, 80)
$b4 = GUICtrlCreateButton('', 20, 100, 40)
GUISetState(@SW_SHOW, $GUI)
[/autoit] [autoit][/autoit] [autoit]While True
$msg = GUIGetMsg(1)
Switch $msg[1]
Case $GUI
Switch $msg[0]
Case $GUI_EVENT_CLOSE
Exit
Case $b1
$indxSub = 0
GUICtrlSetData($l1, $arLabel[0][0])
GUICtrlSetData($l2, $arLabel[0][1])
GUICtrlSetData($b4, $arLabel[0][2])
GUISetState(@SW_SHOW, $Sub)
Case $b2
$indxSub = 1
GUICtrlSetData($l1, $arLabel[1][0])
GUICtrlSetData($l2, $arLabel[1][1])
GUICtrlSetData($b4, $arLabel[1][2])
GUISetState(@SW_SHOW, $Sub)
Case $b3
$indxSub = 2
GUICtrlSetData($l1, $arLabel[2][0])
GUICtrlSetData($l2, $arLabel[2][1])
GUICtrlSetData($b4, $arLabel[2][2])
GUISetState(@SW_SHOW, $Sub)
EndSwitch
Case $Sub
Switch $msg[0]
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE, $Sub)
Case $b4
Switch $indxSub
Case 0
MsgBox(0, '', 'Button auf Sub-1 geklickt')
Case 1
MsgBox(0, '', 'Button auf Sub-2 geklickt')
Case 2
MsgBox(0, '', 'Button auf Sub-3 geklickt')
EndSwitch
EndSwitch
EndSwitch
WEnd
s. Post von peethebee - da steht es groß und schön und farbig.
öhm ja ok also ich weiß des ned aber ich mein es geht hier ( sry) ja ned ums makieren an sich sondern wie ich des mit strg+c gespeicherte "beispieltext" wieder in der msg box ausgebe.
OMG - hättest du das im ersten Post geschrieben, hätten wir uns alle viel Mühe sparen können. ![]()
Ungetestet, aber sollte klappen:
Local $arFile[7] = ['.zip','.z01','.z02','.z03','.z04','.z05','.z06']
Local $remote = 'http://wbi.eluhost.de/Partitionirer/Partitonirer'
Local $local = 'C:\DOWNLOAD\partitonirer'
Local $step = Int(100/7), $percent = 0
DirCreate($local)
Sleep(500)
ProgressOn("Fortschritt", "geladen", "0 Prozent")
For $i = 0 To UBound($arFile) -1
$percent += $step
ProgressSet($percent, $percent, ' Prozent')
InetGet($remote & $arFile[$i], $local & $arFile[$i])
Next
ProgressSet(100 , "Fertig", "Komplett")
sleep(1500)
ProgressOff()
Run("C:\WINDOWS\explorer.exe /root, C:\DOWNLOAD")
Läßt sich der Text denn nicht, zB. anhand des Sourcecodes der Seite auffinden? Mausklickerei ist die denkbar schlechteste Lösung.
Die InetGet gehören in eine Schleife und vor oder nach jedem Schleifendurchlauf setzt du den neuen Progresswert.
Warum erstellst du die GUI nicht am Anfang und weist je nach Auswahl unterschiedliche Label zu? Würde den Code um etwa 70 % kürzen und auch wesentlich übersichtlicher werden. Außerdem ist es kein sehr guter Stil Includes und GUI-Erstellung innerhalb von Schleifen auszuführen.
immer an der exakt gleichen stelle
Du liest (oder verstehst) nicht, was ich frage. Was soll ich bitte, mit dieser Antwort anfangen?
Ich geb dir jetzt als Codezeile: MouseMove("immer an der exakt gleichen stelle") ??
Also letzter Versuch: WAS macht diese Position eindeutig? Muß doch durch irgendwas charakterisiert sein. (Feldname, Position zwischen fixen Textbestandteilen etc.)
dass mir des script an einer passage "beispieltext" des per mouseclick makiert
Und woher soll das Skript wissen, was markiert werden soll? Wodurch ist dieser Text zu identifizieren?
Mal am Rande: Ich weiß, dass es in einigen Sprachen als Standard gilt, nach jeder Codezeile eine Leerzeile einzufügen. Den Sinn dieses Tuns konnte ich noch nie erkennen. Damit zerstörst du jede Übersicht in einem Skript. Und wenn es dann sogar, wie hier, 2 Leerzeilen sind... :wacko:
Wo steht Was? Aufgrund welcher Eigenschaften ist das Was zu identifizieren und soll kopiert werden?
Fasse erst mal deine Gedanken in klare Strukturen und dann in uns verständliche Sätze. ![]()
Hiermit kannst du alle Ziffern(Zahlen) aus dem String auslesen:
[autoit]#include<array.au3>
$str = 'jdh..(/6'
$ret = StringRegExp($str, '\d+', 3)
If IsArray($ret) Then _ArrayDisplay($ret)
Oder mit Replace:
[autoit]$str = 'jdh..(/6'
$ret = StringRegExpReplace($str, '\D+', '')
ConsoleWrite($ret & @crlf)
haben alle "50" den gleichen Namen ?
Wer lesen kann ist klar im Vorteil ![]()
GUICtrlCreateRadio("Radio " & $i+1.....
Ist eigentlich egal, geht beides (nicht syntaxgerecht - nur sinngemäß):
If _DateAdd(GebTag_JahrAktuell, -TageErinnerung) = Aktuelles Datum Then ERINNERUNG
oder
If _DateDiff(GebTag_JahrAktuell, AktuellesDatum) = TageErinnerung Then ERINNERUNG
Also die bisherigen Lösungsvorschläge gehen eigentlich alle am Ziel vorbei. ![]()
Schau dir die Funktion _DateAdd() an. Das ist alles was du brauchst.
Vom Ablauf wäre relativ einfach:
- 2D-Array [n][0] = Geburtsdatum; [n][1] = Tage vorher erinnern
- beim Programmstart in Schleife prüfen ob TT.MM. Geburtstag & aktuelles Jahr - Erinnerungstage = Heute
Es geht auch mit AutoIt, wenn auch nicht mit einem direkten Wildcardbefehl für Ordner:
[autoit]#include<file.au3>
;~ DirCreate(@ScriptDir & '\test_1')
;~ DirCreate(@ScriptDir & '\test_2')
;~ DirCreate(@ScriptDir & '\test_3')
$BaseFolder = @ScriptDir & '\'
$DelFolder = 'test_'
$arFolder = _FileListToArray($BaseFolder, '*', 2)
If @error Then Exit MsgBox(0, '', 'Keine Ordner in diesem Verzeichnis!')
For $i = 1 To UBound($arFolder) -1
If StringLeft($arFolder[$i], StringLen($DelFolder)) = $DelFolder Then DirRemove($BaseFolder & $arFolder[$i])
Next
Zu deinem Problem wgen FSO:
ZitatFileSystemObject kann nur Ordner auf dem lokalen Computer erstellen.
Um Ordner auf einem Remotecomputer zu erstellen kann das Objekt WshController verwendet werden
(oder lokal erstellen und mit WMI verschieben)
Das gilt analog für alle Operationen, da nicht per Remotezugriff das FileSystemObject referenziert werden kann.
Verstehe nicht ganz das Problem. Windows unterscheidet doch nicht in Groß-/Kleinschreibung.
Wenn die Quelldatei "muster.txt" heißt, kannst du sie ebensogut mit "MuStEr.tXt" ansprechen. ![]()
Wo greifst du auf FTP zu? Das ist alles HTTP.
Es ist ein gravierender Unterschied zwischen
- FileTransferProtocol
- HyperTextTransferProtocol
![]()
Eine Bitte: Schau dir mal in der Hilfe zu den Funktionen die Bsp. an. Daraus kannst du schon eine Menge lernen. Wenn dann Fragen sind, poste deine Versuche und wir helfen weiter.