Ich habe den Anhang jetzt neu hochgeladen! Siehe Post #1.
Beiträge von Oscar
-
-
Ich denke, dass das größte Problem die fehlenden Informationen über den Ist-Zustand sind.
Die meisten User werden wohl noch irgendwelche Backups ihrer Scripte auf der eigenen Festplatte besitzen, aber die große Frage ist ja, ob es sich lohnt, bereits jetzt alles nochmal wieder hochzuladen oder kommt noch ein "Rollback" der Forensoftware auf einen alten Stand?
Die meisten Probleme beim neu hochladen wird es wohl bei den Anhängen zu den Posts in "Hilfe und Unterstützung" geben. Da weiß man ja oft gar nicht ob und an welcher Stelle irgendwelche Scripte gepostet wurden.
Zudem waren diese Hilfe-Scripte (zumindest bei mir) oft nur temporäre lokale Dateien, von denen ich kein Backup mehr besitze.
Ein Verlust dieser ganzen Anhänge wäre somit quasi ein Neuanfang (die Suchfunktion wäre erfolg-/nutzlos für alle Ergebnisse vor der Umstellung).Ich kann durchaus verstehen, dass diese ganze Umstellung ziemlich viele Nerven gekostet hat und möglicherweise immer noch kostet, weil das nicht so reibungslos ablieft, wie man sich das wünschen würde.
Ich kann auch verstehen, dass Gun-Food nicht seine ganze Freizeit ausschließlich mit dem wieder geradebiegen der Forumsoftware verbringen möchte.
Es wäre aber schön, wenn es ab und zu Informationen über den momentanen Stand der Dinge geben würde. -
Und ich denke, Du solltest vor dem antworten mal auf das Datum des Threads schauen.
-
Auszug aus der AutoIt-Hilfe zu v3.3.10.0 :
Zitat_StringEncrypt() documentation has been removed. The function is still present in String.au3, but may be removed at a later date. Scripts should be updated to use the Crypt functions instead.Look at _Crypt_EncryptData() for an example of an alternative _StringEncrypt.
-
Zu deinem zweiten Script (_DownloadWithProgress), wird da eine Progressbar angezeigt?
Edit:
@Oscar Ich habe nun beide Scripte von dir ohne Änderungen getestet. Aber sie laden leider beide die Datei nicht herunter. Das erste Skript zeigt mir nur den ToolTip an der Maus mit ( 0 / 0 KB) und das andere hängt sich bei der Ausführung in der GUI auf.
Bei mir lädt er bei beiden die Datei runter und speichert sie im Scriptverzeichnis.
Welche AutoIt-Version benutzt Du?
Befindet sich das Script möglicherweise in einem schreibgeschützen Verzeichnis? -
Oder Du benutzt meine UDF "_DownloadWithProgress" (siehe Anhang! Die Datei muss sich im Scriptverzeichnis befinden):
[autoit][/autoit][autoit][/autoit][autoit]#include '_DownloadWithProgress.au3'
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Global $sURL = 'ftp://ftp.adobe.com/pub/adobe/reader/win/11.x/11.0.00/de_DE/AdbeRdr11000_de_DE.msi'
[/autoit]
Global $sDownloadDir = @ScriptDir
_DownloadWithProgress($sURL, $sDownloadDir) -
Die zweite Frage zuerst: Ja, Du hast Fehler gemacht! Es fehlt #include <FTPEx.au3> und Du musst die Variable $FileNAME auch mit einem Dateinamen füllen und die Handles solltest Du auch wieder schließen!
Aber um auch die erste Frage zu beantworten: Ja, es geht auch anders/leichter. Siehe hier:Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]#include <InetConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Misc.au3>
#include <WinAPIMisc.au3>$sFilePath = @ScriptDir & '\AdbeRdr11000_de_DE.msi'
[/autoit]
$sInetPath = 'ftp://ftp.adobe.com/pub/adobe/reader/win/11.x/11.0.00/de_DE/AdbeRdr11000_de_DE.msi'
$hDownload = InetGet($sInetPath, $sFilePath, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND)
$hDLL = DllOpen("user32.dll")
$iTimer = TimerInit()
Do
If TimerDiff($iTimer) > 250 Then
$iTimer = TimerInit()
ToolTip(_WinAPI_StrFormatKBSize(InetGetInfo($hDownload, $INET_DOWNLOADREAD)) & ' / ' & _WinAPI_StrFormatKBSize(InetGetInfo($hDownload, $INET_DOWNLOADSIZE)))
EndIf
Sleep(10)
If _IsPressed('1B', $hDLL) Then ExitLoop
Until InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE)
DllClose($hDLL)
InetClose($hDownload) -
Versuch das mal mit Errorhandling:
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]$sSourcePath = @ScriptDir & '\'
[/autoit]
$sDestinationPath = @ScriptDir & '\neu\'
$hSearch = FileFindFirstFile($sSourcePath & '*.txt')
If $hSearch = -1 Then Exit MsgBox(0, 'FileFindFirstFile', 'Fehler! Keine Datei gefunden!')
$sFilename = FileFindNextFile($hSearch)
If @error Then Exit MsgBox(0, 'FileFindNextFile', 'Fehler! Keine (weitere) Datei gefunden!')
ConsoleWrite($sFilename & @CR)
FileClose($hSearch)
FileMove($sSourcePath & $sFilename, $sDestinationPath) -
Wenn wirklich alle Daten so sind, wie in dem Beispiel, dann geht es so:
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]#include <Array.au3>
[/autoit]
$sFile = FileRead(@ScriptDir & '\from.txt')
$aData = StringRegExp($sFile, '(\d{2}\.\d{2}\.\d{4}).+(\d{7}).+(\d{3})', 3)
;~ _ArrayDisplay($aData)
$sOut = ''
For $i = 0 To UBound($aData) - 1 Step 3
$sOut &= $aData[$i] & @CRLF
$sOut &= $aData[$i + 1] & @CRLF
$sOut &= $aData[$i + 2] & @CRLF & @CRLF
Next
$hFile = FileOpen(@ScriptDir & '\ausgabe.csv', 2)
If $hFile <> -1 Then
FileWrite($hFile, $sOut)
FileClose($hFile)
EndIfWenn die Zahlen aber nicht immer 7stellig / 3stellig sind, dann vielleicht lieber so:
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]#include <Array.au3>
[/autoit]
$sFile = FileRead(@ScriptDir & '\from.txt')
$aData = StringSplit($sFile, @CRLF, 3)
;~ _ArrayDisplay($aData)
Global $sOut = '', $aTmp
For $sLine In $aData
If $sLine <> '' Then
$aTmp = StringSplit($sLine, '|', 2)
$sOut &= $aTmp[0] & @CRLF
$sOut &= $aTmp[2] & @CRLF
$sOut &= $aTmp[3] & @CRLF & @CRLF
EndIf
Next
$hFile = FileOpen(@ScriptDir & '\ausgabe.csv', 2)
If $hFile <> -1 Then
FileWrite($hFile, $sOut)
FileClose($hFile)
EndIf -
Ich denke, das sollte kein großes Problem darstellen. Kannst Du mal eine Beispieldatei hochladen?
-
Durch die Forumsumstellung sind die Anhänge abhanden gekommen.
Ich habe das mal neu hochgeladen (Post#1). -
Alle Beiträge sind doppelt vorhanden (einmal mit Text und den Antworten und einmal ohne Text)!
Einige Beiträge habe ich gelöscht, weil ich dachte, dass es sich um fehlerhafte Beiträge handelt, aber das ist bei allen Beiträgen so. -
Über den Sinn/Unsinn bestimmte (Bass-)Frequenzbereiche anzuheben kann man wohl ausgiebig streiten.
Wenn überhaupt würde es wohl in Form einer Dynamikkompression am Sinnvollsten sein. Also die lauten Passagen nicht anheben bzw. absenken und nur die leisen Passagen entsprechend anheben, um ein übersteuern (Clipping) zu verhindern.
Ob sich das aber mit AutoIt und BASS realisieren lässt, weiss ich nicht. -
Es geht nicht darum, dass ich Dich anmeckern will, sondern darum, dass Du nicht gleich schreibst was Du eigentlich vorhast.
Du verrennst Dich in Deinen Lösungsweg (der im übrigen nicht mal funktioniert) und dabei gibt es viel einfachere Möglichkeiten.
Zuerst mal:
Die Homepage, die Du da aufgetrieben hast, generiert die Uhrzeit per Javascript. Javascript ist aber eine Scriptsprache, die auf dem Clientrechner läuft.
Demzufolge ist das nicht die "Atomuhrzeit", sondern die Uhrzeit auf Deinem Rechner. Windows gleicht zwar standardmäßig die interne Uhrzeit mit einem NTP-Server ab, aber da kann es schonmal zu kleinen Abweichungen kommen.
Willst Du sehen wie groß die Abweichungen sind, wäre es einfacher sich die korrekte Uhrzeit selbst von einem NTP-Server zu holen.
Hier mal ein Script dafür:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Date.au3>
$time = _TimeSync()
MsgBox(0, '', 'Rechnerzeit:' & @TAB & _NowCalc() & @CRLF & 'Atomzeit: ' & @TAB & $time);**************************************************************************************************
[/autoit]
; Ab hier beginnen die Funktionen, zum holen der Zeit aus dem Internet (Quelle: http://www.autoitscript.com/forum/)
;**************************************************************************************************
Func _TimeSync()
Local $ntpServer = '1.de.pool.ntp.org'
UDPStartup()
Dim $socket = UDPOpen(TCPNameToIP($ntpServer), 123)
If @error <> 0 Then Return SetError(1)
Local $status = UDPSend($socket, MakePacket('1b0e010000000000000000004c4f434ccb1eea7b866665cb00000000000000000000000000000000cb1eea7b866665cb'))
;~ Local $status = UDPSend($socket, MakePacket('1b0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'))
If $status = 0 Then Return SetError(1)
Local $data = '', $a = TimerInit() ; Timer setzen, damit im Fehlerfall die Schleife abgebrochen wird
While $data = ''
$data = UDPRecv($socket, 100)
Sleep(100)
If TimerDiff($a) > 1000 Then ExitLoop ; Wenn Timer > 1sek. (Fehler), dann Schleife verlassen
WEnd
If $data <> '' Then
UDPShutdown()
Local $unsignedHexValue = StringMid($data, 83, 8); Extract time from packet. Disregards the fractional second.
Local $value = UnsignedHexToDec($unsignedHexValue)
Local $TZinfo = _Date_Time_GetTimeZoneInformation()
Local $TZoffset = -(UnsignedToLong($TZinfo[1]) + (UnsignedToLong($TZinfo[4]) * ($TZinfo[0] < 2)) + (UnsignedToLong($TZinfo[7]) * ($TZinfo[0] = 2)))
Local $UTC = _DateAdd('s', $value, '1900/01/01 00:00:00')
Return _DateAdd('n', $TZoffset, $UTC)
EndIf
SetError(1)
EndFunc ;==>_TimeSync
;**************************************************************************************************
Func MakePacket($d)
Local $p = ''
While $d
$p &= Chr(Dec(StringLeft($d, 2)))
$d = StringTrimLeft($d, 2)
WEnd
Return $p
EndFunc ;==>MakePacket
;**************************************************************************************************
Func UnsignedHexToDec($n)
Local $ones = StringRight($n, 1)
$n = StringTrimRight($n, 1)
Return Dec($n) * 16 + Dec($ones)
EndFunc ;==>UnsignedHexToDec
;**************************************************************************************************
; http://support.microsoft.com/kb/189323
; Gibt Die Zahl mit Vorzeichen zurück.
; Bei Fehler (kleiner 0 oder größer MAXINT_4) wird der übergebene Wert zurückgegeben und @error auf 1 gesetzt.
Func UnsignedToLong($value)
Local Const $OFFSET_4 = 4294967296
Local Const $MAXINT_4 = 2147483647
If $value < 0 Or $value >= $OFFSET_4 Then Return SetError(1, 0, $value) ;' Overflow
If $value <= $MAXINT_4 Then
Return $value
Else
Return $value - $OFFSET_4
EndIf
EndFunc ;==>UnsignedToLong
;************************************************************************************************** -
Edit:
Wenn ich das dann mit autoit ausführe, schreibt er mir dann in CMD-Fenster das er den befehl msg nicht kennt!?
Kann es sein, dass Du das Programm nachträglich irgendwohin installiert hast?
Such doch mal auf Deiner Platte danach und schreib, wo sich das Programm befindet (Pfad). -
Natürlich liegt es am Pfad:
[autoit]"C:\Users\@UserName\Desktop\Neuer Ordner\BestellformularVorlage"
[/autoit]
[autoit]
Du kannst nicht einfach das Macro "@UserName" in den String einfügen.
Entweder musst Du den String mit "&" zusammensetzen:
[/autoit]
$string = "C:\Users\" & @UserName & "\Desktop\Neuer Ordner\BestellformularVorlage"
ConsoleWrite($string & @CR)
[autoit]
oder die AutoIt-Option "ExpandVarStrings" auf "1" setzen:
[/autoit]
Opt("ExpandVarStrings", 1)
$string = "C:\Users\@UserName@\Desktop\Neuer Ordner\BestellformularVorlage"
ConsoleWrite($string & @CR)
im letzteren Fall musst Du aber nach dem Macro noch ein "@" setzen. -
Das Programm ("msg.exe") gibt es in der Home Premium Version von Win7 gar nicht: http://windows-hilfe-forum.de/f32/unter-wind…-1083/#post5403
-
Ja, ok! Kompiliert geht's nicht, aber wenn Du das Script mit einbindest ("#AutoIt3Wrapper_Res_SaveSource=y"), dann geht es schon:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_SaveSource=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs Changelog:
+ Version 1.0.00 bis 1.0.12
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad+ Version 1.0.13 bis 1.0.26
[/autoit] [autoit][/autoit] [autoit]
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad+ Version 1.0.27 bis 1.0.38
[/autoit] [autoit][/autoit] [autoit]
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad+ Version 1.0.39 bis 1.0.43
[/autoit] [autoit][/autoit] [autoit]
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad
#ceGlobal $sChangelog = StringRegExpReplace(FileRead(@ScriptFullPath), '(?i)(?s).*?#cs(.+?)#ce.+', '$1')
[/autoit]
MsgBox(0, 'Changelog', $sChangelog) -
Ja, das ist möglich:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs Changelog:
+ Version 1.0.00 bis 1.0.12
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad+ Version 1.0.13 bis 1.0.26
[/autoit] [autoit][/autoit] [autoit]
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad+ Version 1.0.27 bis 1.0.38
[/autoit] [autoit][/autoit] [autoit]
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad+ Version 1.0.39 bis 1.0.43
[/autoit] [autoit][/autoit] [autoit]
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- afclkjafcla löasfpaosfdnw asoidu
- adad jksdjasfda wedada92 a
- asfdacajfztai aofdaiwrqn
- acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
- asfcaf adalksdha aspfdouad
#ceGlobal $sChangelog = StringRegExpReplace(FileRead(@ScriptFullPath), '(?i)(?s).*?#cs(.+?)#ce.+', '$1')
[/autoit]
MsgBox(0, 'Changelog', $sChangelog) -
Nee funzt nicht! Bitte um Script!
Edit:
Achso, es geht gar nicht um ein eigenes Script, sondern um "msg.exe" von MicroSoft.
Aber was soll an "funzt nicht..." eine Fehlerbeschreibung sein?