Beiträge von gmmg
-
-
nein, nur eine Mail. normalerweise steht die Mail auch direkt in einer Variable.
Ein ArrayDisplay bringt kein Ergebnis, weil das Programm hängt.
Wenn ich aber die Ergebnisse mit Consolewrite($aRegEx[1]) bzw. Consolewrite($aRegEx[0]) ausgebe, ist alles schnell.
Von daher passt das erstmal.
Welche Autoit Version benutzt du? Ich habe noch die Version 3.3.12.0Gruß gmmg
-
-
Hallo Zusammen,
ich bin grad dabei mit der POP3 UDF ein Script zu erstellen, was mir die Anhänge entsprechend abspeichert.
Habe hier aber grad das Problem beim Filtern des entsprechenden Textes der jeweiligen Email. (siehe Mail.txt)
Stringsplit und dergleichen bleiben beim Arraydisplay dann immer hängen. Über Consolewrite wird dieser ohne Probleme ausgegeben.
Benötigt wird der Abschnitt "filename=" und der Abschnitt nach dem "Content-Transfer-Encoding:", also das Codierte Attachment.
Hat einer hier eine zündende Idee?
AutoIt
Alles anzeigenLocal $aArray = FileReadToArray(@scriptdir & "\mail.txt") ;~ If @error Then ;~ MsgBox($MB_SYSTEMMODAL, "", "There was an error reading the file. @error: " & @error) ; An error occurred reading the current script file. ;~ Else ;~ For $i = 0 To UBound($aArray) - 1 ; Loop through the array. ;~ MsgBox($MB_SYSTEMMODAL, "", $aArray[$i]) ; Display the contents of the array. ;~ Next ;~ EndIf _ArrayDisplay($aArray)
Danke
Gruß gmmg
-
Racer: also bei mir haben sich nach senden von <strg>+<n> auch die anderen IE Browserfenster geändert. (IE11)
Hast du das mal Probiert? Das senden geht auch per Autoit und muss nicht händisch gemacht werden. Danch kannst du automatisch das geöffnete Fenster wieder schließen.Gruß gmmg
-
Hallo Racer,
Werte in Registry ändern und in einem IE Fenster danach ein "Neues Fenster" mit STRG+N öffnen. Nun werden die Werte bei mir in allen anderen IE Fenstern gesetzt.
Und ich ändere die Werte unter ....CurrentVersion\Internet Settings ->
ProxyEnable = 1
ProxyOverride = Auschlussliste, die nicht über den Proxy geht
ProxyServer = proxyserver:portEventuell hilft dir das weiter
Gruß gmmg
-
Hallo,
bei jedem Exchange Postfach kannst du POP3 bzw. IMAP aktivieren. Eventuell hilft das weiter.
Gruß gmmg
-
der folgende Quelltext funktioniert.
musst halt den entsprechenden Port übergeben, aktuell ist das 25 in der Sendmail () Funktion.Hier einfach Port 465 und ssl aktivieren, username und passwort wird da auch benötigt.
AutoIt
Alles anzeigenFunc Sendmail() Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") ;################################## ; Variables ;################################## $s_SmtpServer = "server" ; address for the smtp-server to use - REQUIRED $s_FromName = $from ; name from who the email was sent $s_FromAddress = $from ; address from where the mail should come $s_ToAddress = $to ; destination address of the email - REQUIRED $s_Subject = $subject ; subject from the email - can be anything you want it to be $as_Body = $body_txt ; the messagebody from the mail - can be left blank but then you get a blank mail $s_AttachFiles = $attachment ; the file you want to attach- leave blank if not needed $s_CcAddress = $cc ; address for cc - leave blank if not needed $s_BccAddress = $bcc ; address for bcc - leave blank if not needed $s_Username = $ADMINUSER ; username for the account used from where the mail gets sent - Optional (Needed for eg GMail) $s_Password = $ADMINPASS ; password for the account used from where the mail gets sent - Optional (Needed for eg GMail) $IPPort = 25 ; port used for sending the mail $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS ;~ $IPPort=465 ; GMAIL port used for sending the mail ;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS ;################################## ; Script ;################################## Global $oMyRet[2] ;MsgBox(0,"", $s_SmtpServer& $s_FromName& $s_FromAddress& $s_ToAddress& $s_Subject& $as_Body& $s_AttachFiles& $s_CcAddress& $s_BccAddress& $s_Username& $s_Password& $IPPort& $ssl) $rc = _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, $s_AttachFiles, $s_CcAddress, $s_BccAddress, $s_Username, $s_Password, $IPPort, $ssl) If @error Then MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc,1) EndIf EndFunc ;==>Sendmail Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0) $objEmail = ObjCreate("CDO.Message") $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>' $objEmail.To = $s_ToAddress Local $i_Error = 0 Local $i_Error_desciption = "" If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress $objEmail.Subject = $s_Subject If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then $objEmail.HTMLBody = $as_Body Else $objEmail.Textbody = $as_Body & @CRLF EndIf If $s_AttachFiles <> "" Then Local $S_Files2Attach = StringSplit($s_AttachFiles, ";") For $x = 1 To $S_Files2Attach[0] $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]) If FileExists($S_Files2Attach[$x]) Then $objEmail.AddAttachment($S_Files2Attach[$x]) Else $i_Error_desciption = $i_Error_desciption & @LF & 'File not found to attach: ' & $S_Files2Attach[$x] SetError(1) Return 0 EndIf Next EndIf $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort ;Authenticated SMTP If $s_Username <> "" Then $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password EndIf If $ssl Then $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True EndIf ;Update settings $objEmail.Configuration.Fields.Update ; Sent the Message $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf EndFunc ;==>_INetSmtpMailCom Func MyErrFunc() $HexNumber = Hex($oMyError.number, 8) $oMyRet[0] = $HexNumber $oMyRet[1] = StringStripWS($oMyError.description, 3) ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF) SetError(1); something to check for when this function returns Return EndFunc ;==>MyErrFunc
gruß gmmg
-
Hallo,
ist eigentlich ganz einfach
in der ini machst du mal aus \\coo.local\dfs\Home$\%username% folgendes \\coo.local\dfs\Home$\*USER*.
im Quelltext kommt das hinzu ...
$map_details = StringSplit($aArray_MAPDRIVE[$x][1],"|")
$map_details[1] = StringReplace($map_details[1], "*USER*", @username)
DriveMapAdd($map_details[2] & ":", $map_details[1])praktisch wird der String *USER* dann mit dem StringReplace in den Tatsächlichen Usernamen geändert.
Gruß gmmg
-
schön, wenn ich helfen konnte.
-
schau nochmal in meinen Post von eben ...
-
so hier nochmal
$is_member wurde in zeile 4 definiert und in in der For Next schleife Zeile 20 das $i durch $x ersetzt. Hier hatte es das $i hochgezählt und ist somit nicht in die richtige auswahl in der ersten For Schleife gesprungen.
AutoIt
Alles anzeigen#include <Array.au3> #include <ad.au3> #include <MsgBoxConstants.au3> local $is_member Local $aArray = IniReadSection("D:\Map.ini", "Groups") ;_ArrayDisplay ($aArray) ; Check if an error occurred. ;~ If Not @error Then ;~ ; Enumerate through the array displaying the keys and their respective values. ;~ For $i = 1 To $aArray[0][0] ;~ MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1]) ;~ Next ;~ EndIf _AD_Open() For $i = 1 To $aArray[0][0] $is_member = 0 $is_member = _AD_IsMemberOf($aArray[$i][1], @UserName) If $is_member = 1 Then Local $aArray_MAPDRIVE = IniReadSection("D:\Map.ini", $aArray[$i][1]) ;_ArrayDisplay ($aArray_MAPDRIVE) For $x = 1 To $aArray_MAPDRIVE[0][0] ;MsgBox(0,$is_member, $aArray_MAPDRIVE[$i][1]) $map_details = StringSplit($aArray_MAPDRIVE[$x][1],"|") ;_ArrayDisplay ($map_details) DriveMapAdd($map_details[2] & ":", $map_details[1]) Next EndIf Next _AD_Close()
gruß gmmg
-
mit in die Zeile vom Freigabepfad der die Ini schreiben
AutoIt
Alles anzeigen#include <Array.au3> #include <ad.au3> #include <MsgBoxConstants.au3> Local $aArray = IniReadSection("D:\Map.ini", "Groups") ;_ArrayDisplay ($aArray) ; Check if an error occurred. ;~ If Not @error Then ;~ ; Enumerate through the array displaying the keys and their respective values. ;~ For $i = 1 To $aArray[0][0] ;~ MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1]) ;~ Next ;~ EndIf _AD_Open() For $i = 1 To $aArray[0][0] $is_member = _AD_IsMemberOf($aArray[$i][1], @UserName) If $is_member = 1 Then Local $aArray_MAPDRIVE = IniReadSection("D:\Map.ini", $aArray[$i][1]) ;_ArrayDisplay ($aArray_MAPDRIVE) For $i = 1 To $aArray_MAPDRIVE[0][0] ;MsgBox(0,$is_member, $aArray_MAPDRIVE[$i][1]) $map_details = StringSplit($aArray_MAPDRIVE[$i][1],"|") ;_ArrayDisplay ($map_details) DriveMapAdd($map_details[2] & ":", $map_details[1]) Next EndIf Next _AD_Close()
INICode
Alles anzeigen[Groups] 1=Group1 2=Group2 3=Group3 4=Group4 [Group1] 1=\\server\freigabe1|X [Group2] 1=\\server\freigabe1|X 2=\\server\freigabe2|W 3=\\server\freigabe3|Z [Group3] 1=\\server\freigabe1|Z 2=\\server\freigabe2|M [Group4] 1=\\server\freigabe1|Z 2=\\server\freigabe2|M
bei deinem oberen Beispiel wird es komplizierter, wenn mehr als eine Freigabe verbunden werden soll ... zumindest sehe ich das so.
Gruß gmmg
-
genau so sollte es gehen...
AutoIt
Alles anzeigen#include <ad.au3> #include <Array.au3> #include <MsgBoxConstants.au3> Local $aArray = IniReadSection("D:\Map.ini", "Groups") _ArrayDisplay ($aArray) ; Check if an error occurred. ;~ If Not @error Then ;~ ; Enumerate through the array displaying the keys and their respective values. ;~ For $i = 1 To $aArray[0][0] ;~ MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1]) ;~ Next ;~ EndIf _AD_Open() For $i = 1 To $aArray[0][0] $is_member = _AD_IsMemberOf($aArray[$i][1], @UserName) If $is_member <> 1 Then ;MsgBox(0,"",$is_member & $aArray[$i][1]) Local $aArray_MAPDRIVE = IniReadSection("D:\Map.ini", $aArray[$i][1]) _ArrayDisplay ($aArray_MAPDRIVE) For $i = 1 To $aArray_MAPDRIVE[0][0] ; MAPDrive Next EndIf Next
im Anhang nochmal eine INI
-
@ Camulus: Ich würde das anderes herum aufziehen.
Alle Gruppen und LW je nach Gruppe in die Ini schreiben (siehe unten mal als Beispiel)
mit IniReadSection die Gruppen aus der Ini in ein Array lesen und danach per Schleife abarbeiten.
AutoIt
Alles anzeigen#include <Array.au3> Local $aArray = IniReadSection("D:\Map.ini", "Groups") _ArrayDisplay ($aArray) ;~ ; Check if an error occurred. ;~ If Not @error Then ;~ ; Enumerate through the array displaying the keys and their respective values. ;~ For $i = 1 To $aArray[0][0] ;~ MsgBox(0, "", "Key: " & $aArray[$i][0] & @CRLF & "Value: " & $aArray[$i][1]) ;~ Next ;~ EndIf For $i = 1 To $aArray[0] $is_member = _AD_IsMemberOf($aArray[$i], @UserName) If $is_member = 1 Then ;MsgBox(0,"",$is_member & $aArray[$i]) ;lese die entsprechende InISection und verarbeite die MAPDrive Anweisung ... das muss noch ergänzt werden :) EndIf Next
Ini
Code
Alles anzeigen[Groups] 1=Group1 2=Group2 3=Group3 4=Group4 5=Group5 6=Group6 [Group1] LW1 [Group2] LW1 LW2 LW3 [Group3] LW1 LW2
Gruß gmmgEdit: Skripcode formatiert (auto)Bert
-
cmd -> diskpart
List Disk
Select Disk 0 (Auswahl aus List Disk)
List PartitionWMIC /output:"c:\hdds.csv" DISKDRIVE LIST /Format:CSV
Gruß gmmg
-
Hallo Zusammen,
mit wmic ist das doch einfach herauszufinden
cmd -> wmic diskdrive list brief /format:list
oder mit Diskpart kann man sich die Infos auch ziehen.
cmd -> Diskpart "enter"
list volume "enter"Gruß gmmg
-
chip: wenn man RDP benutzt, nutzt mal zwanglläufig die Hardware dahinter, daher auch die Software die auf dem Server oder einem dafür bereitgestellten Client installiert ist. :o)
Gruß gmmg
-
Hallo Zusammen,
ich habe das so gemeint, wenn Excel auf dem Server installiert ist und man über Remotedesktop sich auf den Server verbindet, funktioniert es.
Mojo: Wenn du auf dem Server, auf den du dich per RDP (nicht Remoteapp) verbindest, das Excel über den Desktop starten kannst, sollte ein AutoIT Script da auch laufen
, vorrausgesetzt der Start wird nicht durch irgendwelche Regeln Blockiert bzw. nur bestimtme Software ist freigegeben.Gruß gmmg
-
Hallo Mojo,
wenn du Zugriff auf einem normalen Remotedesktop mit installiertem Excel hast wird die Excel UDF funktionieren.
Excel Shortcuts gibt es auch für die TABS, da deine Session aber nicht immer aktiv ist, wird das nicht gehen, wie du selbst schon festgestellt hast.
https://support.office.com/en-us/article/…ec-66924ea9b323
Gruß gmmg