hi,
ne das hilft leider nicht.
mfg Taucher
hi,
ne das hilft leider nicht.
mfg Taucher
Hi@all
ich habe da ein kleines Denkproblem.
Mein Script steuert per Dienst zwei andere Programme. Nun kann es unter Umständen vorkommen das ein Programm ein Fehler meldet(meist das Faxprogramm) Damit aber nicht alles durch einander kommt wollte ich eine
Schleife mit einer Zeitabfrage einbauen, damit das Programm weiter kommt. Nun steht da aber im Elsezweig WinWaitActive. Somit kommt die Schleife nicht mehr zum tragen, das Programm kommt dann auch nicht weiter
Diese WinWaitActive benötige ich, da dort wenn alles gut geht eine Msgbox kommt die bestätigt werden muss.
While 1
If _Timer_Diff($starttime) > 180000 Then
For $clo = 1 To $client_close[0][0]
$PID = ProcessExists($client_close[$clo][1])
If $PID Then ProcessClose($PID)
Sleep(450)
Next
ExitLoop
Else
WinWaitActive("mbs", "fertig")
Send("{ENTER}")
Sleep(150)
Run($activfax)
Sleep(1500)
Send("!{F4}")
Sleep(1500)
Send('{ENTER}')
Sleep(1500)
WinActivate("123-mbs", "Navigationsbereich")
Send("!{F4}")
EndIf
WEnd
hat wer eine Idee wie ich es hinbekommen kann, das die Zeitschleife trotzdem funzt?
MFG Taucher
hi leute
habe ein kleines Problem mit _ftpdelfile() Anbei der entscheidene Auszug aus meinem Script.
Wenn ich an die Löschfunktion komme wird sowohl auf dem ftp Server als auch auf dem Lokalen Rechner die Datei weg gelöscht. Wie kann ich das Ändern? Habe zusätzlich schon den Ausgangsordner angegeben.
$dll = DllOpen("wininet.dll")
$Open = _FTPOpen("Colt_FTP")
If @error Then MsgBox(64, "Verbindung", "ftpopen fehlgeschlagen")
$username = IniRead($file, "Benutzer", "002", "")
$pass = IniRead($file, "PW", "002", "")
$Conn = _FTPConnect($Open, $server, $username, $pass)
If @error Then MsgBox(64, "Verbindung", "ftpConnect ch fehlgeschlagen")
_FtpSetCurrentDir($Conn, IniRead($file, "Remotefolder", "004", ""))
If @error Then MsgBox(64, "Verbindung", "ftpSetCurrentDir fehlgeschlagen")
$INTERNET_FLAG_RELOAD = 0x80000000
$ftpfileslist = _FTPFilesListToArray($Conn, 2, $INTERNET_FLAG_RELOAD)
_FileWriteFromArray(IniRead($file, "DECH", "002", ""), $ftpfileslist, 1)
Sleep(2000)
_DECH()
Sleep(9000)
_FileReadToArray(IniRead($file, "DECH", "003", ""), $aColt)
For $t = 1 To $aColt[0]
If _FTPGetFile($Conn, $aColt[$t], IniRead($file, "Laufwerke", "001", "") & '\response\' & $aColt[$t]) = 1 Then
_ftpdelfile($Conn, $aColt[$t])
If @error Then MsgBox(64, "Verbindung", "Löschen fehlgeschlagen")
Endif
Next
Sleep(2000)
#cs
FileDelete(IniRead($file, "DECH", "003", ""))
FileDelete(IniRead($file, "DECH", "002", ""))
#ce
_FTPClose($Conn)
_FTPClose($Open)
DllClose($dll)
VG
Taucher
Hallo Leute,
ich kämpfe heute schon den gesamten Tag mit einem Problem. Ich habe auf einem FTP Server Vollzugriff und möchte aus einem Unterordner eine bestimmte Datei ausschneiden. Der Zugriff auf den Server läuft. Ich sehen alle Ordner/Dateien. Nur das mit dem Ausschneiden will mir nicht gelingen.
Habe es mit _FtprenameFile versucht, was irgendwie nicht will.
Eine andere Variante währe die Datei zu laden und dann zulöschen. Das geht, wollte aber einen Schritt rauslassen.
Habt Ihr eine Idee wie ich es bewerkstelligen kann?
MFg Taucher
hi,
danke, das habe ich verstanden. Auch der Link hat den entscheiden Durchbruch gebracht.
Nach Einbau von $INTERNET_FLAG_RELOAD = 0x80000000
ging es.
Mfg
Thomas
hi,
ist dieses nicht das gleich? =>$Ftpc = _FTPClose($Open)
wenn nicht würde es sich erklären
taucher
hi leute,
hat wer eine Idee zu meinem Problem?
taucher
hi leute,
#include<ftp_ex.au3>
#include<file.au3>
$file="C:\Test\test.ini"
$var = IniReadSection($file, "Benutzer")
$vas = IniReadSection($file, "PW")
For $i = 1 To $var[0][0]
$dll = DllOpen("wininet.dll")
$Open = _FTPOpen("Colt_FTP")
If @error Then MsgBox(64, "Verbindung", "ftpopen fehlgeschlagen")
$username = $var[$i][1]
$pass = $vas[$i][1]
MsgBox(0, "", $server & ' ' & $username & ' ' & $pass)
$Conn = _FTPConnect($Open, $server, $username, $pass)
If @error Then MsgBox(64, "Verbindung", "ftpConnect fehlgeschlagen")
_FtpSetCurrentDir($Conn, "cdr")
If @error Then MsgBox(64, "Verbindung", "ftpSetCurrentDir fehlgeschlagen")
$ftpfileslist = _FTPFilesListToArray($Conn, 2)
_ArrayDisplay($ftpfileslist, "")
Sleep(15000)
$Ftpc = _FTPClose($Open)
DllClose($dll)
Next
möchte von einem FTP Server mit zwei gesonderten ACC Dateien laden. Dazu habe ich das eine Auszug aus dem Script angehängt wie ich es mir vorstelle.
Das Script verbindet sich auch soweit. Das habe ich durch ein _arraydisplay() überprüft. Der zweite Acc ist durch ein gesonderten Benutzernamen/Passwort bei gleicher IP Adresse getrennt. Augenscheinlich geht er in den zweiten Acc. Im _arraydisplay() ist aber immer der Inhalt des ersten Acc sichtbar.
Geht das überhaupt was ich vorhabe? Was kann/muss ich ändern das es geht?
Taucher
hi,
danke, hatte mich aber schon mit der Hilfe beschäftigt und bin mit
[autoit]$taucher = _StringBetween($szCompareText, '_', '_', -1, 1)
[/autoit]
zum Ziel gekommen.
Vielleicht sollte ich vorher doch mal die Hilfe welzen. :wacko:
Mfg taucher
Hi,
frohe Ostern noch ins Forum.
Ich habe ein Problem, wo ich nicht so recht weiterkomme bzw. auch nicht den rechten Lösungsansatz habe.
Ausgangssituation:
2 txt Dateien (siehe Anhang)
Es soll überprüft werden ob die in der 2.txt enthaltene Nummer in der 1.txt drin ist. Wenn dies der Fall ist dann soll die gesamte Zeile mit dieser Nummer aus der 1.txt entfernt werden.
Die Nummer steht in der 1.Txt in der Zeile in diesem Aufbau "\D16802_0000709822_200903.PDF".
Wie müsste der lösungsansatz asusehen
MFG Taucher_2006
hi,
von gestern zu heute? Nur in der Domaine ohne Internetzugang verbunden? Ich kann es nicht glauben das es jetzt ein Virus sein soll.
taucher
Hi,
heute scheint es ja so als sei wieder einiges in der Windows Landschaft ge ändert worden. Wollte gerade ein Script testen aber leider kam ich nicht so weit. Bei mir hat TrendMicro(SMB Version) den AutoIT3Wrapper und die AutoIT3Wrapper_Gui als Virus erkannt. Angeblich soll der Worm_Autorun.vn enthalten sein. Hatte jemand auch schon mal diese Ereignis? Ich kann jetzt nur AutoIt neuinstallieren. Hat wer ne Idee wie das in der Zukunft umgangen werden kann?
Taucher
hi,
hier versuche das mal.
#Include<file.au3>
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
;##################################
; Include
;##################################
#Include<file.au3>
#include<Date.au3>
#include<String.au3>
;##################################
; Variables
;##################################
$user = ""
$pw = ""
$s_SmtpServer = ""
$s_FromName = ""
$s_FromAddress = ""
$s_ToAddress = ""
$s_Subject = ""
$as_Body = ""
$s_AttachFiles = ""
$s_CcAddress = ""
$s_BccAddress = ""
$s_Username = $user
$s_Password = $pw
$IPPort = 25
$ssl = 0
;~ $IPPort=465
;~ $ssl=1
;##################################
; Script
;##################################
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$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 & " Rc:" & $rc)
EndIf
;
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
; Com Error Handler
Func MyErrFunc()
$HexNumber = Hex($oMyError.number,
$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
TAucher
hi,
was möchtest du denn erreichen? wie weisst du die ip, wo die mail adresse gehostet ist? oder möchtest du direkt etwas an einen bestimmten server schicken?
taucher
hi,
ich denke du wirst einen benötigen. Sonst musst du im script ne dns abfrage einbauen ob die adresse überhaupt existent ist.
Taucher
hi,
hat hier wer ne Idee
Taucher
hi
versuche es mal so mit
$meinezahl = 1234567890
[/autoit] [autoit][/autoit] [autoit]$S =StringFormat ( "$meinezahl = %.2f" ,$meinezahl)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0, "Result", $S)
[/autoit]
Taucher
Hi,
ich habe in meinem Script das als Dienst läuft die aufgeführten Variablen eingefügt. Hierbei wird beim Start des Script eine Mail mit einem bestimmten Body verschickt. Dieses wird auch nach erfolgreichem Abschluss gemacht. Doch leider geschieden das nicht so wie es angedacht ist.
@neu eingefügt=>
Der Inhalt von $s_Subject wird aus einer *.ini geholt. In diese wird zum Start des Script geschrieben und zwar das erste Subject.
IniWrite($file, "005", "5", "Tägliche Datensicherung vom " & _Now() & " hat begonnen.")
[/autoit]Doch dieses Subject wird nicht ausgelesen, sondern es wird das Subject genommen der beim Dienst start benutzt wurde.
Das gleich geschieht mit $as_Body & $s_AttachFiles zum einen wird nicht der Body geholt und zum anderen nicht der entsprechende Anhang.
<=
Ansonsten wird alles ordnungsgemäß abgearbeitet. Dh die Mail wird ordnungsgemäß versendet. Wo liegt mein Fehler oder wie muss es besser gemacht werden.
Taucher
#include "date.au3"
#include "misc.au3"
#include "inet.au3"
#include "file.au3"
#include "Array.au3"
#include "String.au3"
#include "ServiceControl.au3"
;
$file = "C:\ADTG\Datensicherung\nav.zup"
$vas = "C:\ADTG\Datensicherung\CDR.ini"
$mal = "C:\ADTG\Datensicherung\Mail.ini"
Global $pathMain = IniRead($file, "002", "1", "Nichts gefunden")
Global $pathCompare = IniRead($file, "002", "2", "Nichts gefunden")
Global $mainFile_A
Global $compare_A
;Mail
Global $oMyRet[2]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
;Mail
$iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
$sNewDate = _DateAdd('d', -1, _NowCalcDate()); ein Tag
$sNewDate = StringReplace($sNewDate, "/", ".")
$sNewData = _DateAdd('d', -2, _NowCalcDate()); zwei Tage
$sNewData = StringReplace($sNewData, "/", ".")
$sNewStart = _DateAdd('d', -3, _NowCalcDate()); drei Tage
$sNewStart = StringReplace($sNewStart, "/", ".")
$Ti = @HOUR & ":" & @MIN & ":" & @SEC
$PROTFILE = IniRead($file, "006", "8", "Nichts gefunden")
$fehler = IniRead($file, "006", "9", "Nichts gefunden")
$var = IniReadSection($vas, "001")
$ftp = IniRead($vas, "004", "1", "Nichts gefunden")
$user = _StringEncrypt(0, IniRead($file, "001", "1", "Nichts gefunden"), "pass", 1)
$pw = _StringEncrypt(0, IniRead($file, "001", "2", "Nichts gefunden"), "pass", 1)
$user_network = _StringEncrypt(0, IniRead($file, "001", "3", "Nichts gefunden"), "pass", 1)
$pw_Network = _StringEncrypt(0, IniRead($file, "001", "4", "Nichts gefunden"), "pass", 1)
;Mail
$s_SmtpServer = IniRead($file, "005", "1", "Nichts gefunden")
$s_FromName = IniRead($file, "005", "2", "Nichts gefunden")
$s_FromAddress = IniRead($file, "005", "3", "Nichts gefunden")
$s_ToAddress = IniRead($file, "005", "4", "Nichts gefunden")
$s_Subject = IniRead($file, "005", "5", "Nichts gefunden")
$as_Body = IniRead($file, "007", "1", "Nichts gefunden")
$s_AttachFiles = IniRead($file, "005", "7", "Nichts gefunden")
$s_CcAddress = ""
$s_BccAddress = IniRead($file, "005", "6", "Nichts gefunden")
$s_Username = $user
$s_Password = $pw
$IPPort = 25
$ssl = 0
;
While 1
If IniRead($file, "003", "Zeit", "Nichts gefunden") = _NowTime() Then
Sleep(1500)
IniWrite($file, "005", "5", "Tägliche Datensicherung vom " & _Now() & " hat begonnen.")
Sleep(1500)
IniWrite($file, "005", "7", "")
Sleep(1500)
IniWrite($file, "006", "8", StringLeft(IniRead($file, "006", "8", "error"), 3) & "Log\Ivent_" & _NowDate() & ".prob")
Sleep(30000)
$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)
Sleep(1500)
Sleep(60000)
IniWrite($file, "005", "7", IniRead($file, "006", "8", "nichts gefunden"))
Sleep(1500)
IniWrite($file, "005", "5", "Tägliche Datensicherung vom " & _Now() & " wurde beendet.")
$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)
EndIf
sleep(150)
WEnd
;
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
; Com Error Handler
Func MyErrFunc()
$HexNumber = Hex($oMyError.number,
$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
hi,
das war schon ein echtes Beispiel. Es will auch so nicht gehen.
Ich möchte ja eigentlich nur wissen welche Datei fehlt.
Taucher
hi,
habe einen Ordner mit x Dateien die einen fortlaufenden Dateinamen habe zb. BK000461.txt..BK000590.txt. Nun wollte ich den Höchsten im Array ermitteln. Doch irgendwie habe ich eine Brett vor dem Kopf.
[autoit]Global $string = _FileListToArray("G:\12 2007\", "*.txt")
_ArrayDisplay($string, "Array", 10)
MsgBox(64,"Min",_ArrayMin($string,1))
MsgBox(64,"Max",_Arraymax($string -1,1))
Leider scheitert es momentan am Arraymax. Das Ziel der Veranstaltung soll sein das ich ermiiteln kann welche des laufenden Dateinamen fehlt.
Taucher