Vielen Dank für Deine Hilfe.
Jetzt komme ich schon ein ganzes Stück weiter.
Vielen Dank für Deine Hilfe.
Jetzt komme ich schon ein ganzes Stück weiter.
Jupp dein Script sollte natürlich sicherstellen, dass nicht permanent zwischen den Stati hin und hergewechselt wird. Desweiteren sollte dein Script nur dann die Bild GUI aktualisieren, wenn sich etwas an der Kundennummer geändert hat (ansonsten könntest du ein Flackern des Bildes wahrnehmen). Ich würd außerdem nicht permanent neue Bildcontrols in der GUI erstellen, sondern den Inhalt des Controls ändern. Andernfalls hast du nach einiger Zeit hunderte oder tausende controls die übereinander liegen. Soweit ich weiß gibt es außerdem ein maximales Limit an controls, was dann zum Scriptabsturz oder eben zu keinen neuen controls mehr führt.
EDIT: Es schadet im Übrigen auch nicht vorher zu prüfen ob für die Kundennummer überhaupt ein Bild exisitert. Falls nicht kannst du ja z.B. ein Standardbild einblenden.
wie meinst Du das in meinem Fall, den Inhalt des Controls ändern ?? meinst Du "GUICtrlCreatePic" einmal erstellen und darin dann das Bild ändern ??
Oh da hab ich im moment keinen Plan wie ich das machen soll....
Könntest Du mir bitte dazu ein Beispiel nennen
Besten Dank
ja, das war es schon.
Wenn ich jetzt darüber nachdenke ist das völlig klar, ich hatte mich so auf die While Schleife versteift das ich das andere nicht mehr gesehen haben.
Vielen Dank
Hallo, vielen Dank für Deine Antwort
das mit den eindeutige Identifikationsmerkmale des Fensters war mir schon klar, hatte es in meinem Beispiel nicht extra erwähnt da hier nicht das Problem liegt.
Das Problem liegt in der While Schleife, das GUI mit dem Bild öffnet und schließt sich im Sekundentakt.
Verwende bitte mal folgendes Script, starte Notepad und gehe im Notepad unter Bearbeiten auf Ersetzen.
Sobald das Fenster mit dem Ersetzen-Dialog geöffnet ist, öffnet sich mein GUI und schließt sich im Sekundentakt.
#include <GUIConstantsEx.au3>
$hGui = GUICreate("test", 200, 200,1,1)
While sleep (1000)
Switch WinActive ("Ersetzen", "")
Case True
$sText = ControlGetText("Ersetzen", "", "[CLASS:Static; INSTANCE:1]")
_Show($sText)
Case False
_Hide()
EndSwitch
WEnd
Func _Show($sText)
GUISetState(@SW_SHOW, $hGui)
;~ GUICtrlCreatePic($sText & ".jpg",1,1)
GUICtrlCreateLabel($sText,10,10)
EndFunc
Func _Hide()
GUISetState(@SW_Hide, $hGui)
EndFunc
Alles anzeigen
Hallo zusammen,
ich möchte zu dem Programm "Lexware Faktura+Auftrag" im Bereich Kundenverwaltung zu jedem Kunden ein spezielles Bild anzeigen lassen.
Gedacht habe ich mir das so:
1. Autoit Programm läuft im Hintergrund und wartet bis das Fenster der Kundenverwaltung von Lexware geöffnet wird (WinActive oder WinWaitActive ?)
2. dann liest Autoit mit (ControlGetText) die KundenNummer (eindeutige Nr.) ein und zeigt in einem GUI das Bild welches mit dem Dateinamen der Kundennummer (z.B. 10134.jpg) gespeichert wurde.
3. wird das Fenster der Kundenverwaltung geschlossen, soll das GUI mit dem Bild auch geschlossen werden und wartet wieder bis das Fenster z.B. mit einem anderen Kunden geöffnet wird und zeigt dann dessen Bild.
ich hoffe ich habe das einigermassen verständlich beschrieben.
versucht habe ich bis jetzt felgendes: (aber das mit der WHILE schleife funktioniert nicht richtig....
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
$hGui = GUICreate("test", 200, 200,1,1)
While sleep (1000)
Switch WinActive ("title", "")
Case True
$sText = ControlGetText("title", "", controlID)
_Show()
Case False
_Hide()
EndSwitch
WEnd
Func _Show()
GUISetState(@SW_SHOW, $hGui)
GUICtrlCreatePic($sText & ".jpg",1,1)
EndFunc
Func _Hide()
GUISetState(@SW_Hide, $hGui)
EndFunc
Alles anzeigen
Ich würde mich freuen wenn mir da jemand auf die Sprünge helfen kann..
Besten Dank
@ Krabat
nee, progressbar ist schon gut, das animierte gif hätte als notlösung genommen...
die Progressbar funktioniert jetzt ziemlich gut, hab nur noch ein Problem beim suchen in Outlook,
da bleibt die Progressbar einfach stehen....
For $i = 1 to 1
GUICtrlSetData($progressbar2,(100*$i)/1)
Global $aItems = _OL_ItemFind($oOutlook, "Personal Folders\Kalender", $olAppointment, "", "Categories", "Schichtplan", "Start,EntryID,Subject" , "")
Next
GUICtrlSetData($progressbar1,33)
ich habe keine idee wie ich das lösen könnte...
da bin ich wieder....
klappt schon sehr gut, vielen dank nochmal....
bei click auf Start, dauert es gefühlte 3 bis 5 Sekunden bis die Progressbar losrennt...
ich vermute es liegt an den 3 folgenden aktionen die noch vorher gemacht werden.
Hat da evtl. jemand noch eine kleine Hilfestellung wie ich diese aktionen noch mit in die Progressbar bekomme.
Zeile 42: InetGet("http://www.xxxxxxxxxxx.xx/xxxxx.csv", "C:\Outlook-Temp\xxxxx.csv",1,0)
Zeile 46: _FileReadToArray("C:\Outlook-Temp\xxxxx.csv", $neu_file)
Zeile 64: Global $aItems = _OL_ItemFind($oOutlook, "Personal Folders\Kalender", $olAppointment, "", "Categories", "Schichtplan", "Start,EntryID,Subject" , "")
das habe ich versucht
[autoit]
For $i = 1 to 1
Sleep(10)
GUICtrlSetData($progressbar2,(100*$x)/1)
InetGet("http://www.xxxxxxxxxxx.xx/xxxxx.csv", "C:\Outlook-Temp\xxxxx.csv",1,0)
$x = $x + 1
next
GUICtrlSetData($progressbar1,5)
angepasst:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <String.au3>
#include <Array.au3>
#include <IE.au3>
#include <C:\Outlook-Temp\OutlookEX\OutlookEX.au3>
Global $message
Global $alt_file
Global $neu_file
Global $a_split
Global $a_Var
Global $n_split
Global $n_Var
Global $progressbar1, $progressbar2, $button, $wait, $s, $msg, $m
GUICreate("Meine GUI Progressbar", 220, 100, 100, 200)
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
GUICtrlSetColor(-1, 32250); Funktioniert nicht mit Windows XP Style
$progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20)
$button = GUICtrlCreateButton("Start", 75, 70, 70, 20)
GUISetState()
While 1
$msg = GUIGetMsg()
if $msg = $button Then
test()
Exit
EndIf
if $msg = $GUI_EVENT_CLOSE Then Exit
WEnd
Func test()
GUICtrlSetData($progressbar1,0)
; -----------------------------------------------------------------------------------------------------------
; Schichtplan CSV Datei von Internetseite einlesen bzw. downloaden.
; -----------------------------------------------------------------------------------------------------------
InetGet("http://www.xxxxxxxxxxx.xx/xxxxx.csv", "C:\Outlook-Temp\xxxxx.csv",1,0)
; -----------------------------------------------------------------------------------------------------------
; Schichtplan CSV Datei in ein Array lesen
; -----------------------------------------------------------------------------------------------------------
_FileReadToArray("C:\Outlook-Temp\xxxxx.csv", $neu_file)
_ArrayDelete($neu_file, 0)
Global $n_caldays[UBound($neu_file)]
Global $n_entryid[UBound($neu_file)]
Global $n_subject[UBound($neu_file)]
Global $n_start[UBound($neu_file)]
Global $n_end[UBound($neu_file)]
Global $n_AllDayEvent[UBound($neu_file)]
Global $n_ReminderSet[UBound($neu_file)]
Global $n_ReminderMinutesBeforeStart[UBound($neu_file)]
Global $n_Categories[UBound($neu_file)]
Global $n_split
; -----------------------------------------------------------------------------------------------------------
; Vorhandene Outlook Kalendereinträge in Arrays schreiben
; -----------------------------------------------------------------------------------------------------------
Global $oOutlook = _OL_Open()
Global $aFolder = _OL_FolderAccess($oOutlook, "Personal Folders\Kalender")
Global $aItems = _OL_ItemFind($oOutlook, "Personal Folders\Kalender", $olAppointment, "", "Categories", "Schichtplan", "Start,EntryID,Subject" , "")
_ArrayDelete($aItems, 0)
Global $a_caldays[UBound($aItems)]
Global $a_entryid[UBound($aItems)]
Global $a_subject[UBound($aItems)]
Global $a_start[UBound($aItems)]
$x = 0
For $i = 0 to Ubound($aItems) -1
GUICtrlSetData($progressbar2,(100*$x)/(UBound($aItems)-1))
$a_caldays[$x] = $aItems[$x][0] & " - " & $aItems[$x][2]
$a_entryid[$x] = $aItems[$x][1]
$a_subject[$x] = $aItems[$x][2]
$a_start[$x] = stringLeft($aItems[$x][0],
$x = $x + 1
Next
;~ 1
GUICtrlSetData($progressbar1,17)
; -----------------------------------------------------------------------------------------------------------
; Werte aus Aktuellem Schichtplan aus CSV zur weiterverarbeitung in Arrays schreiben.
; -----------------------------------------------------------------------------------------------------------
$x = 0
For $i = 0 to UBound($neu_file) - 1
GUICtrlSetData($progressbar2,(100*$x)/(UBound($neu_file)-1))
$n_split = StringSplit($neu_file[$x], ";")
$n_caldays[$x] = $n_split[2] & " - " & $n_split[1]
$n_subject[$x] = $n_split[1]
$n_start[$x] = stringleft($n_split[2],
$n_end[$x] = $n_split[3]
$n_AllDayEvent[$x] = $n_split[4]
$n_ReminderSet[$x] = $n_split[5]
$n_ReminderMinutesBeforeStart[$x] = $n_split[6]
Switch $n_split[1]
Case "Variable", "Früh", "Spät/Früh (getauscht)", "Nacht/Früh(getauscht)", "A-Nacht/M-Tag (getauscht)", "Sonder Früh", "V Früh", "M-Tag", "Sonder M-Tag", "V M-Tag"
$n_Categories[$x] = "Frühdienst; " & $n_split[7]
Case "Spät", "Früh/Spät (getauscht)", "Nacht/Spät(getauscht)", "Sonder Spät", "V Spät", "Nacht/Spät (getauscht)", "Spät (HomeOffice)"
$n_Categories[$x] = "Spätdienst; " & $n_split[7]
Case "Nacht", "Früh/Nacht (getauscht)", "Spät/Nacht (getauscht)", "M-Tag/A-Nacht (getauscht)", "Sonder Nacht", "V Nacht", "A-Nacht", "Sonder A-Nacht", "V A-Nacht"
$n_Categories[$x] = "Nachtdienst; " & $n_split[7]
Case "Früh (Krank)", "Spät (Krank)", "Nacht (Krank)", "M-Tag (Krank)", "A-Nacht (Krank)", "V (Krank)"
$n_Categories[$x] = "Krank; " & $n_split[7]
Case "Früh (Urlaub)", "Spät (Urlaub)", "Nacht (Urlaub)", "M-Tag (Urlaub)", "A-Nacht (Urlaub)", "V (Urlaub)"
$n_Categories[$x] = "Urlaub; " & $n_split[7]
Case "Früh/- (Frei)", "Spät/- (Frei)", "Nacht/- (Frei)", "M-Tag/- (Frei)", "A-Nacht/- (Frei)", "Urlaub (Frei)", "V (Frei)"
$n_Categories[$x] = "Frei; " & $n_split[7]
EndSwitch
$x = $x + 1
Next
GUICtrlSetData($progressbar1,34)
; -----------------------------------------------------------------------------------------------------------
; ArrayList Object mit Datumswerte aus vorhandenen Outlook Kalendereinträge.
; -----------------------------------------------------------------------------------------------------------
$a_AList = ObjCreate("System.Collections.ArrayList")
$x = 0
For $i in $a_caldays
GUICtrlSetData($progressbar2,(100*$x)/(UBound($a_caldays)-1))
$a_AList.add ($i)
$x = $x + 1
Next
GUICtrlSetData($progressbar1,51)
$n_AList = ObjCreate("System.Collections.ArrayList")
$x = 0
For $i in $n_caldays
GUICtrlSetData($progressbar2,(100*$x)/(UBound($n_caldays)-1))
$n_AList.add ($i)
$x = $x + 1
Next
GUICtrlSetData($progressbar1,68)
; -----------------------------------------------------------------------------------------------------------
; Datum beider Arrays vergleichen und ggf. Outlook Kalendereintrag ändern oder hinzufügen.
; -----------------------------------------------------------------------------------------------------------
$x = 0
For $i in $n_start
GUICtrlSetData($progressbar2,(100*$x)/(UBound($n_start)-1))
If not $a_AList.Contains ($n_caldays[$x]) Then
$index = _ArraySearch($a_start, $i)
$n_start_date = StringMid($n_caldays[$x], 7, 2) & "." & StringMid($n_caldays[$x], 5, 2) & "." & StringMid($n_caldays[$x], 1, 4) & " " & StringMid($n_caldays[$x], 9, 2) & ":" & StringMid($n_caldays[$x], 11, 2) & ":" & StringMid($n_caldays[$x], 13, 2)
$n_end_date = StringMid($n_end[$x], 7, 2) & "." & StringMid($n_end[$x], 5, 2) & "." & StringMid($n_end[$x], 1, 4) & " " & StringMid($n_end[$x], 9, 2) & ":" & StringMid($n_end[$x], 11, 2) & ":" & StringMid($n_end[$x], 13, 2)
If $index <> -1 Then
$message = StringMid($n_caldays[$x], 7, 2) & "." & StringMid($n_caldays[$x], 5, 2) & "." & StringMid($n_caldays[$x], 1, 4) & " wurde nach """ & $n_subject[$x] & """ geändert!" & @CRLF
_OL_ItemModify($oOutlook, $a_entryid[$index],Default, "Subject=" & $n_subject[$x], "Start=" & $n_start_date, "End=" & $n_end_date, "Categories=" & $n_Categories[$x])
Else
$message = $message & StringMid($n_caldays[$x], 7, 2) & "." & StringMid($n_caldays[$x], 5, 2) & "." & StringMid($n_caldays[$x], 1, 4) & " """ & $n_subject[$x] & """ wurde hinzugefügt!" & @CRLF
$oItem = _OL_ItemCreate($oOutlook, $olAppointmentItem, "Personal Folders\Kalender", "", "Subject=" & $n_subject[$x] , "Start=" & $n_start_date, "End=" & $n_end_date, "Categories=" & $n_Categories[$x], "Location=", "RequiredAttendees=" & $oOutlook.GetNameSpace("MAPI" ).CurrentUser.Name)
$oItem.save
EndIf
EndIf
$x = $x + 1
Next
GUICtrlSetData($progressbar1,85)
$x = 0
For $i in $a_start
GUICtrlSetData($progressbar2,(100*$x)/(UBound($a_start)-1))
If not $n_AList.Contains ($a_caldays[$x]) Then
$index = _ArraySearch($n_start, $i)
If $index <> -1 Then
Else
$message = $message & StringMid($a_caldays[$x], 7, 2) & "." & StringMid($a_caldays[$x], 5, 2) & "." & StringMid($a_caldays[$x], 1, 4) & " """ & $a_subject[$x] & """ wurde gelöscht!" & @CRLF
_OL_ItemDelete($oOutlook, $a_entryid[$x])
_OL_Close($oOutlook)
EndIf
EndIf
$x = $x + 1
Next
GUICtrlSetData($progressbar1,100)
IF $message = "" Then
msgbox(64,"Schichtplan Update-Meldung","keine Änderungen vorgenommen!")
Else
msgbox(64,"Schichtplan Update-Meldung",$message)
EndIf
EndFunc
ok, vielen dank euch....
ich werds mal versuchen und mich dann wieder melden ob es geklappt hat, und wenn nicht dann sowieso
@ misterspeed
oh das hört sich doch sehr gut an...
aber ich bin ja schon daran gescheitert eine progressbar unterzubringen
Kurzbeschreibung vom Script:
Es wird eine CSV Datei aus dem i-Net heruntergeladen und in ein bzw. mehrer Arrays geschrieben (_FileReadToArray)
dann werden alle Outlook Kalendereinträge mit der Kategorie
"Schichtplan" eingelesen und ebenfalls in ein bzw. mehrer Arrays
geschrieben
Die Arrays werden miteinander verglichen, vorhande Kalendereinträge ggf.
geändert oder gelöscht, neue Kalendereintrage hinzugefügt.
Das ganze funktioniert wunderbar.
Jetzt ist es so, das einlesen und schreiben bzw. verändern der
Kalendereinträge und das vergleiche der Arrays dauert eine gewisse Zeit.
Für diese Zeit würde ich gerne eine Progressbar einbinden... ich bekomme es aber nicht hin.
ich weiß nicht wie ich das noch genauer beschreiben soll....
mir würde ja schon eine gif animation reichen z.B. [Blockierte Grafik: http://www.philips.de/consumerfiles/assets/img/progress_bar.gif] die ich in ein gui mit Text "Moment bitte, blablabla" einbinde...
sorry aber ich weiß nicht wie ich das in mein script unterbringe
also jetzt verstehe ich garnichts mehr
Zitat.....als die Datei, wenn überhaupt eine erstellt wird, ......
wenn ich die Anzahl der ermittelten Kalendereinträge in eine Datei schreibe, wieso dann "wenn überhaupt eine erstellt wird. ???
erstmal Danke für die Antwort....
ich glaube das habe ich nicht richtig verstanden...
in der csv datei befinden sich die aktuellen daten die ich mit den Outlook Kalendereintrage vergleich und ggf. in outlook anpasse.
selbst das auslesen der Outlook Kalendereinträge und das vergleichen der Daten aus der csv Datei benötigen einiges an Zeit.
ich könnte allerdings beim erstmaligen lauf, die anzahl der outlook Kalendereintrage in eine Datei schreiben die ich dann immer wieder auslese und aktualisiere...
aber das hilft mir nicht wirklich weiter
Hallo miteinander,
ich versuche vergeblich eine Progressbar in angehängtes Script einzubinden und hoffe Ihr könnt mir helfen.
Kurzbeschreibung vom Script:
Es wird eine CSV Datei aus dem i-Net heruntergeladen und in ein bzw. mehrer Arrays geschrieben (_FileReadToArray)
dann werden alle Outlook Kalendereinträge mit der Kategorie "Schichtplan" eingelesen und ebenfalls in ein bzw. mehrer Arrays geschrieben
Die Arrays werden miteinander verglichen, vorhande Kalendereinträge ggf. geändert oder gelöscht, neue Kalendereintrage hinzugefügt.
Das ganze funktioniert wunderbar.
Jetzt ist es so, das einlesen und schreiben bzw. verändern der Kalendereinträge und das vergleiche der Arrays dauert eine gewisse Zeit.
Für diese Zeit würde ich gerne eine Progressbar einbinden... ich bekomme es aber nicht hin.
Übergangsweise lasse ich in der Zeit ein "SplashTextOn("Update", "Moment bitte, Kalender-Update wird durchgeführt.",400,50)" anzeigen.
Kann mir da jemand helfen bitte.
Div. Beispiele und unendliches Suchem im I-net var erfolglos.
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <String.au3>
#include <Array.au3>
#include <IE.au3>
#include <OutlookEX\OutlookEX.au3>
local $message
Local $alt_file
Local $neu_file
local $a_split
local $a_Var
local $n_split
local $n_Var
SplashTextOn("Update", "Moment bitte, Kalender-Update wird durchgeführt.",400,50)
[/autoit] [autoit][/autoit] [autoit]; -----------------------------------------------------------------------------------------------------------
; Schichtplan CSV Datei von Internetseite einlesen bzw. downloaden.
; -----------------------------------------------------------------------------------------------------------
InetGet("http://www.xxxxxxxxxxx.xx/xxxxx/xxxxxxxx.csv", "E:\xxxxxxxx\xxxxxxxx.csv",1,0)
; -----------------------------------------------------------------------------------------------------------
; Schichtplan CSV Datei in ein Array lesen
; -----------------------------------------------------------------------------------------------------------
_FileReadToArray("E:\xxxxxxxx\xxxxxxxx.csv", $neu_file)
_ArrayDelete($neu_file, 0)
local $n_caldays[UBound($neu_file)]
local $n_entryid[UBound($neu_file)]
local $n_subject[UBound($neu_file)]
local $n_start[UBound($neu_file)]
local $n_end[UBound($neu_file)]
local $n_AllDayEvent[UBound($neu_file)]
local $n_ReminderSet[UBound($neu_file)]
local $n_ReminderMinutesBeforeStart[UBound($neu_file)]
local $n_Categories[UBound($neu_file)]
local $n_split
; -----------------------------------------------------------------------------------------------------------
; Vorhandene Outlook Kalendereinträge in Arrays schreiben
; -----------------------------------------------------------------------------------------------------------
Global $oOutlook = _OL_Open()
Global $aFolder = _OL_FolderAccess($oOutlook, "icloud\Kalender")
Global $aItems = _OL_ItemFind($oOutlook, "icloud\Kalender", $olAppointment, "", "Categories", "Schichtplan", "Start,EntryID,Subject" , "")
_ArrayDelete($aItems, 0)
_OL_Close($oOutlook)
local $a_caldays[UBound($aItems)]
local $a_entryid[UBound($aItems)]
local $a_subject[UBound($aItems)]
local $a_start[UBound($aItems)]
$x = 0
For $i = 0 to Ubound($aItems) -1
$a_caldays[$x] = $aItems[$x][0] & " - " & $aItems[$x][2]
$a_entryid[$x] = $aItems[$x][1]
$a_subject[$x] = $aItems[$x][2]
$a_start[$x] = stringLeft($aItems[$x][0],
$x = $x + 1
Next
; -----------------------------------------------------------------------------------------------------------
; Werte aus Aktuellem Schichtplan aus CSV zur weiterverarbeitung in Arrays schreiben.
; -----------------------------------------------------------------------------------------------------------
$x = 0
For $i = 0 to UBound($neu_file) - 1
$n_split = StringSplit($neu_file[$x], ";")
$n_caldays[$x] = $n_split[2] & " - " & $n_split[1]
$n_subject[$x] = $n_split[1]
$n_start[$x] = stringleft($n_split[2],
$n_end[$x] = $n_split[3]
$n_AllDayEvent[$x] = $n_split[4]
$n_ReminderSet[$x] = $n_split[5]
$n_ReminderMinutesBeforeStart[$x] = $n_split[6]
Switch $n_split[1]
Case "Variable", "Früh", "Spät/Früh (getauscht)", "Nacht/Früh(getauscht)", "A-Nacht/M-Tag (getauscht)", "Sonder Früh", "V Früh", "M-Tag", "Sonder M-Tag", "V M-Tag"
$n_Categories[$x] = "Frühdienst; " & $n_split[7]
Case "Spät", "Früh/Spät (getauscht)", "Nacht/Spät(getauscht)", "Sonder Spät", "V Spät", "Nacht/Spät (getauscht)", "Spät (HomeOffice)"
$n_Categories[$x] = "Spätdienst; " & $n_split[7]
Case "Nacht", "Früh/Nacht (getauscht)", "Spät/Nacht (getauscht)", "M-Tag/A-Nacht (getauscht)", "Sonder Nacht", "V Nacht", "A-Nacht", "Sonder A-Nacht", "V A-Nacht"
$n_Categories[$x] = "Nachtdienst; " & $n_split[7]
Case "Früh (Krank)", "Spät (Krank)", "Nacht (Krank)", "M-Tag (Krank)", "A-Nacht (Krank)", "V (Krank)"
$n_Categories[$x] = "Krank; " & $n_split[7]
Case "Früh (Urlaub)", "Spät (Urlaub)", "Nacht (Urlaub)", "M-Tag (Urlaub)", "A-Nacht (Urlaub)", "V (Urlaub)"
$n_Categories[$x] = "Urlaub; " & $n_split[7]
Case "Früh/- (Frei)", "Spät/- (Frei)", "Nacht/- (Frei)", "M-Tag/- (Frei)", "A-Nacht/- (Frei)", "Urlaub (Frei)", "V (Frei)"
$n_Categories[$x] = "Frei; " & $n_split[7]
EndSwitch
$x = $x + 1
Next
; -----------------------------------------------------------------------------------------------------------
; ArrayList Object mit Datumswerte aus vorhandenen Outlook Kalendereinträge.
; -----------------------------------------------------------------------------------------------------------
$a_AList = ObjCreate("System.Collections.ArrayList")
For $i in $a_caldays
$a_AList.add ($i)
Next
$n_AList = ObjCreate("System.Collections.ArrayList")
For $i in $n_caldays
$n_AList.add ($i)
Next
; -----------------------------------------------------------------------------------------------------------
; Datum beider Arrays vergleichen und ggf. Outlook Kalendereintrag ändern oder hinzufügen.
; -----------------------------------------------------------------------------------------------------------
$x = 0
For $i in $n_start
If not $a_AList.Contains ($n_caldays[$x]) Then
$index = _ArraySearch($a_start, $i)
$n_start_date = StringMid($n_caldays[$x], 7, 2) & "." & StringMid($n_caldays[$x], 5, 2) & "." & StringMid($n_caldays[$x], 1, 4) & " " & StringMid($n_caldays[$x], 9, 2) & ":" & StringMid($n_caldays[$x], 11, 2) & ":" & StringMid($n_caldays[$x], 13, 2)
$n_end_date = StringMid($n_end[$x], 7, 2) & "." & StringMid($n_end[$x], 5, 2) & "." & StringMid($n_end[$x], 1, 4) & " " & StringMid($n_end[$x], 9, 2) & ":" & StringMid($n_end[$x], 11, 2) & ":" & StringMid($n_end[$x], 13, 2)
If $index <> -1 Then
$message = StringMid($n_caldays[$x], 7, 2) & "." & StringMid($n_caldays[$x], 5, 2) & "." & StringMid($n_caldays[$x], 1, 4) & " wurde nach """ & $n_subject[$x] & """ geändert!" & @CRLF
Global $oOutlook = _OL_Open()
Global $aFolder = _OL_FolderAccess($oOutlook, "icloud\Kalender")
Global $oOutlook = _OL_Open()
Global $aFolder = _OL_FolderAccess($oOutlook, "icloud\Kalender")
_OL_ItemModify($oOutlook, $a_entryid[$index],Default, "Subject=" & $n_subject[$x], "Start=" & $n_start_date, "End=" & $n_end_date, "Categories=" & $n_Categories[$x])
_OL_Close($oOutlook)
Else
$message = $message & StringMid($n_caldays[$x], 7, 2) & "." & StringMid($n_caldays[$x], 5, 2) & "." & StringMid($n_caldays[$x], 1, 4) & " """ & $n_subject[$x] & """ wurde hinzugefügt!" & @CRLF
Global $oOutlook = _OL_Open()
Global $aFolder = _OL_FolderAccess($oOutlook, "icloud\Kalender")
$oItem = _OL_ItemCreate($oOutlook, $olAppointmentItem, "icloud\Kalender", "", "Subject=" & $n_subject[$x] , "Start=" & $n_start_date, "End=" & $n_end_date, "Categories=" & $n_Categories[$x], "Location=", "RequiredAttendees=" & $oOutlook.GetNameSpace("MAPI" ).CurrentUser.Name)
$oItem.save
_OL_Close($oOutlook)
EndIf
EndIf
$x = $x + 1
Next
$x = 0
For $i in $a_start
If not $n_AList.Contains ($a_caldays[$x]) Then
$index = _ArraySearch($n_start, $i)
If $index <> -1 Then
Else
$message = $message & StringMid($a_caldays[$x], 7, 2) & "." & StringMid($a_caldays[$x], 5, 2) & "." & StringMid($a_caldays[$x], 1, 4) & " """ & $a_subject[$x] & """ wurde gelöscht!" & @CRLF
Global $oOutlook = _OL_Open()
Global $aFolder = _OL_FolderAccess($oOutlook, "icloud\Kalender")
_OL_ItemDelete($oOutlook, $a_entryid[$x])
_OL_Close($oOutlook)
EndIf
EndIf
$x = $x + 1
Next
SplashOff()
[/autoit] [autoit][/autoit] [autoit]IF $message = "" Then
msgbox(64,"Schichtplan Update-Meldung","keine Änderungen vorgenommen!")
Else
msgbox(64,"Schichtplan Update-Meldung",$message)
EndIf
Exit
Hi, ich nochma....
ich denke ich habs jetzt, das logon-Fenster war immer dann inaktiv wenn im IE-Hauptfenster irgendein Java-Applet gestartet (automatisch) wurde.
Hab einfach ein winwait() auf das Logon-Fenster gemacht und das Hauptfenster dann mit winsetstatus() auf @SW_DISABLED gesetzt und nach dem Logon wieder auf @SW_ENABLED
scheint zu funktionieren.....
Danke für die Hilfe und Denkanstöße
Hi,
leider gehts mit "winsetontop" auch nicht, das Fenster bleibt zwar im Vordergrund, verliert aber kurzzeitig den Focus, sprich es ist mehrmals für einen bruchteil einer sekunde nicht aktiv,
meistens genau dann wenn ich den send() durchführe und der geht natürlich dann in die binsen.
Habe zwar nichts gefunden aber vieleicht gibt es ja eine Methode ein Fenster zu ZWINGEN Aktiv zu bleiben.... (zumindest für eine gewisse Zeit) den status "ACTIVE" zu behalten.
Hi, erstma danke für die Antworten.....
aber das Eintragen des Usernamen und Passwort mit send() ist nicht das Problem, das Problem ist den Zeitpunkt abzupassen WANN
ich den Send() machen kann.
Wenn ich z.B.
[autoit]
Winwait("Log On - " & StringTrimLeft($Anlage, 1))
WinActivate("Log On - " & StringTrimLeft($Anlage, 1),"")
send(@Username)
send("{TAB}")
send($READ_PW)
send("{Enter}")
dann läuft das Scrript weiter sobald das Logon-Fenster einmal da war, aber es verschwindet ja sofort wieder und nach unbestimmter Zeit kommt es wieder, das macht es
auch mehrmals, ist abhängik von der Anzahl geladener Applets oder so ähnlich.
Also mit anderen worten, wenn ich genau weiß das das Fenster genau 4 mal erscheint und ich den Login beim 4ten mal machen kann würde ich so vorgehen:
$Fenster = 0
Do
WinWait("Log On - " & StringTrimLeft($Anlage, 1))
$Fenster = $Fenster + 1
until $Fenster = 4
WinActivate("Log On - " & StringTrimLeft($Anlage, 1),"")
send(@Username)
send("{TAB}")
send($READ_PW)
send("{Enter}")
aber ich weiß leider vorher nicht wie oft das Logon-Fenster erscheint.
Also das Logon-Fenster verschwindet nicht, es legt sich nur immer ein anderes Fenster darüber....
moment, ich glaub mit winsetontop könnte es gehen. ich teste mal....
Hallo zusammen,
ich habe ein Problem mit einer Java Anwendung im Internet-Explorer und dem dazugehörigem Logon-Fenster.
Ich möchte gerne den Logon "Benutzername und Passwort" automatisieren doch leider gelingt mir das nicht.
Also, beim starten der URL öffnet sich ein IE Ladefenster woraus wiederum ein IE Fenster geöffnet wird, nach umbestimmter Zeit
öffnet sich dann ein Java-Logon Fenster welches sich auch mehrmals wieder schließt bzw. in den Hintergrund verschwindet.
Mit WINWAIT oder so komme ich nicht weiter da z.B. beim senden der Logondaten dieses Fenster in den Hintergrund geht und nicht mehr Aktiv ist.
Abzählen wie oft das Logonfenster aktiv ist bringt auch nichts, da das auch immer unterschiedlich ist.
Hängt wohl von dem Java-Applet ab welches im zweiten Fenster geladen wird, und welche Java-Version ich gerade am jeweiligen Rechner habe.
(ist beides auch immer unterschiedlich)
Hat da wer vieleicht eine Idee und kann mir weiterhelfen. Bin jetzt auch nicht so der Auto-It spezie, ich wurschtel mich da immer so durch.
Besten Dank schoma, schönen Tag Euch allen.
SUPER, ich danke euch vielmals.....habs jetzt verstanden.......
hier mal das fertige script...
#include <GuiConstants.au3>
#Include <GuiEdit.au3>
#include <GuiList.au3>
#include <string.au3>
#include <Misc.au3>
#include <IE.au3>
#include <INet.au3>
#include <Array.au3>
Local $color
$oIE = ObjCreate("Shell.Explorer.2")
GuiCreate("Test-Edit", 500, 280)
$BTN_ende = GuiCtrlCreateButton("Ende", 380, 220, 90, 20)
$BTN_bold = GuiCtrlCreateButton("Fett", 20, 220, 80, 20)
GUICtrlSetFont (-1,9, 800, 0)
$BTN_underline = GuiCtrlCreateButton("Unterstrichen", 110, 220, 80, 20)
GUICtrlSetFont (-1,9, 400, 4)
$BTN_kursiv = GuiCtrlCreateButton("Kursiv", 200, 220, 80, 20)
GUICtrlSetFont (-1,9, 400, 2)
$BTN_br = GuiCtrlCreateButton("<BR>", 20, 250, 80, 20)
GUICtrlSetFont (-1,9, 400, 2)
$BTN_color = GuiCtrlCreateButton("Color", 110, 250, 80, 20)
$BTN_vorschau = GuiCtrlCreateButton("Vorschau", 200, 250, 80, 20)
$INS_beschreibung = GuiCtrlCreateEdit("", 20, 40, 440, 160)
[/autoit] [autoit][/autoit] [autoit]GuiSetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE or $msg = $BTN_ende
ExitLoop
Case $msg = $BTN_bold
$a_sel = _GUICtrlEditGetSel($INS_beschreibung)
$zahl = $a_sel[2] - $a_sel[1]
$c_sel = StringMid(GUICtrlRead($INS_beschreibung),$a_sel[1]+1,$zahl)
_GUICtrlEditReplaceSel ( $INS_beschreibung, 1, "<B>" & $c_sel & "</B>" )
Case $msg = $BTN_kursiv
$a_sel = _GUICtrlEditGetSel($INS_beschreibung)
$zahl = $a_sel[2] - $a_sel[1]
$c_sel = StringMid(GUICtrlRead($INS_beschreibung),$a_sel[1]+1,$zahl)
_GUICtrlEditReplaceSel ( $INS_beschreibung, 1, "<I>" & $c_sel & "</I>" )
Case $msg = $BTN_underline
$a_sel = _GUICtrlEditGetSel($INS_beschreibung)
$zahl = $a_sel[2] - $a_sel[1]
$c_sel = StringMid(GUICtrlRead($INS_beschreibung),$a_sel[1]+1,$zahl)
_GUICtrlEditReplaceSel ( $INS_beschreibung, 1, "<U>" & $c_sel & "</U>" )
Case $msg = $BTN_br
$a_sel = _GUICtrlEditGetSel($INS_beschreibung)
$zahl = $a_sel[2] - $a_sel[1]
$c_sel = StringMid(GUICtrlRead($INS_beschreibung),$a_sel[1]+1,$zahl)
_GUICtrlEditReplaceSel ( $INS_beschreibung, 1, "<BR>" & $c_sel & @CRLF )
Case $msg = $BTN_color
$color = _ChooseColor (2, 0xFF0000, 2)
If not @error Then
$color = StringTrimLeft($color, 2)
$a_sel = _GUICtrlEditGetSel($INS_beschreibung)
$zahl = $a_sel[2] - $a_sel[1]
$c_sel = StringMid(GUICtrlRead($INS_beschreibung),$a_sel[1]+1,$zahl)
_GUICtrlEditReplaceSel ( $INS_beschreibung, 1, "<FONT COLOR=""#"& $color & """>" & $c_sel & "</FONT>" )
EndIf
Case $msg = $BTN_vorschau
Global $html_pref[1]
_ArrayAdd($html_pref, "<html><head>")
_ArrayAdd($html_pref, "<style type=""text/css""><!--")
_ArrayAdd($html_pref, "BODY { font-family:Tahoma; font-size:9pt; background-color:#FFF2D5; white-space:nowrap }")
_ArrayAdd($html_pref, "table { font-size:9pt; padding:0px; white-space:nowrap } --></style>")
_ArrayAdd($html_pref, "<title>Titel</title></head><body>")
_ArrayAdd($html_pref, "<span style=""color:#000000;font-size:-3;font-family:Comic Sans MS;font-weight:bold"">")
_ArrayAdd($html_pref, "<table width=""100%"" border=""0"" style=""border:solid 2px #dc143c"" cellspacing=""0"" cellpadding=""5"">")
_ArrayAdd($html_pref, "<tr><td><table border=""0"" cellspacing=""2"" cellpadding=""1""><tr valign=""top"">")
_ArrayAdd($html_pref, "<td>")
_ArrayAdd($html_pref, "<table border=""0"" cellpadding=""1"" cellspacing=""2"" width=""100%"">")
_ArrayAdd($html_pref, "<tr valign=""top"">")
_ArrayAdd($html_pref, "<td>")
_ArrayAdd($html_pref, "<table border=""0"" cellpadding=""1"" cellspacing=""2"" width=""100%"">")
_ArrayAdd($html_pref, "<tr valign=""top"">")
_ArrayAdd($html_pref, "<td width=""125"" nowrap align=""right""><b>Datum:</b></td>")
_ArrayAdd($html_pref, "<td nowrap><!-- xDATUMx -->" & @MDAY & "." & @MON & "." & @YEAR & "<!-- xDATUMx --></td>")
_ArrayAdd($html_pref, "</tr>")
_ArrayAdd($html_pref, "<tr valign=""top"">")
_ArrayAdd($html_pref, "<td width=""125"" nowrap align=""right""><b>Zeit:</b></td>")
_ArrayAdd($html_pref, "<td nowrap><!-- xZEITx -->" & @HOUR & ":" & @MIN & "<!-- xZEITx --></td>")
_ArrayAdd($html_pref, "</tr>")
_ArrayAdd($html_pref, "<tr valign=""top"">")
_ArrayAdd($html_pref, "<td width=""125"" nowrap align=""right""><b>Name:</b></td>")
_ArrayAdd($html_pref, "<td nowrap><!-- xNAMEx -->" & @UserName & "<!-- xNAMEx --></td>")
_ArrayAdd($html_pref, "</tr>")
_ArrayAdd($html_pref, "<tr valign=""top"">")
_ArrayAdd($html_pref, "<td width=""125"" nowrap align=""right""><b>Änderung:</b></td>")
_ArrayAdd($html_pref, "<td><!-- xTEXTx -->" & GUICtrlRead($INS_beschreibung) & "<!-- xTEXTx --></td>")
_ArrayAdd($html_pref, "</tr>")
_ArrayAdd($html_pref, "</table>")
_ArrayAdd($html_pref, "</div></div></td></tr></table>")
_ArrayAdd($html_pref, "</body></html>")
$array_string = _ArrayToString ( $html_pref, @TAB)
$oIE = ObjCreate("Shell.Explorer.2")
GUICreate ( "Vorschau", 720, 220,(@DesktopWidth-640)/2, (@DesktopHeight-580)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
$GUIActiveX = GUICtrlCreateObj ( $oIE, 10, 10 , 700 , 170 )
$GUI_Button_Back = GuiCtrlCreateButton ("Ende", 300,190, 100, 20)
GUISetState ()
$source = $array_string
$oIE.navigate("about:blank")
_IEPropertySet ($oIE, "innerhtml", $source)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE or $msg = $GUI_Button_Back
ExitLoop
EndSelect
Wend
GUIDelete ()
Case Else
EndSelect
WEnd
funktioniert echt gut....danke nochmal
mh, tut mir echt leid aber ich verstehe das nicht.
Du liest die Quelle einer Webseite ein, also eine vorhandene Datei.
In Deinem Fall die ......./history.htm
ich habe aber noch keine Datei, nur den Text in meinem GuiCtrlCreateEdit,
es sei denn ich kann folgendes benutzen:
#include <IE.au3>
#include <INet.au3>
$source = GUICtrlRead($INS_beschreibung)
$oIE = _IE_Example ("basic")
_IEPropertySet ($oIE, "innerhtml", $source)
das werde ich gleich mal ausprobieren.....