Hallo,
event. könnte Dir dies weiterhelfen für Dein Vorhaben.
Excel: xlsxreadtoarray
CSV: _FileReadToArray
Word: reading-docx-files
Hallo,
event. könnte Dir dies weiterhelfen für Dein Vorhaben.
Excel: xlsxreadtoarray
CSV: _FileReadToArray
Word: reading-docx-files
Hallo Oscar,
zunächst erst einmal vielen Dank für Deine Hilfe und für die klasse Arbeit, das Skript gleich als komplett fertige Programm-Lösung hier anzubieten. Zum einen bin ich Dir sehr dankbar darüber, da ich es in der Form wie Du es gecoded hast, nicht einfach so hinbekommen hätte, andererseit danke ich Dir für das kommentieren der Befehle und deren logischen Ablauf. Ich denke dass das Skript nicht nur von mir zukünftig eingesetzt werden wird. Ich kann auf jeden Fall daraus wieder vieles lernen.
Eine kleine Spende habe ich von meinem Privatkonto an das Forum überwiesen. Es sollte auf jeden Fall mehr Geld sein und steht in keinem Verhältnis zu Deiner Mühe. Bitte entschluldige das bereits im Voraus. Leider kann die Firma in der ich arbeite, keine Spenden ausstellen. Das hat Gründe über die ich aber hier, nicht öffentlich diskutieren kann.
Ich habe auf Deiner privaten Internetseite vergeblich nach einem Spendenkonto gesucht. Daher ging die Spende tatsächlich an den Betreiber des Forums, was für mich auch vollkommen ok ist, jedoch hätte ich Dir selbst auch gerne eine kleine Summe für Deine Mühe überwiesen.
Auf jeden Fall danke ich Dir und auch den anderen Helfern sowie den Betreibern des Forum sehr für die ganze Unterstützung im Namen aller privaten oder gewerblichen User hier. Auch wenn es manchmal bei ein paar Profis scheppert und außer denen keiner kapiert um was es geht, seid ihr ein klasse Haufen. Respekt!
Es ist klasse von Dir dass Du mir hilfst. Vielen Dank!
Ohjemine, also doch wieder zu hoch für mich. Ich danke für Deine Erklärungen, doch hinbekommen werde ich das alleine nicht. Hab' mir das aiver Weise wieder viel einfach vorgestellt. Würdest Du mir bitte helfen?
Da hab' ich wohl was falsch verstanden. Die Schleife, so dachte ich soll die Processorlast minimieren. Mein Fehler. Jetzt ist klar, dass das Skript so wie es jetzt ist, gar nicht aus der Schleife herauskommt.
Ist der Rest vom Code soweit ok oder sollte ich noch etwas berücksichtigen?
Entschuldigt den Doppelpost:
Bei meinem Skript gibt es wohl einen Fehler, da die Datei vom Verteiler-PC nicht in den Netzwerkpfad kopiert/verschoben wird. Was mache ich falsch?
#include <Date.au3>
#include <WinAPIFiles.au3>
#include <FileDeleteafterXDays.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=NWC.exe
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Comment=Start NetWorkCopy
#AutoIt3Wrapper_Res_Description=Start NetWorkCopy
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=x
#AutoIt3Wrapper_Res_Language=1031
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
Opt('MustDeclareVars', 1)
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
Global $sSourceDir1, $sSourceDir2, $sSourceDir3, $sSourceDir4, $sSourceDir5, $sSourceDir6, $sSourceDir7, $sSourceDir8, _
$DestDir1, $DestDir2, $DestDir3, $DestDir4, $DestDir5, $DestDir6, $DestDir7, $DestDir8
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
While Sleep(200)
WEnd
; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
$sSourceDir1 = ("c:\scanner\Abteilung1")
$DestDir1 = ("m:\Verzeichnis\U-Verzeichnis\U-Verzeichnis\U-Verzeichnis\Scans")
If Mod(@MIN, 2) = 0 Then FileMove($sSourceDir1, $DestDir1, 1) ;alle 2 Minuten $sSourceDir1 nach $DestDir1 verschieben.
If Not _WinAPI_FileInUse($sSourceDir1) Then FileMove ($sSourceDir1, $DestDir1, 1) ;wenn eine Scan-Datei noch in Benutzung ist, dann warte mit dem verschieben bis die Datei fertiggestellt wurde.
_FileDeleteAfterXDays($DestDir1, 30) ; alle Dateien in "$DestDir", die älter als 30 Tage sind, löschen. Include von Oscars Funktion.
Alles anzeigen
PS: Die Netzwerkordner sind alle verbunden. Berechtigungen zum schreiben im $DestDir1 hat der angemeldete User auf dem Verteiler PC auch.
Vielen Dank für die Funktion und Beispiele. Das bringt mich sehr gut weiter.
Nun ja, weil ich eben mit dem Beispiel von _WinAPI_FileInUse nichts anfangen kann.
#include <WinAPIFiles.au3>
Local $hFile = FileOpen(@ScriptFullPath)
ConsoleWrite(@ScriptName & ' in use: ' & _WinAPI_FileInUse(@ScriptFullPath) & @CRLF)
FileClose($hFile)
ConsoleWrite(@ScriptName & ' in use: ' & _WinAPI_FileInUse(@ScriptFullPath) & @CRLF)
Ich muss ja alle Dateien vom Scan Verteiler-PC in den Netzwerkordner kopieren, bis auf die Dateien, die noch in Benutzung sind. Dieses Vorhaben kann ich aus der Hilfe nicht ableiten. Darum wäre ich für ein Beipiel sehr dankbar.
Bei FileGetTime fragte ich, ob's der richtige Weg ist oder ob es jemand anders lösen würde. Klar, würde ich mich auch hier um ein kleines Beispiel freuen.
Super, die Ideen sind prima.
Vielen Dank.
Allerdings wird es mit der Umsetzung bei beiden Punkten ohne Beispiel bei mir noch hapern.
Wäre zum löschen der Inhalte des Netzwerkordners FileGetTime der richtige Weg?
Zu _WinAPI_FileInUse habe ich gar keinen Plan.
Wär' klasse, wenn Du zu den beiden Punkten noch ein kleines Beispiel posten würdest.
Hallo,
wir haben bei der Arbeit mehrere Kopierer/Scanner. Auf diesen Geräten wird unregelmäßig viel eingescannt. Scan to Mail scheidet aus, da viele Scanns über 10MB Größe haben. Nun habe ich die Scan-Maschinen per Interface so konfiguriert, dass die Maschinen auf einen PC (Verteiler der Scanns) zugreifen und jeweils die Scanns (.pdf & .jpg)in definierte Ordner (Abt.1,2,3,4,5,6,7 usw.) kopiert. Von dem Verteieler-PC werden dann die Scans alle 2 Minuten per Batch und Windows-Aufgabenplaner in bereits definierte Netzlaufwerke verschoben.
Nun möchte ich gerne per AutoIt ein Script schreiben, welches genau diese Aufgabe übernimmt.
Das kopieren der Dateien bekomme ich mit FileCopy hin. Alle 2 Minuten kopieren würde ich in einer Schleife mit If Mod(@MIN, 5) = 0 Then Filecopy in den Griff bekommen ,wenn keiner von Euch eine sinvollere Idee hat. Somit fallen Batch und Aufgabenplaner weg. Den abteillungsweise Netzwerkordner alle 30 Tage leeren ab Scriptstart habe ich noch keine Idee. Event. wisst ihr wie das gehen könnte.
Jetzt aber das Problem, für dessen Lösung ich Eure Hilfe auf jeden Fall benötige.
Die Scanmaschinen generieren im Zielpfad direkt nach Scanbeginn damit, die Scandatei zu erstellen. Das lässt sich nicht ändern. Leider. Weil wenn ein Benutzer 500 Seiten in Farbe einsgecannt, geht er wieder an den Arbeitsplatz und denkt dass das Dokument schon ferig eingescannt und fertiggestellt ist, da er ja schon die Datei sieht, welche über den Scan Verteiler-PC in das Abteilungsverzeichnis gewandert sind. Beim öffnen des Dokumentes fehlt dann entweder die Hälfte des Inhalts und das schlimmste, die Typen benennen die unfertige Datei schon um, bevor der Scanner den Schreibvorgang abgeschlossen hat. Daraus resultiert dann des öfteren ein Chaos. Als Hinweis muss ich sagen, dass keine temporäre Datei on den Scanmaschinen angelegt wird, die man abfangen könnte.
Wie kann ich bwerkstelligen, dass erst dann, wenn die Scandatei im Verteiler-PC fertiggestellt ist, in den Abteilungsordner verschoben und dem Benutzer sichtbar angezeigt wird. Eine schwierige Frage die ich ohne Kristallkugel nicht lösen könnte. Vielleich hat aber jemand von Euch ein ähnliches Problem schon gelöst und kann mir weiterhelfen.
Ich freue mich über jeden Vorschlag, sei er noch so abwegig.
Ich hoffe ich muss mir keine sorgen machen, dass mich da jemand haftbar machen will^^
Genau hier sind wir bei meiner Frage angelangt.
(Aber mal ehrlich: Wenn die meine Software benutzen sind sie selber Schuld. Ich biete sie nur an)
Richtig. Mal angenommen: Du bietest sie an, jemand der Dir nicht wohl gesonnen ist (event. eine große Firma) behauptet nun per Anwalts-Einschreiben, dass durch den Einsatz Deiner Software leider ein Schaden durch Serverausfall, Clientabsturz oder dadurch bedingt, Datenverlust oder immense Unkosten entstanden sind. Diese Unkosten möchte die Firma durch Dich erstattet haben. 24.000 €.
Was machst du dann?
Genau das ist ja der Punkt. Warum also einen Killswitch einbauen, statt dass das Programm eingebaute Fallback Funktionen hat, wodurch es merkt ob es noch lauffähig ist, oder nicht?
Würdest Du mir das näher erklären wie ich eine Fallback Funktion einbaue, welche merkt, ob die Software noch lauffähig sein soll, oder nicht
Der Schalter ist nicht gerade trickreich, einen Weg ihn zu umgehen kann man super einfach finden...
Sicher kann ein erfahrener Programmierer wie Du, eine mit AutoIt erstellte Exe event. dekompilieren oder mit anderen Tools (die von mir beschriebene Codezeilen und Wege) herausfinden, mit welchen Instrumenten eine Abschaltung der Software, die vom Entwickler geplant ist, umgangen werden kann. Und genau hier ist wiederum ein Lizenzvertrag notwendig, der gleichfalls mit anderen Lizenzbestimmungen zusammen, genau dies untersagt. An dieser Hilfestellung haben mir bereits Lottich, Kanashius und Chesstiger sehr geholfen.
Um auf das Zitat zurückzukommen: Gib' mir bitte (wenn's denn so einfach ist einen Weg zum Umgehen des Schalters zu finden) einen Tip:
a) Wie er umgangen werden kann (denn einmal online gehen reicht aus, damit er wieder aktiv wird)
b) Wie eine Abschaltung besser zu organisieren wäre (event. mit Reg.-Einträgen?).
Ich bin mir sicher, dass Deine Hilfe in diesem Fall für viele mitlesende Entwickler sehr interessant sein könnte.
Darf man mal das Programm sehen, um das es sich handelt?
Bei so einem Aufgebot muss das ja mächtig gewaltig sein!
Genau hier klafft IMHO eine Lücke der meisten Freewareanbieter auf. Es ist ganz egal, welche Software Du oder ich oder jemand anderes anbietest. Sei sie klein oder komplex. Der Zweck spielt keine Rolle. Freeware ist nicht haftungsfrei! Wenn jemandem Schaden durch Deine Software entsteht, kann/wird er versuchen, den Schaden der durch Deine Software entstanden ist, wieder von Dir einzufordern. Es gibt verschiedenste Modelle und Methoden von Lizenzierungstexten oder oder Lizenzverträgen oder von AGB, die eine wichtige Rolle zum Datenschutz und Urheberrecht (Schutz vor geistigem Eigentum) und besonders zur Haftung wichtige Rollen spielen.
Daher reduzieren die meisten Freeware-Entwickler das Haftungsrisiko, indem Sie die Nutzung von ihrer Software für kommerzielle Zwecke verbieten oder schreiben, dass dann ein separater Lizenzvertrag geschlossen werden muss. Im Haftungsfall ist für einen privaten Kläger ein wesentlich geringerer Schadensersatz gegeben.
Ich glaube, wenn du eine EULA schreibst, die akzeptiert werden muss und du darin auf deinen "Abschalter" hinweist, solltest du vor Klagen sicher sein.
Das was Lottich geschrieben hat stimmt absolut und muss zusätzlich vom Benutzer nachweisbar akzeptiert werden (geht eigentlich nur mit einem Installerverfahren). Und das nicht nur bei einem Abschalter. Oder meist Du wirklich, es reicht schon aus, wenn eine entsprechende Lizenzdatei Deiner Software im ZIP-Paket enthalten ist? Nach geltendem Recht reicht es eher nicht aus (nachdem was ich recheriert habe)! Nach geltendem Recht muss der Benutzer "mit -ich akzeptiere-" die Lizenz nicht nur als gelesen, sondern als akzeptiert bestätigen. Und nur dann, wenn auch noch der Inhalt des Lizenzvertrages entsprechend gut formuliert ist und das wesentliche nach geltendem Recht abdeckt, bist Du relativ vor Klagen Dritter sicher.
FB scheint in GDI ausgereifter zu sin. Aber was macht den Unterschied aus? Durch was ist das bedingt? Auf jeden Fall ist das sehr faszinierend.
Nachtrag: alpines hatte schneller eine mögliche Erklärung als ich die Frage fertig
[Offtopic]
... mit FB "Particles Mouse Attraction" zu spielen macht mir echt Spass. Ein echter Pokemon Killer.
Jetzt noch Zimtsternfressende Monster in das Spiel einbauen und Punkte sammeln lassen. Ein neuer Name wie "Startransformer" und Du kannst berühmt werden.[/Offtopic]
Danke Dir für den sehr guten Hinweis und den Link. Das muss ich mir mal alles in Ruhe anschauen.
Wenn ich aber diesen GNU Dschungel sehe, wird mir speiübel und mir wird klar, warum es viele gut bezahlte Anwälte im Medienrecht gibt.
An und für sich wäre ein guter Lizenzgenerator oder ein Lizenzberater für Software in DE eine echte Marktlücke. Einen nach aktuellem Lizenzrecht funktionierenden Freeware Lizenzgenerator hab' ich nicht gefunden. Vor allem wenn ich eine rein deutschsprachige Software programmiere benötige ich einen nach deutschem Recht gültige Lizenz, oder ist das alles international zu bewerten?
Statt InetGet würde ich dir aber InetRead empfehlen
Stimmt. Danke für den Tip.
Bei Freeware kann man nicht erwarten, dass keine Fehler auftreten.
Diese Meinung vertrete ich auch. Dennoch, schon alleine die Zeit, welche eine Software auf dem Markt ist, kann zu Fehlfunktionen führen. Siehe XP > Win10
Einen "Nach Updates suchen"-Button finde ich dann sehr nützlich.
Das ist ein sehr guter Tip.
Bleibt nur das blocken für alle Programme, denen es nicht erlaubt wird
Ich denke, der Regeluser wird es nicht merken, wenn eine Datei abgefragt wird. Grundsätzlich gebe ich Dir vollkommen recht.
Da bei einer Freeware kein Kauf statt findet, sollte es ausreichen, dass du während der Installation ausdrücklich darauf hinweist, dass dein Programm über eine Abschaltfunktion verfügt.
Ok. Das brigt mich weiter. Das heißt, dass angebotene Downloads in einem Zip-Paket wegfallen werden und ein Installer dafür sogen muss, dass bei der Installation der Software die Benutzer mit einem Haken "ich habe gelesen und stimme zu" einen Lizenzvertrag akzeptieren müssen oder die Software nicht nutzen können.
Danke für Deine Mühen.
Ich glaube, wenn du eine EULA schreibst, die akzeptiert werden muss und du darin auf deinen "Abschalter" hinweist, solltest du vor Klagen sicher sein.
Wobei dann die Herausforderung in einer wasserdicht formulierten EULA besteht.
Vielen Dank für Eure Antworten.
Eine von uns produzierte EULA oder ein Lizenzvertrag hat in DE Gültigkeit, event. in Europa. Aber der Rest? Siehe dieses Beispiel bei Sysinternals. Klar, man kann einen Lizenzvertrag als .txt zu seiner Software zufügen und natürlich auch von einem Anwalt bedingt gültige EULA's schmieden lassen. Aber ganau hier blickt doch kein Mensch mehr durch. Das Netz ist voll mit solchen Fragen. Und irgendwas vergisst man immer in einem Lizenzvertrag oder in einer EULA, wenn es nicht professionell von einem Anwalt für Medienrecht für viel Geld und individuell für die Software maßgeschneidert wird. Und wer will das schon für seine Software, die er für lau zum Download anbietet machen und bezahlen.
Bitte nicht falsch verstehen. Ich bin wirklich kein Korintenkacker oder ähnliches. Und es geht auch nicht nur um meine bislang programmierte Software. Mir geht es vor allem als Familienvater gewissermaßen um bestmögliche Risikominimierung.
Unser Rechtssystem ist schwierig. Von Europäischen oder internationalem Recht ganz zu schweigen. Ja und Software, insbesondere international gehaltene oder angebotene Freeware-Software kann brutale Auswirkungen haben.
Stellt Euch folgendes Beispiel vor: Ihr habt eine richtig geile Software zur Imageerstellung für Server und Clients entwickelt, welche beispielsweise auch von Firmen eingesetzt wird. Diese Software sorgt in irgendeiner Weise dafür, dass einer Firma ein Schaden entsteht. NEhmen wir mal an, die Rücksicherung funktioniert nicht weil das Image falsch erstellt wurde. Zumindest die Behauptung ist dann mal da. Egal jetzt mal aus welchem Grund. Dann geht doch das Gezittere los. Wenn eine einzige knackige Schadensersatzforderung kommt, ist man gezwungen zum Anwalt zu laufen und richtig Kohle zu berappen. Ein Anwalt für Medienrecht ist in Stuttgart ab 550 € / Stunde zu haben. Das ist aber der billigste. Und Ihr wisst ja, die Richter machen immer Vergleiche. Halbe halbe ist die Regel. Man redet immer von Verhältnismäßigkeit bei Strafen.
Darauf habe ich keine Lust. Vor allem dann nicht, wenn mehrere kommen sollten und weiterere Schaden entstehen könnten. Daher meine Frage: Ist es legal, Freeware einfach "auszuschalten"! Denn wenn das legal wäre, könnte man Risiko minimieren.
So wie ich das sehe, gibt es wohl keine 100%ige Sicherheit. Event. hat jemand Erfahrungen wie vorzugehen wäre, um Risiko zumindest zu minimieren. Tut mir leid dass ich Euch volltexte. Doch es geht uns alle an, meine ich.
Vor allem wenn wir etwas zum Download zur Verfügung stellen.
Hallo Lottich und Oscar,
vielen Dank für Eure Einschätzung.
Ich habe jetzt mal einen "Online- Software Abschalter" geschrieben und getestet. Funktioniert gut.
$sFilePath = (@TempDir & "\xyz.txt") ;Heruntergeladene Datei im temporären Verzeichnis zur Inhaltsprüfung ablegen;
$FileCheck = InetGet("http://Domäne/Ordner/Unterordner/xyz.txt", $sFilePath, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND) ;Datei im Hintergrund herunterladen. Wenn Datei bereits vorhanden ist, dann überschreiben;
Sleep(200) ;200 MS warten, event. könnten 500 MS besser sein;
$FileOpen = FileOpen($sFilePath, 0) ;"\xyz.txt" im Lesemodus öffnen;
$FileRead = FileReadLine ($sFilePath) ;Zeilen von "\xyz.txt" auslesen;
If StringInStr($FileRead, "CWKNOTOK") Then ;Sollte die Zeichenkette (String)"CWKNOTOK" in der abgespeicherten Datei "\xyz.txt" gefunden werden,;
MsgBox(64, "Wichtiger Hinweis", "-Dein Programmname- wird vom Hersteller nicht mehr supportet und kann daher nicht mehr gestartet werden! Bitte um Verständnis.", 10) ;gib folgende, Nachricht als Info aus.;
FileClose ($sFilePath) ;\xyz.txt schließen;
;~ FileDelete ($sFilePath) ;\xyz.txt löschen;
Exit ;Software beenden
EndIf
Alles anzeigen
Eine Freeware, die plötzlich keine Freeware mehr sein soll, gibt es nicht!
Nun ja, wie oben beschrieben ist es event. nützlich, wenn man eine Software auf einfache Weise abschalten kann. Ob es für jedermann Sinn macht oder nicht, sei mal dahingestellt. Es kann auf jeden Fall eine Art Schutzmechanismus für den Programmierer oder den Author sein, wenn er merkt, dass z. B. die Weiterentwicklung einer Software aus Zeitgründen keinen Sinn mehr macht und die bisherige Version vom Markt nehmen möchte oder erkennt, dass nach Jahren sich z. B. von der programmierten Software sich in abhängigkeit stehende Drittsoftware nicht mehr Freeware, sondern Bezahlsoftware gemacht wurde. Um dann in Folge Stress zu vermeiden kann es durchaus IMHO nützlich sein, einfach einen Schalter umzulegen, der die Ausführung der eigenprogrammierten Software und somit Stress verhindert.
Eine "call home" Funktion ist aber durchaus auch in Freeware sinnvoll, bleibt auch nicht aus, wenn man eine Update Funktion in seinem Programm integriert.
Sehe ich auch so. Im Grunde ist vom Code her auch eine Updateprüfung eine "call home" Funktion. Und Updates werden auch desöfteren bei Freeware geprüft.
Wenn, dann kann man das nur im Zuge einer neuen Version der Software ändern. Die alte Version bleibt aber weiterhin Freeware.
Das stimmt. Nur wenn man Missbrauch der Software verhindern möchte als auch eine unerwünschte Kommerzialisierung durch Dritte, hat man zumindest eine Möglichkeit, sein geistiges Eigentum vom INet herunter zu nehmen.
Was ich nun noch unbedingt wissen möchte ist, wenn ich eine 100% Freeware (also auch für kommerzielle Zwecke einsetzbare Software) einfach online abschalte und eine Firma dann Schadensersatz geltend macht, weil ich meine eigenentwickelte Software vom Netz genommen habe, ist das strafbar? Abgesehen davon dass man immer die unangenehmen Umstände in einem solchen Fall hätte.
Wie sieht es aus wenn die Software bekannt ist und bspw. bei Chip veröffentlicht ist. Bin ich verpflichtet zu melden, dass ich die Software vom Netz genommen habe?
Nun um sich ein kleines Bild über mich machen zu können hau ich mal etwas über Meine Persönlichkeit raus! Ich bin Horrorfreak also wenn es um Zombie oder Horrorfilme und games geht bin ich dabei
Musik höre ich gerne metal, dubstep, oldschool rock wie z.B. Metallica, ACDC usw.. aber auch Caliban, callejon, disturbed, ...
Gerne spiele ich auch PC Spiele also Horrorgames wie z.b. Amnesia, penumbra, land of the dead (George a. Romero Fan), Spookys House of Jumpscare, ... jumpscare games, survival games wie z.B.: Minecraft, land of the dead, dayZ, warZ, h1z1, ... da könnte ich einige aufzählen
also kurz gesagt:
Viele deiner interessen stimmen tatsächlich sogar mit meinen überein
... und mit meinen auch. Metallica, ACDC und Horrorfilme machen mir auch Freude (und ich bilde mir ein, dennoch kein Psychopat zu sein der mit Beil und Messer in der Bahn usw... Schrecklich das ganze.)
Deine Videos auf Youtube sind wie auch der Kanal ok (ich habe allerdings nur ein Video halber angeschaut). Vor allem wie Du erklärst, wie was gemacht wird ist lustig. Ich freue mich jetzt schon auf viele Beiträge von Dir.