1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. mirko2002

Beiträge von mirko2002

  • _IEAction auf ObjID geht nicht

    • mirko2002
    • 22. August 2014 um 12:38

    Jep,

    _IELinkClickByText ($oIE, "Shiftplan") geht auch nicht...

    MouseClick... hm... da hab ich Bauchschmerzen wegen der Coords. Wenn ich den Befehl grad richtig gesehen habe (nur schnell überflogen) dann muss ich ja die X und Y Coords angeben wohin die Mouse klicken soll. Das Fenster ist aber jedesmal an einer andere Position wenn es sich öffnet :(

    Eigentlich soll das Script nichts anderes machen als sich im Dienstplan einzuloggen, den Diensplan Reiter aufzurufen und davon einen Screenshot zu machen und wieder alles zu schliessen... nur Screenshot hin oder her - nützt mir nix wenn vorher nicht das angezeigt wird was "gescreenshotet" werden soll :D

  • _IEAction auf ObjID geht nicht

    • mirko2002
    • 22. August 2014 um 10:47

    Hab's grad mal mit Firebug getestet. Ist letzendlich genau dieselbe Ausgabe wie über Google Chrome...

    PHP
    <li id="TabPanel1__TabShifts" class="">
     	<a class="x-tab-strip-close" onclick="return false;"></a>
     	<a class="x-tab-right" onclick="return false;" href="#">
              <em class="x-tab-left">
                   <span class="x-tab-strip-inner">
                     	<span class="x-tab-strip-text ">Shiftplan</span>
    	            </span>
          	</em>
     	</a>
    </li>


    So sieht der komplett Code vom Reiter aus. Es gibt also weder einen Link (href="#" nützt mir ja nix), noch wird ein Bild geladen was ich klicken könnte. Und das ist ja das was mir Schwierigkeiten bereitet. Würde ich eine URL sehen die er durch das klicken lädt wäre es ja zu einfach :)

    Ob die Software von Teletrain oder Witness ist kann ich Dir gar nicht beantworten - bin nur Anwender der Software - nicht der Admin :)

  • _IEAction auf ObjID geht nicht

    • mirko2002
    • 22. August 2014 um 08:20

    Naja soweit ich erkennen kann wirds wohl durch Javascript gesteuert...

    Wenn ich über den IE den Quellcode aufrufe guckt man wie die Sau in den Urwald :D

    Ordentlichen "leserlichen" Quellcode erhalte ich erst in Google Chrome wenn ich "Element untersuchen" anklicke... (siehe Screenshot oben). Aber der Quellcode dort kann ja auch gefunden werden.... nur der Klick darauf klappt nicht - das ist ja das was mich wundert.

  • _IEAction auf ObjID geht nicht

    • mirko2002
    • 21. August 2014 um 08:05

    Hallo Ihr beiden... erstmal vielen Dank für die Unterstützung.

    Leider passiert auch mit dem obigen Code rein gar nichts.... er kommt bis nach dem Login, aber den Reiter tut er nicht wechseln :(

    Wie man oben auf dem Screenshot erkennen kann gibt's ja insgesamt 4 Reiter und er startet nach dem Login immer auf der "user search". Keine Chance das Ding irgendwie bewegt zu bekommen -.-
    Aber irgendwie muss es doch gehen... ist doch "nur" eine Webseite :(

    LG
    Mirko

  • Laufwerksinformationen auslesen

    • mirko2002
    • 20. August 2014 um 14:17

    Ich weiss nicht was aes auswirft, aber in der Hilfe ist dieser Befehl zu finden:

    http://translation.autoit.de/onlinehilfe/li…tDeviceCaps.htm
    (Ermittelt gerätespezifische Informationen über ein bestimmtes Gerät)

    Evtl ist es das was Du suchst?

  • _IEAction auf ObjID geht nicht

    • mirko2002
    • 20. August 2014 um 13:46

    Wenn ich
    _IEAction($oDiv1,"click")
    mit
    ControlClick("AZE - Shiftplan :: Agentmaster data", "", $oDiv1)
    ersetze passiert leider auch nichts....

    :(

  • _IEAction auf ObjID geht nicht

    • mirko2002
    • 20. August 2014 um 12:18

    Hallo AutoIT Gemeinde,

    ich verzweifel gerade etwas... ich möchte, dass das Skript auf Arbeit den Dienstplan aufruft, sich dort einloggt und den entsprechenden Reiter auf der Webseite öffnet wo die Zeiten eingetragen sind.

    Das öffnen der Seite, das Login und das warten bis alles geladen wurde funktioniert. Auch findet er den Link/Reiter wo ich auf die Zeiten zugreifen könnte - aber der Klick darauf klappt nicht.

    Hier mal der Source von mir:

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $username = "TEST"
    $passwort = "PASSWORD"

    [/autoit] [autoit][/autoit] [autoit]

    $oIE = _IECreate ("https://xxx.xxx.xxx/WorkforceManager/Login.aspx",0,1)
    _IELoadWait($oIE)

    [/autoit] [autoit][/autoit] [autoit]

    $oForm = _IEFormGetCollection($oIE, 0)
    $oNameInput = _IEFormElementGetObjByName($oForm, 'Text_Username')
    $oPaswInput = _IEFormElementGetObjByName($oForm, 'Text_Password')
    _IEFormElementSetValue ($oNameInput, $username)
    _IEFormElementSetValue ($oPaswInput, $passwort)

    [/autoit] [autoit][/autoit] [autoit]

    $oDiv = _IEGetObjById($oIE, "ext-gen17")
    ;~ ConsoleWrite(_IEPropertyGet($oDiv, "innertext") & @CRLF)
    _IEAction($oDiv,"click")

    [/autoit] [autoit][/autoit] [autoit]

    WinWait("AZE - Shiftplan :: Agentmaster data")

    [/autoit] [autoit][/autoit] [autoit]

    $oDiv1 = _IEGetObjById($oIE, "TabPanel1__TabShifts")
    ;~ ConsoleWrite(_IEPropertyGet($oDiv1, "innertext") & @CRLF)
    MsgBox(0,"Check","Fertig geladen")
    _IEAction($oDiv1,"click")

    [/autoit]

    Ich habe auch mal ein Screenshot von Google Chrome angehangen wo man den quelltext in Verbindung mit dem Aufbau der Seite sieht.
    Über ConsoleWrite gibt er mir ja auch den "innertext" wieder, er findet es aja also - daher verstehe ich nicht, das er nicht klicken kann.

    Kann mir wer weiterhelfen?

    Dateien

    wfm.png 71,88 kB – 0 Downloads
  • FileRead/FileReadLine

    • mirko2002
    • 24. April 2014 um 08:09
    Zitat von Schnitzel

    Ich denke wenn du Zeile 71 durch das ersetzt

    [autoit]

    GUICtrlSetData($notizen,StringTrimLeft($readini, StringInStr($readini, @CRLF, 0, 4)))

    [/autoit]


    dann ist es so wie du es haben willst.

    Das einfügen des Quellcodes ist ein Bug, bzw liegt das am Browser.

    Bitte entschuldigt die verspätete Antwort und vielen Dank für Eure Vorschläge. Ich habe als erstes das ganze von Schnitzel getestet und siehe da - läuft 1A - genauso wie ich es eigtl benötige :)

    Vielen Dank nochmal an Euch beide für die Hilfestellung!

  • FileRead/FileReadLine

    • mirko2002
    • 17. April 2014 um 13:49

    Hallo liebe AutoIt-Gemeinde,

    ich benötige ein klein wenig Hilfe für ein Tool was ich mir und meinen Kollegen auf Arbeit geschrieben habe.
    Die Oberfläche dient eigentlich nur dazu bestimmte interne Tickets zu kontrollieren und ggf. updates zu setzen.

    Es funktioniert auch eigtlich alles. Wenn ich ein Ticket anwähle lädt er eine Textdatei (das Ticket) und gibt dieses in einem Edit Feld wieder.

    Und hier genau liegt der Hund begraben. Ich möchte explizit an dieser Stelle, dass er das File erst ab der 5. Zeile komplett ausliest. Die ersten 4 Zeilen soll er hierbei ignorieren. Diese werden vorher seperat ausgelesen und in anderen Feldern ausgegeben.

    Damit man versteht was ich meine hier mein Script zum testen. Wenn man den Filepath anpasst kann man das auf jedem PC testen.

    Sicherlich ist mein gescriptetes Zeugs nicht perfekt, man kann einiges sicherlich besser machen. Aber so läuft es aktuell genau wie gewünscht und ich versteh meinen Code ;)

    Wäre nett wenn man mir hier auf die Sprünge hilft. Ich denke das hier evtl StringReplace zum Einsatz kommen könnte - sicher bin ich mir da auch nicht...

    LG
    Mirko

    Edit:
    Ich habe keine Ahnung warum er den Quellcode hier so unleserlich einfügt :(
    Vor dem absenden sieht noch alles konform aus - erst nach dem Post wird es hier total verzogen :(

    Edit 2:
    Da man den Quellcode ja wirklich nicht entziffern kann hab ich mal die AU3 angehangen... damit sollte es ja jeder sehen können...

    Spoiler anzeigen
    [autoit]


    #region ;**** Directives created by AutoIt3Wrapper_GUI ****#AutoIt3Wrapper_Icon=artifacter.ico#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****#include<GuiTreeView.au3>#include<EditConstants.au3>#include<GUIConstantsEx.au3>#include<TreeViewConstants.au3>#include<WindowsConstants.au3>
    Global $sPath = 'M:\Agents\#CT Profis\Artifacts\'Global $width = 800, $height = 600Global $hGui = GUICreate('Artifacter', $width, $height, -1, 0)
    Dim $input_infos[4]
    GUICtrlSetFont(-1, 9, 600, 0, 'Verdana')Global $bFiles = TrueGUICtrlCreateGroup("Artifacts", 5, 20, 275, 505)GUICtrlSetFont(-1, 8, 600, 0, "Verdana")Global $hTreeView = GUICtrlCreateTreeView(10, 35, $width - 540, $height - 120, BitOR($GUI_SS_DEFAULT_TREEVIEW, $TVS_CHECKBOXES), $WS_EX_STATICEDGE)GUICtrlSetFont(-1, 10, 400, 0, 'Arial')GUICtrlSetBkColor(-1, 0xF8F8F8)$input_createfile = GUICtrlCreateInput("FILENAME", 15, 540, 150, 18)$button_createfile = GUICtrlCreateButton("Create Artifact", 170, 540, 75, 18)GUICtrlCreateGroup("Artifact Infos", 290, 20, 500, 80)GUICtrlSetFont(-1, 8, 600, 0, "Verdana")GUICtrlCreateLabel("Account#:", 300, 40)$input_infos[0] = GUICtrlCreateInput("", 360, 38, 150, 18)GUICtrlCreateLabel("Contact:", 540, 40)$input_infos[1] = GUICtrlCreateInput("", 600, 38, 150, 18)GUICtrlCreateLabel("Company:", 300, 70)$input_infos[2] = GUICtrlCreateInput("", 360, 68, 150, 18)GUICtrlCreateLabel("Phone:", 540, 70)$input_infos[3] = GUICtrlCreateInput("", 600, 68, 150, 18)GUICtrlCreateGroup("Notes", 290, 100, 500, 395)GUICtrlSetFont(-1, 8, 600, 0, "Verdana")$notizen = GUICtrlCreateEdit("", 300, 115, 480, 370, BitOR($WS_VSCROLL, $ES_MULTILINE, $ES_READONLY));~ GUICtrlSetBkColor(-1, 0xF8F8F8)GUICtrlCreateGroup("Updates", 290, 495, 400, 80)GUICtrlSetFont(-1, 8, 600, 0, "Verdana")$input_update = GUICtrlCreateEdit("", 300, 510, 380, 55, BitOR($WS_VSCROLL, $ES_MULTILINE, $ES_AUTOVSCROLL, $ES_WANTRETURN))$button_update = GUICtrlCreateButton("Update Artifact", 700, 530, 75, 20)Global $hStatus1 = GUICtrlCreateLabel('', 0, $height - 16, $width / 2, 16, -1, $WS_EX_STATICEDGE)Global $hStatus2 = GUICtrlCreateLabel('', $width / 2 + 1, $height - 16, $width / 2, 16, -1, $WS_EX_STATICEDGE)
    $winuser = @UserNameIf @UserName = "751076" Then $winuser = "Max Mustermann 1"ElseIf $winuser = "748169" Then $winuser = "Max Mustermann 2"ElseIf $winuser = "828487" Then $winuser = "Max Mustermann 3"ElseIf $winuser = "759732" Then $winuser = "Max Mustermann 4"ElseIf $winuser = "828520" Then $winuser = "Max Mustermann 5"EndIf
    GUISetState()
    _TreeViewUpdate()
    While True Switch GUIGetMsg() Case $GUI_EVENT_PRIMARYDOWN $aInfo = GUIGetCursorInfo($hGui) If $aInfo[4] = $hTreeView Then $oldGUIDataSeparatorChar = Opt('GUIDataSeparatorChar', '\') GUICtrlSetData($hStatus1, ' ' & StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\')) $readini = FileRead(StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\')) GUICtrlSetData($notizen, $readini) $read_info1 = FileReadLine(StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\'), 1) GUICtrlSetData($input_infos[0], $read_info1) $read_info2 = FileReadLine(StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\'), 2) GUICtrlSetData($input_infos[1], $read_info2) $read_info3 = FileReadLine(StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\'), 3) GUICtrlSetData($input_infos[2], $read_info3) $read_info4 = FileReadLine(StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\'), 4) GUICtrlSetData($input_infos[3], $read_info4) Opt('GUIDataSeparatorChar', $oldGUIDataSeparatorChar) If BitAND(_GUICtrlTreeView_HitTest($hTreeView, $aInfo[0] - 11, $aInfo[1] - 41), 64) Then $checked = _GUICtrlTreeView_GetChecked($hTreeView, _GUICtrlTreeView_GetSelection($hTreeView)) _GUICtrlTreeView_SetBold($hTreeView, _GUICtrlTreeView_GetSelection($hTreeView), $checked) $hItem = _GUICtrlTreeView_GetFirstChild($hTreeView, _GUICtrlTreeView_GetSelection($hTreeView)) If $hItem Then _MarkChildItems($hTreeView, $hItem, $checked) EndIf EndIf Case $button_update $oldGUIDataSeparatorChar = Opt('GUIDataSeparatorChar', '\') $read_update = GUICtrlRead($input_update) FileWrite(StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\'), @CRLF & @MDAY & "." & @MON & " " & @YEAR & ", " & @HOUR & ":" & @MIN & " by " & $winuser & ":" & @CRLF & $read_update & @CRLF & "--------------------------------------------------------------------------------------------------------------------------------------------------------") $readini = FileRead(StringReplace(_GUICtrlTreeView_GetTree($hTreeView), '\\', '\')) GUICtrlSetData($notizen, $readini) GUICtrlSetData($input_update, "") Case $button_createfile _checkInputs() Case $GUI_EVENT_CLOSE Exit EndSwitchWEnd
    Func _checkInputs() Local $test = 0 For $i = 0 To UBound($input_infos) - 1 If GUICtrlRead($input_infos[$i]) = "" Then $test = 1 ExitLoop EndIf Next If $test = 1 Then MsgBox(0, "Achtung!", 'Bitte alle Felder unter "Artifact Infos" ausfüllen.') Else $oldGUIDataSeparatorChar = Opt('GUIDataSeparatorChar', '\') $read_createfile = GUICtrlRead($input_createfile) $read_input_infos1 = GUICtrlRead($input_infos[0]) $read_input_infos2 = GUICtrlRead($input_infos[1]) $read_input_infos3 = GUICtrlRead($input_infos[2]) $read_input_infos4 = GUICtrlRead($input_infos[3]) FileWrite($sPath & $read_createfile & ".txt", $read_input_infos1 & @CRLF & $read_input_infos2 & @CRLF & $read_input_infos3 & @CRLF & $read_input_infos4 & @CRLF & "Created " & @MDAY & "." & @MON & " " & @YEAR & ", " & @HOUR & ":" & @MIN & " by " & $winuser & @CRLF) _TreeViewUpdate() GUICtrlSetData($input_infos[0], "") GUICtrlSetData($input_infos[1], "") GUICtrlSetData($input_infos[2], "") GUICtrlSetData($input_infos[3], "") MsgBox(0, "", 'Artifact created') EndIf ReturnEndFunc ;==>_checkInputs
    Func _MarkChildItems(ByRef $hTreeView, $hItem, $checked) Do $hNewItem = _GUICtrlTreeView_GetFirstChild($hTreeView, $hItem) If $hNewItem Then _MarkChildItems($hTreeView, $hNewItem, $checked) _GUICtrlTreeView_SetChecked($hTreeView, $hItem, $checked) _GUICtrlTreeView_SetBold($hTreeView, $hItem, $checked) $hItem = _GUICtrlTreeView_GetNextChild($hTreeView, $hItem) Until $hItem = 0EndFunc ;==>_MarkChildItems
    Func _TreeViewUpdate() GUICtrlSetData($hStatus1, ' Bitte warten! Verzeichnis wird eingelesen...') GUICtrlSetData($hStatus2, '') $Timer = TimerInit() Local $aCount = _GUICtrlTreeView_CreateDirectory($hTreeView, $sPath, $bFiles) If Not @error Then $msg = ' Benötigte Zeit: ' & Round(TimerDiff($Timer) / 1000, 3) & ' sek.' $msg &= ' | ' & $aCount[1] & ' Datei(en) und ' & $aCount[0] & ' Verzeichniss(e)' GUICtrlSetData($hStatus1, ' Fertig.') GUICtrlSetData($hStatus2, $msg) EndIfEndFunc ;==>_TreeViewUpdate

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================; Function Name: _GUICtrlTreeView_CreateDirectory($hTreeView, $sPath, $bFiles); Description:: erstellt ein TreeView mit Verzeichnissen (+Dateien); Parameter(s): $hTreeView = ControlID/Handle des TreeViews; $sPath = Verzeichnispfad, der dargestellt werden soll; $bFiles = True = auch Dateien anzeigen, False = nur Verzeichnisse; Requirement(s): #include<GuiTreeView.au3>; Return Value(s): Array mit Anzahl der Verzeichnisse=[0] und Dateien=[1]; 0 und @error = 1, wenn der Pfad nicht existiert bzw. kein Verzeichnis ist; 0 und @error = 2, wenn das FileSystemObject nicht erstellt werden konnte; Author(s): Oscar (http://www.autoit.de);===============================================================================Func _GUICtrlTreeView_CreateDirectory($hTreeView, $sPath, $bFiles = False) Local $hFileItem, $FolderColor = 0x0000FF, $Folder, $aCount[2] = [0, 0] If Not StringInStr(FileGetAttrib($sPath), 'D') Then Return SetError(1, 0, 0) $sPath = FileGetLongName($sPath) Local $oFSO = ObjCreate('Scripting.FileSystemObject') If @error Then Return SetError(2, 0, 0) _GUICtrlTreeView_BeginUpdate($hTreeView) _GUICtrlTreeView_DeleteAll(GUICtrlGetHandle($hTreeView)) Local $hTreeViewItem = GUICtrlCreateTreeViewItem($sPath, $hTreeView) GUICtrlSetColor(-1, $FolderColor) _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 111) $Folder = $oFSO.GetFolder($sPath) _CreateDirectoryRecursive($hTreeView, $Folder, $hTreeViewItem, $bFiles, $aCount) If $bFiles Then For $Files In $Folder.Files $hFileItem = GUICtrlCreateTreeViewItem($Files.Name, $hTreeViewItem) $aCount[1] += 1 Next EndIf _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 3, 2) _GUICtrlTreeView_SetIcon($hTreeView, $hTreeViewItem, 'shell32.dll', 110, 4) _GUICtrlTreeView_EndUpdate($hTreeView) GUICtrlSetState($hTreeViewItem, $GUI_EXPAND) $oFSO = '' Return $aCountEndFunc ;==>_GUICtrlTreeView_CreateDirectory
    Func _CreateDirectoryRecursive($hTreeView, $Folder, $ItemOld, $bFiles, ByRef $aCount) Local $hFolderItem, $hFileItem, $FolderColor = 0x0000FF For $Subfolder In $Folder.SubFolders $hFolderItem = GUICtrlCreateTreeViewItem($Subfolder.Name, $ItemOld) GUICtrlSetColor(-1, $FolderColor) _GUICtrlTreeView_SetIcon($hTreeView, $hFolderItem, 'shell32.dll', 3, 2) _GUICtrlTreeView_SetIcon($hTreeView, $hFolderItem, 'shell32.dll', 110, 4) $aCount[0] += 1 _CreateDirectoryRecursive($hTreeView, $Subfolder, $hFolderItem, $bFiles, $aCount) If $bFiles Then For $Files In $Subfolder.Files $hFileItem = GUICtrlCreateTreeViewItem($Files.Name, $hFolderItem) $aCount[1] += 1 Next EndIf NextEndFunc ;==>_CreateDirectoryRecursive

    [/autoit]

    Dateien

    artifacter.au3 10,4 kB – 283 Downloads
  • OutlookEX UDF - 2019-11-30: Neue Version 1.4.0.0. freigegeben

    • mirko2002
    • 18. Dezember 2012 um 15:56

    Alles klar, danke dennoch für die schnelle Unterstützung. Jetzt geht's ja so wie es soll ;)

  • OutlookEX UDF - 2019-11-30: Neue Version 1.4.0.0. freigegeben

    • mirko2002
    • 18. Dezember 2012 um 15:25

    Versteh ich nicht :)

    Wie soll ich _OL_FolderAccess verwenden. Laut der beiliegenden Hilfe-HTML muss ich auch dort den Pfad mit ggf. Subfoldern angeben. Aber der Inboxordner ist kein Subfolder von dem Ort wo er sucht, demnach kann ich ihn dort auch nicht angeben.

    Ich weiss nicht wie ich es besser erklären soll, daher hier mal die Ordnerstruktur als Bildanhang...

    Die rot markierte Inbox durchsucht er, aber nicht die grün markierte...

    //EDIT

    Ok hat sich erledigt :)

    [autoit]

    #Include <OutlookEX.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $oOutlook = _OL_Open()
    Global $iItems = _OL_ItemFind($oOutlook, "CT-DE\Inbox", $olMail, "", "", "", "", "", 4)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"Posteingang", "Im Posteingang sind " & $iItems & " eMails.")

    [/autoit][autoit][/autoit][autoit]

    _OL_Close($oOutlook)

    [/autoit]

    Brachte den gewünschten Erfolg...

    Bilder

    • ol.PNG
      • 18,57 kB
      • 168 × 600
  • OutlookEX UDF - 2019-11-30: Neue Version 1.4.0.0. freigegeben

    • mirko2002
    • 18. Dezember 2012 um 14:47

    Jap englisches System.

    Mit Posteingang gabs erst einen Consolenfehler, bis ich geschnallt habe das es am Namen Inbox lag. Nun funktioniert der Abruf - nur leider im falschen Inbox...

  • OutlookEX UDF - 2019-11-30: Neue Version 1.4.0.0. freigegeben

    • mirko2002
    • 18. Dezember 2012 um 14:29

    Grossartig.... funktioniert perfekt, danke ;)

    //Edit

    Funktioniert doch nicht :(

    Hab zum testen einfach kurz folgendes Script erstellt:

    [autoit]

    #Include <OutlookEX.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $oOutlook = _OL_Open()
    Global $iItems = _OL_ItemFind($oOutlook, "*\Inbox", $olMail, "", "", "", "", "", 4)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"Posteingang", "Im Posteingang sind " & $iItems & " eMails.")
    _OL_Close($oOutlook)

    [/autoit]

    MessageBox wirft "0" aus obwohl in der Inbox eine Mail da ist. Demnach müsste ja "1" ausgegeben werden. Die Console bringt aber auch keinen zusätzlichen Fehler. Woran liegts?

    //Edit2

    Ok hab folgendes herausgefunden:

    Er durchsucht den lokalen Posteingang. Ich will aber nicht diesen, sondern den Eingang von einen der Konten die ich angelegt habe.
    Ich hab quasi folgende Struktur:

    Personal Folders
    - Inbox
    - Outbox
    - Drafts
    - etc

    Account #1
    - Inbox
    - Outbox
    - Drafts
    - etc

    Account #2
    - Inbox
    - Outbox
    - Drafts
    - etc

    Nun benötige ich aber nicht den lokalen Inbox (denn diese ist immer leer) sondern die Inbox von einen der angelegten Accounts.

  • OutlookEX UDF - 2019-11-30: Neue Version 1.4.0.0. freigegeben

    • mirko2002
    • 18. Dezember 2012 um 13:53

    Hallo water,

    eine Frage - wie kann ich einfach nur die Anzahl der eMails aus dem Posteingang auslesen?

    Ich möchte nichts anderes ausser, dass in einem Label wiedergegeben wird

    Mails: 9 (als Beispiel)

    Vielen Dank

  • IE Fenster mit _IEImgClick ansprechen

    • mirko2002
    • 18. Dezember 2012 um 10:46

    Hm... stimmt... das wär natürlich ne einfachere sache als einen Click in das Fenster zu simulieren... ich werds mal testen. Danke für den Denkanstoss.

  • IE Fenster mit _IEImgClick ansprechen

    • mirko2002
    • 18. Dezember 2012 um 08:33

    Hallo zusammen,

    ich hatte gestern schon versucht an eine Lösung über die Shoutbox zu kommen. Wurde dann aber gebeten einen Thread zu öffnen ;)

    Und hier ist mein Problem: Unsere Intranetseite loggt einen User automatisch nach Zeit X aus. Bevor dies passiert öffnet sich automatisch ein Popupfenster mit einem Timeout warning und man solle "OK" klicken damit man halt nicht ausgeloggt wird. Der Ok Button ist lediglich ein verlinktes Bild, daher auch der Befehl _IEImgClick.

    Nun muss ich dort aber natürlich angeben auf welches Fenster er diesen Befehl angeben soll. Da dieses Fenster ja nicht von mir mit dem Script geöffnet wurde (sondern automatisch erscheint) hab ich kein Plan wie ich dieses Fenster nun ansprechen soll.

    Momentan sind in meiner While Schleife folgende Abfrage:

    [autoit]


    If WinExists("https://craft.emea.fedex.com/ - Timeout Warning. Click OK to not end the session.") Then
    $timeout = WinActivate("https://craft.emea.fedex.com/ - Timeout Warning. Click OK to not end the session.")
    _IEImgClick ($timeout, "/cs/fsprd/cache/PT_OK_GER_1.gif", "src")
    EndIf

    [/autoit]

    Er erkennt zwar das Popup welches sich öffnet, nur der Befhl _IEImgClick funktioniert nicht - und das hat ganz sicher mit dem ersten Parameter zu tun.

    Ich habe mal AutoIt Info Tool angemacht und die Daten des OK Buttons ausgelesen. Hier das Summary:

    Spoiler anzeigen


    >>>> Window <<<<
    Title: https://craft.emea.fedex.com/ - Timeout Warning. Click OK to not end the session. - Windows Internet Explorer
    Class: IEFrame
    Position: 251, 125
    Size: 340, 249
    Style: 0x16CA0000
    ExStyle: 0x00000100
    Handle: 0x0006122A

    >>>> Control <<<<
    Class: Internet Explorer_Server
    Instance: 1
    ClassnameNN: Internet Explorer_Server1
    Name:
    Advanced (Class): [CLASS:Internet Explorer_Server; INSTANCE:1]
    ID:
    Text:
    Position: 0, 0
    Size: 334, 224
    ControlClick Coords: 157, 160
    Style: 0x56000000
    ExStyle: 0x00000000
    Handle: 0x000511D6

    >>>> Mouse <<<<
    Position: 411, 307
    Cursor ID: 0
    Color: 0xFCFCB5

    >>>> StatusBar <<<<
    1: javascript:window.opener.setupTimeout();self.location='https://craft.emea.fedex.com/psc/fsprd/EMPLOYEE/ERP/?cmd=resettimeout';this.close();
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:

    >>>> ToolsBar <<<<

    >>>> Visible Text <<<<
    https://craft.emea.fedex.com/ - Timeout Warning. Click OK to not end the session. - Windows Internet Explorer


    >>>> Hidden Text <<<<
    Navigation Bar
    https://craft.emea.fedex.com/psc/fsprd/EMPL…_TIMEOUTWARNING
    Address Combo Control
    Page Control
    Google
    Search Combo Control
    Search Control
    Command Bar
    Favorites Command Bar
    LinksBand
    Favorites Bar
    Add to Favorites Bar
    ITBarHost
    Menu Bar
    javascript:window.opener.setupTimeout();self.location='https://craft.emea.fedex.com/psc/fsprd/EMPLOYEE/ERP/?cmd=resettimeout';this.close();
    Zoom Level

    Wie kann ich nun mit diesen Daten das Fenster ansprechen? Hätte ich das Fenster selbst mit _IECreate erstellt wäre es ja einfach, dann bräuchte ich ja nur auf die Variable zu verweisen aber so hab ich keine Ahnung -.-

    Wer ist so nett und erklärt es mir?

  • StringRegExp Problem

    • mirko2002
    • 14. Dezember 2012 um 15:28

    Ah... ok alles klar... habs noch mal etwas umgeschrieben aber das Beispiel haut hin... wunderbar. Vielen Dank, RegExp ist nicht wirklich einfach zu verstehen ;)

  • StringRegExp Problem

    • mirko2002
    • 14. Dezember 2012 um 14:33

    Oohhh... das ist mir gar nicht aufgefallen :D

    [autoit]


    $sHTML = _IEDocReadHTML ($oIE)
    $aResult = StringRegExp($sHTML,"(?i)\b of \d{1,3}",3)
    _ArrayDisplay($aResult)

    [/autoit][autoit]


    $sHTML = _IEDocReadHTML ($oIE)
    $iResult = StringRegExp($sHTML,"(?i)\b of .*(\d{1,3}).*",3)
    _ArrayDisplay($iResult)

    [/autoit]

    Habs jetzt korrigiert... erstes Beispiel wirft "of 20" aus... - das ist auch korrekt.

    Zweites Beispiel wirft einfach nur "1" aus... das ist nicht korrekt. Und ich woas net warum? :(

  • StringRegExp Problem

    • mirko2002
    • 14. Dezember 2012 um 14:01

    Hallo Freunde der Unterhaltung,

    heut hab ich mal das Problem mit StringRegExp...

    Ich hab mir schon den ganzen Tag von SEuBo durchgelesen und auch etwas davon umgesetzt, allerdings bei einem hab ich noch Probleme. Evtl kann mir da wer den entscheidenen Tipp geben.

    Von unserer Intranetseite lese ich den Quellcode aus und sucher dort einen bestimmten String. Dieser sieht immer so aus:

    X of XX

    Wobei die "X" für eine variierende Zahl steht.

    [autoit]

    $aResult = StringRegExp($sHTML,"(?i)\b of \d{1,3}",3)

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($aResult)

    [/autoit]

    Mit diesem RegExp gibt er mir den Treffer " of XX" aus... das ist auch gut so. Nun möchte ich aber zum Beispiel nur die Zahl ganz am Schluss auslesen um diese ausgeben zu können.

    Angenommen der Quellcode ist jetzt "1 of 20" gibt mein jetziges Snippet " of 20" wieder zurück. Ich möchte aber das nur "20" zurückgegeben wird. So kann ich nämlich ausgeben wieviele Fälle auf unserer Workingqueue drauf sind.

    [autoit]


    $iResult = StringRegExp($sHTML,"(?i)\b of \d{1,3}",".*(\d{1,3}).*",3)
    MsgBox(0,"",$iResult)
    _ArrayDisplay($iResult)

    [/autoit]

    Funktioniert nicht - er "frisst" nicht die Sachen Vor und Nach der gefunden Ziffer auf und gibt nur diese wieder. Stattdessen findet er den String gar nicht mehr :(

    Was mache ich falsch?

  • Projekt Color Catcher / HEX in RGB umrechnen

    • mirko2002
    • 10. Dezember 2012 um 11:17

    Ok, obwohl die Änderungen wirklich minimal warne und mit dem eigentlichen Problem nichts zu tun hatten hier nochmal der aktuelle Quellcode wo soweit alles klappt, ausser das er den Cursos falsch berechnet.

    In Zeile 83 zeichnet er den Cursor. Nicht wundern über die Mouseposi und die Minuswerte... nur so zeichnet er auf meiner Bildschirmauflösung den Cursor dort wo ich auch hinklicke - solange ich die GUI nicht verschiebe:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <Misc.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <StaticConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $mainframe, $hImage, $hGraphic, $hImage1, $mouseposi

    [/autoit] [autoit][/autoit] [autoit]

    $colorwheel = FileInstall("C:\Documents and Settings\751076\Desktop\AutoIT Tools\Color Catcher\colorwheel.png", @TempDir & "\colorwheel.png")
    $kreispkt2 = FileInstall("C:\Documents and Settings\751076\Desktop\AutoIT Tools\Color Catcher\kreispkt2.png", @TempDir & "\kreispkt2.png")

    [/autoit] [autoit][/autoit] [autoit]

    $mainframe = GUICreate("Color Catcher", 800, 530)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile(@TempDir & "\colorwheel.png")
    $hImage1 = _GDIPlus_ImageLoadFromFile(@TempDir & "\kreispkt2.png")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($mainframe)

    [/autoit] [autoit][/autoit] [autoit]

    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Ermittelte Farbe:", 540, 17, 80, 20)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $color_view = GUICtrlCreateLabel("", 540, 34, 100, 46)
    GUICtrlCreateLabel("HEX-Wert:", 540, 85, 60, 20)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $ausgabe_farbe = GUICtrlCreateInput("", 540, 100, 60, 20)
    GUICtrlSetBkColor($color_view, '0x' & "FFFFFF")

    [/autoit] [autoit][/autoit] [autoit]

    $slRed = GUICtrlCreateSlider(540, 200, 250, 20, 0)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $slGreen = GUICtrlCreateSlider(540, 250, 250, 20, 0)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $slBlue = GUICtrlCreateSlider(540, 300, 250, 20, 0)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetBkColor(-1, 0x0000FF)
    $InRed = GUICtrlCreateInput("", 570, 175, 40, 21, BitOR($ES_RIGHT, $ES_AUTOHSCROLL))
    $InGreen = GUICtrlCreateInput("", 570, 225, 40, 21, BitOR($ES_RIGHT, $ES_AUTOHSCROLL))
    $InBlue = GUICtrlCreateInput("", 570, 275, 40, 21, BitOR($ES_RIGHT, $ES_AUTOHSCROLL))
    $lbRed = GUICtrlCreateLabel("Rot", 540, 180, 21, 12)
    $lbGreen = GUICtrlCreateLabel("Grün", 540, 230, 27, 12)
    $lbBlue = GUICtrlCreateLabel("Blau", 540, 280, 25, 12)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $mainframe)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch (GUIGetMsg())
    Case $GUI_EVENT_CLOSE
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_ImageDispose($hImage1)
    _GDIPlus_Shutdown()
    Exit
    Case $InRed
    InRedChange()
    Case $InGreen
    InGreenChange()
    Case $InBlue
    InBlueChange()
    Case $ausgabe_farbe
    InHexChange()
    Case $slRed
    _Slider2Hex()
    Case $slGreen
    _Slider2Hex()
    Case $slBlue
    _Slider2Hex()
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    If _IsPressed("01") Then
    InHexChange()
    Sleep(75)
    $mouseposi = MouseGetPos()
    $farbe = Hex(PixelGetColor($mouseposi[0], $mouseposi[1]), 6)
    If $farbe = 'D4D0C8' Or $farbe = 'FFFFFF' Or $farbe = '000000' Or $farbe = 'FF0000' Or $farbe = '00FF00' Or $farbe = '0000FF' Or $farbe = '808080' Or $farbe = '404040' Or $farbe = '0A246A' Then
    Else
    GUICtrlSetData($ausgabe_farbe, "#" & $farbe)
    GUICtrlSetBkColor($color_view, '0x' & $farbe)
    _WinAPI_RedrawWindow($mainframe, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage1, $mouseposi[0] - 416, $mouseposi[1] - 236)
    _WinAPI_RedrawWindow($mainframe, 0, 0, $RDW_VALIDATE)
    EndIf
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($mainframe, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    _WinAPI_RedrawWindow($mainframe, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_PAINT

    [/autoit] [autoit][/autoit] [autoit]

    Func InBlueChange()
    $tmp = GUICtrlRead($InBlue)
    If $tmp < 0 Or $tmp > 255 Then
    GUICtrlSetData($InBlue, GUICtrlRead($slBlue))
    Return
    EndIf
    GUICtrlSetData($slBlue, $tmp)
    _Slider2Hex()
    EndFunc ;==>InBlueChange

    [/autoit] [autoit][/autoit] [autoit]

    Func InGreenChange()
    $tmp = GUICtrlRead($InGreen)
    If $tmp < 0 Or $tmp > 255 Then
    GUICtrlSetData($InGreen, GUICtrlRead($slGreen))
    Return
    EndIf
    GUICtrlSetData($slGreen, $tmp)
    _Slider2Hex()
    EndFunc ;==>InGreenChange

    [/autoit] [autoit][/autoit] [autoit]

    Func InRedChange()
    $tmp = GUICtrlRead($InRed)
    If $tmp < 0 Or $tmp > 255 Then
    GUICtrlSetData($InRed, GUICtrlRead($slRed))
    Return
    EndIf
    GUICtrlSetData($slRed, $tmp)
    _Slider2Hex()
    EndFunc ;==>InRedChange

    [/autoit] [autoit][/autoit] [autoit]

    Func InHexChange()
    $tmp = GUICtrlRead($ausgabe_farbe)
    If Not StringRegExp($tmp, '(#[0-9A-Fa-f]{6}(?!.))') Then
    _Slider2Hex()
    Return
    EndIf
    _Hex2Slider()
    EndFunc ;==>InHexChange

    [/autoit] [autoit][/autoit] [autoit]

    Func _Slider2Hex()
    GUICtrlSetData($InBlue, GUICtrlRead($slBlue))
    GUICtrlSetData($InGreen, GUICtrlRead($slGreen))
    GUICtrlSetData($InRed, GUICtrlRead($slRed))
    $red = Hex(GUICtrlRead($slRed), 2)
    $green = Hex(GUICtrlRead($slGreen), 2)
    $blue = Hex(GUICtrlRead($slBlue), 2)
    $hexColor1 = '#' & $red & $green & $blue
    $hexColor2 = '0x' & $red & $green & $blue
    GUICtrlSetData($ausgabe_farbe, $hexColor1)
    GUICtrlSetBkColor($color_view, $hexColor2)
    EndFunc ;==>_Slider2Hex

    [/autoit] [autoit][/autoit] [autoit]

    Func _Hex2Slider()
    $red = Dec(StringMid(GUICtrlRead($ausgabe_farbe), 2, 2))
    $green = Dec(StringMid(GUICtrlRead($ausgabe_farbe), 4, 2))
    $blue = Dec(StringRight(GUICtrlRead($ausgabe_farbe), 2))
    GUICtrlSetData($InRed, $red)
    GUICtrlSetData($InGreen, $green)
    GUICtrlSetData($InBlue, $blue)
    GUICtrlSetData($slRed, $red)
    GUICtrlSetData($slGreen, $green)
    GUICtrlSetData($slBlue, $blue)

    [/autoit] [autoit][/autoit] [autoit]

    $red = Hex(GUICtrlRead($slRed), 2)
    $green = Hex(GUICtrlRead($slGreen), 2)
    $blue = Hex(GUICtrlRead($slBlue), 2)
    GUICtrlSetBkColor($color_view, '0x' & $red & $green & $blue)
    EndFunc ;==>_Hex2Slider

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™