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. qwert23

Beiträge von qwert23

  • Frage Neu bei Autoit 3.3.8.1 einer Option.?

    • qwert23
    • 3. Januar 2013 um 11:13

    Im Menü <Search, Replace> anwählen oder Ctrl+h und dann die Option "Replace in Selection" anwählen.

    Dateien

    editor.JPG 31,23 kB – 0 Downloads
  • Outlook 2007 per Autoit öffnen

    • qwert23
    • 2. Januar 2013 um 19:05

    Offensichtlich verwendest Du das OutlookUDF (nicht OutlookEX-UDF), stimmts?

    Dein Beispiel scheint aus Outlook.au3 zu sein. Diese stellt zunächst ersteinmal die Verbindung zu Outlook her.
    Hier der Auszug aus der Outlook.au3 dazu:

    [autoit]


    ;===============================================================================
    ;
    ; Function Name: _OutlookOpen()
    ; Description: Open a connection to Microsoft Outlook.
    ; Syntax.........: _OutlookOpen()
    ; Parameter(s): None
    ; Requirement(s): AutoIt3 with COM support (post 3.1.1)
    ; Return Value(s): On Success - Returns new object identifier
    ; On Failure - Returns 0 and sets @ERROR > 0
    ; @ERROR = 1 - Unable to Create Outlook Object.
    ; Author(s): Wooltown
    ; Created: 2009-02-09
    ; Modified: -
    ;
    ;===============================================================================
    Func _OutlookOpen()
    Local $oOutlook = ObjCreate("Outlook.Application")
    If @error Or Not IsObj($oOutlook) Then
    Return SetError(1, 0, 0)
    EndIf
    Return $oOutlook
    EndFunc
    ;===============================================================================
    ;
    ; Function Name: _OutlookSendMail()
    ; Description: Send an email using Microsoft Outlook.
    ; Syntax.........: _OutlookSendMail($oOutlook, $sTo = "", $sCc = "", $sBCc = "", $sSubject = "", $sBody = "", $sAttachments = "", $iBodyFormat = $olFormatUnspecified, $iImportance = $olImportanceNormal, $sWarningClick = "")
    ; Parameter(s): $oOutlook - Outlook object opened by a preceding call to _OutlookOpen()
    ; $sTo - Optional: The recipiant(s), separated by ;
    ; $sCc - Optional: The CC recipiant(s) of the mail, separated by ;
    ; $sBCc - Optional: The BCC recipiant(s) of the mail, separated by ;
    ; $sSubject - Optional: The Subject of the mail
    ; $sBody - Optional: The Body of the mail
    ; $sAttachments - Optional: Attachments, separated by ;
    ; $iBodyFormat - Optional: The Bodyformat of the mail, default = $olFormatUnspecified
    ; $iImportance - Optional: The Importance of the mail, default = $olImportanceNormal
    ; $sWarningClick - Optional: The Entire SearchString to 'OutlookWarning1.exe', Default = None
    ; Requirement(s): AutoIt3 with COM support (post 3.1.1)
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0 and sets @ERROR > 0
    ; @ERROR = 1 - No To, Cc or BCc specified.
    ; @ERROR = 2 - OutlookWarning1.exe not found.
    ; @ERROR = 9 - ObjEvent error.
    ; Author(s): Wooltown
    ; Created: 2009-02-09
    ; Modified: 2009-02-24 - Several attachments didn't work
    ;
    ;===============================================================================
    Func _OutlookSendMail($oOutlook, $sTo = "", $sCc = "", $sBcc = "", $sSubject = "", $sBody = "", $sAttachments = "", $iBodyFormat = $olFormatPlain, $iImportance = $olImportanceNormal, $sWarningClick = "")
    Local $iRc = 0, $asAttachments
    If $sTo = "" And $sCc = "" And $sBCc = "" Then
    Return SetError(1, 0, 0)
    EndIf
    If $sWarningClick <> "" And FileExists($sWarningClick) = 0 Then
    Return SetError(2, 0, 0)
    Else
    Run($sWarningClick)
    EndIf
    Local $oOuError = ObjEvent("AutoIt.Error", "_OutlookError")
    Local $oMessage = $oOutlook.CreateItem($olMailItem)
    With $oMessage
    .To = $sTo
    .Cc = $sCc
    .Bcc = $sBCc
    .Subject = $sSubject
    .Body = $sBody
    .BodyFormat = $iBodyFormat
    .Importance = $iImportance
    If $sAttachments <> "" Then
    $asAttachments = StringSplit($sAttachments,";")
    For $iNumOfAttachments = 1 to $asAttachments[0]
    .Attachments.Add($asAttachments[$iNumOfAttachments])
    Next
    EndIf
    .Send
    $iRc = @ERROR
    EndWith
    If $iRc = 0 Then
    Return 1
    Else
    Return SetError(9, 0, 0)
    EndIf
    EndFunc
    ;===============================================================================

    [/autoit]

    Was soll denn dann passieren?

    Am Beispiel einer E-Mail könnte das exemplarisch so aussehen (hier mit HTML-Body):

    [autoit]


    #include <Outlook.au3>
    $oOutlook = _OutlookOpen()
    _OutlookSendMail($oOutlook, empfä[email='nger@mail.com'][/email], [email='ccEMail@mail.de'][/email] ,"", "Hier steht der Betreff","Anhangxyz.txt",$olFormatHTML,"","")

    [/autoit]

    Es gab dazu einige sehr gute .au3 Hilfedateien mit Beispielen, die Du mit Sicherheit vorliegen hast. Die einzelnen Optionen sind selbsterklärend.
    In Deinem Verzeichnis müssen auch die OutlookWarning...Dateien vorhanden sein.

    Das Outlook UDF funktioniert perfekt. Mit dem neuen OutlookEX UDF stehen noch mehr Möglichkeiten zur Verfügung.

  • Problem mit IconDock

    • qwert23
    • 27. Dezember 2012 um 16:27

    Da hat bobekos absolut recht....

    Hier ein Lösungsbeispiel:
    _IconDock_IconAddFile($hIconDock, $aIcon[1], 0, "_EventFunction", $IconDock_LBUTTONUP) ; neuer Aufruf zur Msgbox
    und dann noch die Funktion Func _EventFunction($hID, $iIconIndex, $iEventMsg) einfügen.

    Kommt das Deinen Vorstellungen nahe?


    [autoit]

    #include "IconDock.au3"
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Global $iWidth = 800
    Global $iHeight = 200
    Global $iIconSizeMin = 64
    Global $iIconSizeMax = 128

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

    Global $aIcon[8] = [7]
    $aIcon[1] = @WindowsDir & "\explorer.exe"
    $aIcon[2] = @SystemDir & "\taskmgr.exe"
    $aIcon[3] = @SystemDir & "\write.exe"
    $aIcon[4] = @SystemDir & "\notepad.exe"
    $aIcon[5] = @SystemDir & "\osk.exe"
    $aIcon[6] = @SystemDir & "\charmap.exe"
    $aIcon[7] = @SystemDir & "\mspaint.exe"

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

    Opt("GUIOnEventMode", 1)

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

    Global $hGui = GUICreate("Resize window", $iWidth, $iHeight, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_SIZEBOX))
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    Global $hIconDock = _IconDock_Create(0, 0, $iWidth, $iHeight, _
    BitOR($IconDock_Align_Horizontal, $IconDock_Center), $IconDock_Up, $iIconSizeMin, $iIconSizeMax, True, $hGui)

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

    _IconDock_SetOffset($hIconDock, 10)

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

    GUISetState()

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

    _IconDock_BeginUpdate($hIconDock)
    ;~ For $i = 1 To $aIcon[0]
    ;$TEst = _IconDock_IconAddFile($hIconDock, $aIcon[1])
    ;GUIctrlSetOnEvent($TEst, "_Test")
    _IconDock_IconAddFile($hIconDock, $aIcon[1], 0, "_EventFunction", $IconDock_LBUTTONUP) ; neuer Aufruf zur Msgbox
    ;~ Next
    _IconDock_EndUpdate($hIconDock)
    ConsoleWrite(@CRLF & "> Resize window" & @CRLF)

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

    GUIRegisterMsg($WM_SIZE, "WM_SIZE")
    GUIRegisterMsg($WM_GETMINMAXINFO, "WM_GETMINMAXINFO")

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

    While 1
    Sleep(50)
    WEnd

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

    Func _EventFunction($hID, $iIconIndex, $iEventMsg) ; funktion zur Abfrage des Icon
    Switch $hID
    Case $hIconDock
    Switch $iIconIndex
    Case 1
    MsgBox(0,"Icon gewählt","...hier bin ich ")

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

    EndSwitch
    EndSwitch
    EndFunc ;==>_EventFunction

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

    Func _Test()
    MsgBox(0,"eins","zwei, drei")
    EndFunc

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

    Func WM_SIZE($hWnd, $Msg, $wParam, $lParam)
    Switch $hWnd
    Case $hGui
    Local $tRect = _WinAPI_GetClientRect($hWnd)

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

    Local $iX = DllStructGetData($tRect, 1)
    Local $iY = DllStructGetData($tRect, 2)
    Local $iW = DllStructGetData($tRect, 3)
    Local $iH = DllStructGetData($tRect, 4)

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

    _IconDock_SetPos($hIconDock, $iX, $iY, $iW, $iH)
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_SIZE

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

    Func WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam)
    Local $MinMax = DllStructCreate("int ptReserved[2]; int ptMaxSize[2]; int ptMaxPosition[2]; int ptMinTrackSize[2]; int ptMaxTrackSize[2];", $lParam)
    DllStructSetData($MinMax, 4, $iIconSizeMin*3, 1)
    DllStructSetData($MinMax, 4, $iIconSizeMax+$iIconSizeMin, 2)
    DllStructSetData($MinMax, 5, 1000, 1)
    DllStructSetData($MinMax, 5, 800, 2)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_GETMINMAXINFO

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

    Func _Exit()
    _IconDock_Destroy($hIconDock)
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • Textdatei in einer bestimmtenzeile ein Text ändern ohne das ein anderes aus einer anderen Zeile mit überschrieben wird.

    • qwert23
    • 25. Dezember 2012 um 11:09

    _ReplaceStringInFile
    ist hierfür evtl. zu empfehlen.

  • Einfaches suchen und ersetzen Script .csv

    • qwert23
    • 17. Dezember 2012 um 09:19

    Hallo gss,
    ohne die Datei selbst öffnen zu müssen, ist die Funktion "_ReplaceStringInFile..." zu empfehlen.

    siehe: http://www.autoitscript.com/autoit3/docs/l…tringInFile.htm

    Damit ist Deine Aufgabe auch leicht lösbar.

  • WordEx UDF - FindReplace in Textfeldern und Kopf- und Fußzeile

    • qwert23
    • 12. Dezember 2012 um 16:56

    mit dem Word UDF werde ich nun die Problematik so lösen, dass das .docx File im Hintergrund als .xml gespeichert wird. Mit _ReplaceStringInFile erfolgt dann der Suchen/Ersetzen-Prozess.

    Textfelder, Überschriften etc. werden damit ersetzt.

    Anschließend starten der xml und ggf. als .docx direkt wieder abspeichern.

    Danke für die Unterstützung!

  • WordEx UDF - FindReplace in Textfeldern und Kopf- und Fußzeile

    • qwert23
    • 12. Dezember 2012 um 13:08

    Wenn die Zeile
    $oWord = ObjGet($sPath, "Word.Application") in $oWord = ObjGet("", "Word.Application") geändert wird, dann scheint es zu funktionieren.

    Hast Du noch eine Idee, wie Textfelder (in Word = Einfügen Textfeld) ansprechbar sind? Auch geht es um Suchen/Ersetzen von Texten.

    Danke und Gruß

  • WordEx UDF - FindReplace in Textfeldern und Kopf- und Fußzeile

    • qwert23
    • 11. Dezember 2012 um 23:26

    Hallo BugFix,
    vielen Dank für Deine schnelle Antwort.
    Mit Word2010 bekomme ich "nur" Fehlermeldungen. Ist Dein Beispiel für Office 2010 vorgesehen?

  • WordEx UDF - FindReplace in Textfeldern und Kopf- und Fußzeile

    • qwert23
    • 11. Dezember 2012 um 20:50

    Hallo,

    ich verwende das WordEx UDF von water.

    Die Funktion "_Word_DocFindReplace" sucht und ersetzt ausschließlich im Text einer .doc / .docx Datei.

    Meine Frage dazu:

    Mit welcher Einstellung ist es möglich, dass _Word_DocFindReplace auch in eingefügten Textfeldern, sowie in den Kopf- und Fußzeilen auswirkungen hat?

    Muster aus dem Beispielscript.

    [autoit]

    Func Example1($oDoc)
    _Word_DocFindReplace($oDoc, "test document", "test document with replaced text")
    If @error <> 0 Then Return MsgBox(16, "Word UDF: _Word_DocFindReplace Example 1", "Error replacing text in the document." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    MsgBox(64, "Word UDF: _Word_DocFindReplace Example 1", "Text successfully replaced.")
    EndFunc ;==>Example1

    [/autoit]

    Versuche mit _Word_DocRangeSet weiterzukommen blieben erfolglos (vermutlich wg. mir selbst).

    Weiss jemand die Lösung?

    Danke und Gruß

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 7. Dezember 2012 um 12:53

    Hallo Water,

    das ist ja fantastisch!
    Ich freue mich sehr, dass das Ziel erreicht ist.

    Dir danke ich für Deine unermüdliche Unterstützung und Arbeit. Danke!

    Viele Grüße und nochmals Danke!

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 7. Dezember 2012 um 12:23

    Hallo Water,

    ich habe die Testumgebung gelöscht.

    Nun ist der Erfolg auch eingetreten.

    $oItem 0-1

    $oDoc 0-1-4

    alles weitere ist 0

    Super gut und klasse. Vielen Dank.

    Nun weiß ich noch nicht, wie ein formatierter Text als rtf dort angezeigt werden kann. Eine .docx Datei einfach als rtf speichern.
    Magst Du Dich diesem letzten Schritt noch annehmen?

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 7. Dezember 2012 um 11:03

    Hallo Water,
    vielen Dank.

    In der Console wird diese Meldung ausgegeben:
    COM Error Encountered in test_inspector_3.au3
    OutlookEx UDF version = 0.9.0
    @AutoItVersion = 3.3.8.1
    @AutoItX64 = 0
    @Compiled = 0
    @OSArch = X64
    @OSVersion = WIN_7
    Scriptline = 1211
    NumberHex = 80020009
    Number = -2147352567
    WinDescription =
    Description = Der versuchte Vorgang konnte nicht ausgeführt werden. Ein Objekt wurde nicht gefunden.
    Source = Microsoft Outlook
    HelpFile =
    HelpContext = 0
    LastDllError = 0

    Zu den @error - Meldungen folgende:
    $oItem: 0-1
    $oDoc: -2147352567-0
    $oRange: 169-0
    Collapse: 169
    InsertBefore: 169
    Display: -2147352567

    Der Termin ist dann angelegt, erscheint als Erinnerung - nur ist der Body leer.

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 18:57

    Das volle OfficePaket.

    Ich arbeite auch viel mit dem Word UDF. E-Mailtexte erzeuge ich aus .docx Dateien, die vorher automatisch als .htm gespeichert wurden.

    Bilder

    • office.PNG
      • 15,76 kB
      • 242 × 35
  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 18:07

    Hallo Water,

    nun hast Du so viel Zeit und Arbeit investiert - Vielen vielen Dank dafür.
    Ich arbeite mit einem Dell XPS Ultrabook und ich wüßte nicht, was Auswirkungen haben könnte.

    Die erste Fehlermeldung verweist darauf, dass eine Deklaration (Not an Object Type) nicht korrekt ist, oder?
    Diese Meldung bezog sich auf diese Zeile:
    Global $oRange = $oDoc.Range
    Was könnte hierzu anders deklariert werden?

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 17:40

    Hallo Water,

    es ist exakt Dein Script mit der Ergänzung zur Fehlerüberwachung _OL_ErrorNotify(2).

    [autoit]

    #AutoIt3Wrapper_AU3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y
    #include <OutlookEX.au3>
    ; *****************************************************************************
    ; Create test environment
    ; *****************************************************************************
    Global $oItem
    Global $oOutlook = _OL_Open()
    _OL_ErrorNotify(2)
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended)
    Global $Result = _OL_TestEnvironmentCreate($oOutlook)
    If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF - Manage Test Environment", "Error creating the test environment. @error = " & @error & ", @extended = " & @extended)
    ; *****************************************************************************
    ; Example 1
    ; Create an appointment with subject, start- and enddate.
    ; Attendee is the current user
    ; *****************************************************************************
    Global Const $wdCollapseStart = 1 ; Collapse the range to the starting point
    $oItem = _OL_ItemCreate($oOutlook, $olAppointmentItem, "*\Outlook-UDF-Test\TargetFolder\Calendar", "", "Subject=TestSubject", "Start=" & _NowCalc(), "End=" & _DateAdd("h", 3, _NowCalc()), _
    "Location=Building A, Room 10", "RequiredAttendees=" & $oOutlook.GetNameSpace("MAPI" ).CurrentUser.Name)
    Global $oDoc = $oItem.GetInspector().WordEditor
    Global $oRange = $oDoc.Range
    $oRange.Collapse($wdCollapseStart)
    $oRange.InsertBefore("Inserted text at the start! ")
    $oItem.Display()
    _OL_Close($oOutlook)

    [/autoit]

    Falls es nun gar nicht funktionieren sollte, dann lebe ich auch mit dem Plaintext.

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 17:24

    Hier noch die Bilder dazu:

    Dateien

    Erinnerung.PNG 45,59 kB – 0 Downloads appoi.PNG 73,53 kB – 0 Downloads
  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 17:22

    Ja, es erscheint unmittelbar und die Erinnerungsfunktion ist auch aktiv.

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 16:45

    Hallo Water,

    hier die Meldungen.

    Es tut mir leid, dass ich Dir hier nicht helfen kann....

    Dateien

    Meldung1.PNG 38,03 kB – 0 Downloads Meldung2.PNG 43,41 kB – 0 Downloads Meldung3.PNG 42,38 kB – 0 Downloads
  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 16:02

    Das habe ich nun jeweils mit dieser Anweisung getan:
    msgbox(0,"Errormeldung",@error)

    Global $oDoc = $oItem.GetInspector().WordEditor = 0
    Global $oRange = $oDoc.Range = 2
    $oRange.Collapse($wdCollapseStart) = 169
    $oRange.InsertBefore("Inserted text at the start! ") = 169
    $oItem.Display() = -2147352567

  • OutlookEX UDF - Terminanfrage mit HTML-Body

    • qwert23
    • 6. Dezember 2012 um 15:38

    Hallo Water,
    schon mal vielen Dank für Deine Unterstützung.
    In meiner Office2010 Umgebung erscheint kein Text im Body. Es erfolgen keine Fehlermeldungen.

    Siehst Du noch eine Chance für eine globale Lösung?

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™