Beiträge von Schnuffel
-
-
da hast du mich falsch verstanden.
Du sollst nicht dein Problem selber lösen.
Aber,
wir sind kein Forum, das fertige Lösungen präsentiert. Auch wenn AspirinJunkie dir da einen anderen Eindruck vermittelt hat.
Das liegt im Ermessen jedes Einzelnen, der hier in seiner Freizeit versucht, andere zu unterstützen.Sozusagen Hilfe zur Selbsthilfe.
Wir möchten jeden ermutigen sich mit dem Thema IT, AutoIt und Programmierung zu beschäftigen.
Wir unterstützen jeden, der sich damit auseinandersetzt und dann in seinem Findungsprozess auf Hürden stößt.Wir sind aber keine Code-Schmiede an die man einen Wunsch schickt und erwarten kann, dass man fertige Scripte inkl. Errorhandling erhält.
Ich ging davon aus dass du dich mit dem von mir geposteten Script auseinandersetzt und versuchst es zu verstehen,
um es an deine Bedürfnisse anzupassen.
Die Frage ob denn @DesktopDir richtig ist zeigt mir, dass du wohl eher der Copy & Paste Typ bist.
Vielleicht kann ich dich auf die "gute" Seite der Programmierer holen. Hirn einschalten, Eigenanspruch hochfahren, Problem identifizieren und dann, wenn es zu kompliziert wird sich Unterstützung suchen. Dafür sind wir hier.Copy & Paste ist der falsche Weg, da zu bequem und immer auf Kosten anderer.
Ich möchte dir das hier nicht unterstellen, sondern dich ermutigen das Problem anzugehen und uns als "unterstützende Einheit" zu sehen.
Wir sind fast 24/7 hier. Wir lesen jeden Post.
Wenn jemand etwas sinnvolles beizutragen hat wird er es tun und die anderen werden lesen, lernen und schweigen.Naja, manchmal
Auf jeden Fall:
Versuche das bisher gelieferte in eine für dich sinnvolle Abfolge von Befehlen zu bringen, die du verstehst.
Was du nicht verstehst versuche in der Hilfe nachzulesen.
Wenn das auch nicht ausreicht, dann stelle hier eine Frage mit Scriptansatz (lauffähig) und allen (auch Demo-Dateien) die das Problem herbeiführen.
Auch wir sind bequem und möchten eher helfen, wenn wir nur F5 drücken müssen, anstatt uns eine Demonstrationsumgebung aufzubauen, um dir zu erklären warum z.B. eine "MsgBox in der Situation nicht angezeigt wird". -
nun ja, ich habe ja geschrieben, "an deine Bedürfnisse anpassen".
Wir werden dir wohl keinen fertigen Bausatz liefern.
Ein wenig eigener Hirnschmalz und der Wille es auch ein wenig selbst geschafft zu haben erwarten wir in der Regel schon.
Wenn du mit einzelnen Befehlen nicht klar kommst, dann schau dir zuallererst die Hilfe dazu an.
Die erklärt in den meisten Fällen die Sache ganz gut. Wenn du dann das Script an deine Bedürfnisse angepasst hast und nicht weiter kommst,poste hier dein Script und eine passende Fehlerbeschreibung. Ich bin sicher dann wird dr auch geholfen
Idealerweise postest du alle Dateien (und wenn es nur Beispieldateien sind) die dein Problem widerspiegeln.
-
-
hab einen kleinen Schönheitsfehler gefunden
Funktionsaufrufe:
_PrintHello(){die geschweifte Klammer ist dort zu viel.
-
ich greife Alina mal vor... (nicht böse gemeint)
Swiffer der Aufruf von cpdf sieht folgendermaßen aus:
cpdf.exe 1.Datei(kann auch ein Pfad zu einem anderen Ordner sein) 2.Datei(kann auch ein Pfad zu einem anderen Ordner sein) Ausgabedatei(kann auch ein Pfad zu einem anderen Ordner sein)
Ein Beispiel deine pdf zu durchsuchen kann so aussehen und müsste natürlich noch an deine Bedürfnisse angepasst werden:
AutoIt: Beispiel in Dateien nach String suchen
Alles anzeigenLocal $sSearchString = "5000" Local $hSearch = FileFindFirstFile(@DesktopDir & "\*.pdf") If $hSearch = -1 Then MsgBox(16, "", "Fehler: es wurde keine pdf-Datei gefunden.") Exit EndIf Local $aFilename, $sFileName = "", $nFileCount = 0 While 1 $sFileName = FileFindNextFile($hSearch) If @error Then ExitLoop $aFilename = FileReadToArray($sFileName) For $i = 0 To UBound($aFileName) - 1 If StringInStr($aFileName[$i], $sSearchString) Then ConsoleWrite($sFileName & @CRLF) $nFileCount += 1 EndIf Next WEnd FileClose($hSearch) If $nFileCount > 1 Then MsgBox(0, "", 'Der Suchbegriff '&$sSearchString&' wurde in ' & $nFileCount & ' Dateien gefunden!')
ich denke damit kannst du erstmal selber weiter arbeiten.
-
-
-
zu Alinas exe:
ein mutiger Start in der Konsole offenbart die Wahrheit: https://www.coherentpdf.com/
mit cpdf.exe -help wird alles erklärt.
-
so wie ich das lese brauchst du eigentlich 2 voneinander getrennte Lösungen.
1. mit AutoIt in einem vorgegebenen Verzeichnis nach einem Dateiinhalt suchen. (Ob der dann einmalig ist oder wie der referenziert wird ist Sache des Suchstrings)
2. Die gefundene pdf-Datei mit einer anderen "mergen".
Ich denke beide Probleme lassen sich mit AutoIt lösen.
-
mal als Beispiel, aber auch zur Warnung
AutoIt: Datei die kompiliert wird:
Alles anzeigenGlobal $PfadzurAutoItExe = @AutoItExe ; oder die autoit3.exe einfach in den Scriptordner kopieren und darauf referenzieren Global $PadzumScript = @DesktopDir & '\test.a3x' ; kann eine .au3 Datei sein oder eine compilierte .a3x Datei. SO kann man nicht das Script im Klartext lesen Global $Timer = TimerInit() While 1 Run('"' & $PfadzurAutoItExe & '" "' & $PadzumScript & '"') While TimerDiff($Timer) < 10000 Sleep(1) WEnd $Timer = TimerInit() WEnd Exit
und als zweites ein Script, dass man jederzeit abändern kann, da es immer zum Aufruf geladen wird:
Dies kann eine .au3 oder eine .a3x Datei sein.
Bei zweiter ist die Datei "compiliert" und kann direkt nicht mehr ausgelesen werden.AutoIt: aufzurufendes ScriptMsgBox(64, "MsgBox", 'Diese MsgBox schließt sich automatisch nach 3 Sekunden', 3) Exit
ABER: Ein Wort der Warnung ...
Diese Konstrukte funktionieren einwandfrei, solange man ein paar Dinge beachtet:
- man kann nicht die kompilierte .exe als Wrapper für sein Script aufrufen. ==> ansonsten Todesschleife
- man muss selber aufpassen, dass die Parameter für den Aufruf der Scriptdatei immer korrekt sind ==> ansonsten TodesschleifeDaher würde ich auch für folgendes Konstrukt plädieren:
Ähnlich dem Aufruf von Powershell Scripten einfach die AutoIt3.exe in die Aufgabenplanung packen und als Parameter die Scriptdatei übergeben.
Der Aufruf erfolgt dann in der Aufgabenplanung zeitgesteuert und immer nur 1x.Das dahinterliegende Script kann jederzeit verändert werden. Zur nächsten Laufzeit wird es erneut eingelesen und verarbeitet.
Ohne es geprüft zu haben...
Die AutoIt3.exe wird dabei jedesmal mit einer neuen PID gestartet und kann somit einzeln und auch parallel oder nur überlappend ausgeführt werden.
Die Beendigung eines aufgerufenen Scripts unterliegt ja eh der Hoheit des Programmierers. -
starte doch einfach aus deinem Script heraus alle 4 Std. eine au3.
Die kannst du jederzeit anpassen und die wird alle 4 Std. aufgerufen.
Hängt aber alles davon ab, welche Sicherheit hergestellt werden soll, wer Zugriff auf Änderungen haben darf und und und
siehe (At its simplest: AutoIt3.exe myScript.au3 will run a standard AutoIt script 'myScript.au3' with no parameters.)
https://www.autoitscript.com/autoit3/docs/intro/running.htm -
nachdem ich die erste Anforderung nicht vollständig gelesen hatte, hier noch eine Variante die dem Wunsch eher entspricht:
AutoIt
Alles anzeigen#include <GuiConstants.au3> $hGui = GuiCreate("Test", 260, 100) GUICtrlCreateLabel("", 15, 39, 230, 20, $SS_SUNKEN) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetBkColor(-1, 0xFFFFFF) $hX = GUICtrlCreateLabel("X", 232, 39, 20, 18) GUICtrlSetFont(-1, 12, 0, 0, "Consolas") GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetColor(-1, 0x9F2F2F) $hInput = GUICtrlCreateInput("", 20, 42, 205, 14, -1, $WS_EX_TOOLWINDOW) GUICtrlSetState(-1, 32) $hSuchen = GUICtrlCreateLabel('Suchen ...', 20, 42, 195, 16) GUICtrlSetState(-1, 16) GUICtrlSetColor(-1, 0xCFCFCF) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) $hButton = GUICtrlCreateButton('OK',15,70, 120, 20) GUIRegisterMsg(0x0111, "WM_COMMAND_Suchen") GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case -3 Exit EndSwitch WEnd Func WM_COMMAND_Suchen($hWnd, $Msg, $wParam, $lParam) $nNotifyCode = BitShift($wParam, 16) $nID = BitAnd($wParam, 0x0000FFFF) ConsoleWrite($nNotifyCode & @CRLF) Switch $nNotifyCode Case 0 Switch $nID Case $hSuchen GUICtrlSetData($hInput, '') GUICtrlSetState($hSuchen, 32) GUICtrlSetState($hInput, 16 + 256) Case $hX GUICtrlSetData($hInput, '') GUICtrlSetState($hSuchen, 16) GUICtrlSetState($hInput, 32) EndSwitch EndSwitch EndFunc
-
hier mein Ansatz:
AutoIt
Alles anzeigen#include <GuiConstants.au3> $hGui = GuiCreate("Test", 260, 100) GUICtrlCreateLabel("", 15, 39, 230, 20, $SS_SUNKEN) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetBkColor(-1, 0xFFFFFF) $hIcon = GUICtrlCreateIcon("shell32.dll", 15, 18, 41, 16, 16) $hInput = GUICtrlCreateInput("", 45, 42, 195, 14, -1, $WS_EX_TOOLWINDOW) GUICtrlSetState(-1, 32) $hSuchen = GUICtrlCreateLabel('Suchen ...', 45, 42, 195, 16) GUICtrlSetState(-1, 16) GUICtrlSetColor(-1, 0xCFCFCF) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) $hButton = GUICtrlCreateButton('OK',15,70, 120, 20) GUIRegisterMsg(0x0111, "WM_COMMAND_KillFocus") GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case -3 Exit EndSwitch WEnd Func WM_COMMAND_KillFocus($hWnd, $Msg, $wParam, $lParam) $nNotifyCode = BitShift($wParam, 16) $nID = BitAnd($wParam, 0x0000FFFF) Switch $nNotifyCode Case 0 IF $nID = $hSuchen Or $nID = $hIcon Then GUICtrlSetState($hSuchen, 32) GUICtrlSetState($hInput, 16 + 256) EndIf Case 512 IF $nID = $hInput Then GUICtrlSetState($hSuchen, 16) GUICtrlSetState($hInput, 32) EndIf EndSwitch EndFunc
-
alles gut
du wolltest Meinung, und Meinung kann man schlecht über 2 Strings abgeben.
Das ist alles.
Du musst halt damit leben, dass deine Routine nie von außen Inspiration erfährt.
-
Naja,
ein guter Verschlüsselungsalgorithmus ist Quelloffen und kann von jedermann auf Schwachstellen geprüft werden.Wenn du deinen Algorithmus nicht zeigen willst, bedeutet das,
dass es kein zusätzliches "salt" gibt, dass die Individualisierung einer Verschlüsselung erzeugt.Damit können wir keinerlei Aussage treffen über die "Qualität" der Verschlüsselung.
Zu der Hash-Collision von Gun-Food.
Das Bedeutet, wenn man aus 2 verschiedenen Ausgangsstrings einen Hash erzeugt und beide Hashwerte identisch sind.
Dann ist der Algorithmus der Hasherzeugung nicht ideal. siehe: https://en.wikipedia.org/wiki/Hash_collisionIch denke aber, dass du nicht einen Hash erzeugst, da dieser keine Möglichkeit gibt auf den Ursprungstext zurückzugreifen.
Bei dir sieht das eher nach eine Verschiebung mit XOR aus und Wandlung in verschiedene Formate (Hex, Ascii, und Co.)
Wäre schon mal interessant das zu sehen.Aber ist wie es ist.
-
soweit ich mich erinnere wurde die Taskbar in der UI Automation abgeändert/überführt.
Schau dir mal folgende Ressource an: https://www.autoitscript.com/forum/topic/20…utomation-udfs/
ach ja ....
hier noch eine GUI, die dir alle Einträge anzeigt: https://www.autoitscript.com/forum/topic/19…ation-spy-tool/
-
kann man nicht viel zu sagen.
Das Script dazu wäre hilfreich.
-
am Besten beide installieren für 32- und 64- bit (Paket 2015 - 2022)
-
also ich würde folgendes ausprobieren:
netsh advfirewall firewall add rule name="Block SVCHOST tcp" dir=out action=block program="%SystemRoot%\System32\svchost.exe" enable=yes protocol=TCP
netsh advfirewall firewall set rule group="Netzwerkerkennung" new enable=no profile=all
der erste Befehl erstellt eine Firewallregel um Updates nicht lokal zu laden
der zweite Befehl deaktiviert die lokale Netzwerkerkennung um nicht Updates über andere Rechner zu beziehen
nicht getestet !
Quelle:
https://adventure-travel-experience.de/reise-winupdate[gelöst] - Network Discovery per Group Policy ein- und ausschalten?Wir stellen derzeit die bislang lokale Nutzeranmeldung unsere Arbeitsrechner auf Domaincontroller um. Unsere Vorgehensweise funktioniert grundsätzlich auch,…www.drwindows.de