Ne, also das war jetzt zu einfach
Beiträge von Kanashius
-
-
Naja. Wenns schick sein soll, emuliert man nen Drag&Drop auf die Schnellstartleiste mit ner Datei. Drag&Drop ist ja auch nur ein Event.
Ansonsten könnte man probieren, die explorer.exe zu beenden und neuzustarten, ist dann halt nicht so schön. -
Was mir allerdings nicht klar war, ist welches Workingdir mit "", definiert wurde.
Nun, das Workingdir ist das Verzeichnis, in dem das Script arbeitet.
Wenn du in AutoIt dein Programm schreibst kannst du ja bei Dateien im selben Ordner einfach "datei.txt" schreiben. Das geht, weil, wenn du das Programm startest, der Ordner als Workingdir angegeben ist, in dem sich das Programm befindet. Änderst du das Workingdir beim starten, dann würde die "datei.txt" nicht gefunden werden. Das Workingdir spielt also immer eine Rolle, wenn das Programm mit relativen Pfaden arbeitet.
In Autoit kannst du das auch mit @WorkingDir abfragen. -
Möglich bestimmt. Kompliziert vermutlich auch... Weiß nicht ob AutoIt von der Geschwindigkeit beim Scrollen,... hinterherkommt...
Am einfachsten wäre es wohl, z.B. Googlemaps oder ähnliches im ie aufzurufen und in das Programm einzubauen. Man kann ja den Browser ins eigene Fenster packen. -
Das Script sollte Chat schreiben können. Um die Tastenkombi zu ändern sieh dir Zeile 6 und 12 an. Mit durck von F1 auf _IsPressed kommst du in die Hilfe, da findest du die KeyCodes.
Um Nachrichten hinzuzufügen musst du nur den Switch in Zeile 23 erweitern. Mit ALT+ESC schließt man das Programm.AutoIt
Alles anzeigen#include <Misc.au3> #include <MsgBoxConstants.au3> Global $TimeDifference=300 Local $hDLL = DllOpen("user32.dll") While sleep(10) ;Senden mit T+STRG If _IsPressed("11", $hDLL) and _IsPressed("54", $hDLL) Then $timerStart=TimerInit() ;Herausfinden, wann losgelassen wird While _IsPressed("11", $hDLL) and _IsPressed("54", $hDLL) Sleep(10) WEnd ;senden _sendChatTime(TimerDiff($timerStart)) ;Schließen mit ESC+ALT ElseIf _IsPressed("1B", $hDLL) and _IsPressed("12", $hDLL) Then ExitLoop EndIf WEnd DllClose($hDLL) exit Func _sendChatTime($time) _sendChatNr(int($time/$TimeDifference)) EndFunc Func _sendChatNr($number) Switch $number Case 0 _sendChat("Message1") Case 1 _sendChat("Message2") Case 2 _sendChat("Message3") Case Else ;do nothing EndSwitch EndFunc Func _sendChat($message) ;Actives Fenster ermitteln $handle=WinGetHandle("[active]") ;Senden ControlSend($handle,"",0,"{t}") ControlSend($handle,"",0,$message) ControlSend($handle,"",0,"{ENTER}") EndFunc
Kann aber gut sein, dass dein Programm das schreiben nicht nimmt. Oft wird sowas verhindert.
MfG Kanashius
-
Excel Rewrite.au3 ist, soweit ich weiß, der vorgänger der Excel UDF, die bei AutoIt dabei ist. Sie nutzt also auch MS-Excel -> würde dir nichts bringen.
Wenn du ohne MS-Excel die Daten bearbeiten willst, speicher sie als CSV-Datei (gibts auch converter für), dann kannst du die als Array einlesen und bearbeiten.
(Ist dann nurnoch Text). -
-
Mit diesem Regex kannst du die Ergebnisse filtern.
AutoIt
Alles anzeigen#include <array.au3> $text="Profile auf Schnittstelle WLAN:"&@crlf&""&@crlf&"Gruppenrichtlinienprofile (schreibgeschtzt)"&@crlf&"---------------------------------"&@crlf&"Firmenwlan"&@crlf&""&@crlf&"Benutzerprofile"&@crlf&"---------------"&@crlf&"Profil fr alle Benutzer : W-Lan1"&@crlf&"Profil fr alle Benutzer : W Lan 2"&@crlf&"Profil fr alle Benutzer : Wlan 1@" $result=StringRegExp($text,'Profil(?:.*?) Benutzer(?:.*?):\s*(.*)\s*',3) if @error Then msgbox(48,"",@error) exit endif for $i=0 to UBound($result)-1 step 1 ConsoleWrite($result[$i]&@crlf) next _ArrayDisplay($result)
Siehs dir in Ruhe an.
Regex: (?:.*?) irgendwelche zeichen, bis das danach kommt. Das ?: sorgt dafür, dass die Gruppe (in Klammern stehen Gruppen) nicht als gefundener Text zählt.
. = beliebiges Zeichen; * beliebig oft (0+); ? so wenig wie möglich.
\s* whitespace 0x oder öfter
(.*)so viel wie Möglich dazwischen.
Sieh dir die Hilfe zu StringRegExp an, dort steht alles detailliert erklärt. RegEx ist auch relativ komplex/schwer, also nicht wundern, wenn es dir schwer vorkommt -
Naja. Nur damit wird das schwer, denke ich. Müsstest schon schreiben, bei was der Fehler aufgetreten ist (also, was du in dem Moment gemacht hast/machen wolltest).
Wenn möglich auch mit der au3 nachstellen. Dort steht dann die exakte Fehlermeldung, mit Zeile, nicht nur die der kompletten Exe...
Aus deinem Screenshot kann man leider nur ableiten, dass irgendwo auf einen nichtexistenten Wert im Array zugegriffen wird. -
AutoIt
Alles anzeigen#RequireAdmin #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $progress=false #Region ### START Koda GUI section ### $Form1 = GUICreate("Form1", 476, 220, 638, 418) $Button1 = GUICtrlCreateButton("Bot starten", 40, 32, 113, 49) $Button2 = GUICtrlCreateButton("Bot beenden", 232, 32, 121, 49) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 start() Case $Button2 ende() EndSwitch if $progress then Send("Ich bin ein Test") Sleep(10) endif WEnd HotKeySet("{F7}", "start") HotKeySet("{F8}", "ende") Func start() MsgBox (0, "Test", "Gestartet") $progress=true EndFunc Func ende() MsgBox (0, "Test", "Gestoppt") $progress=false Exit EndFunc
Musst die Hauptschleife nutzen. Also dort abfragen, ob der Button gesetzt wurde. In diesem Fall hab ich nen bool genutzt.
-
Da ich schon länger ein BackUp Programm schreiben wollte hab ich das jetzt mal gemacht.
Ist allerdings in Java, damit ich Threads benutzen kann, um die Sache etwas zu beschleunigen. (Bei mir den gesamten PC mit 2 Festplatten nach geänderten Dateien zu durchsuchen hat ~8min. gedauert (~1,7TB))
Man kann das Programm auch mit Parametern starten, was für dich interessant wäre, damit du die Pfade, Ausnahmen und den Datumszeitraum festlegen kannst. Eventuell pack ich noch nen silentmode rein, damit alles ohne gui läuft, und die Ausgaben in die Konsole geschrieben werdenCode
Alles anzeigenParameterlist: -SearchFolder AbsolutePath The Folder must exists! -BackupFolder AbsolutePath The Folder must exists! -startDate Date in Format dd.MM.yyyy for Example:09.03.2016 StartDate is the older Date -endDate Date in Format dd.MM.yyyy for Example:09.03.2016 EndDate is the newer Date -exceptions List of Exceptionpaths. Last parameter in the List. All Parameters behind this must be Paths to Exceptions. Throws a Warning, if a Path does not exists. -nocopy Do not copy files. Just show the List. -details Shows the ParameterDetails
Bei den Exceptions empfiehlt es sich übrigens, den AppDataOrdner hinzuzufügen... Die ganzen Dateien von Firefox, die der cached sind nicht unbedingt nett zu kopieren :D. Ebenso viele andere Dateien, die von Programmen genutzt werden
Beispielaufruf:
Run('javaw -jar BackUp.jar -startDate "08.03.2016"',@ScriptDir)
Viel Spaß damit. Ich denke ich werd das Tool auch fleißig nutzen
(wird sich demnächst auch auf meiner Webside finden)MfG Kanashius
Habs als zip hochgeladen, musst noch entpacken.
-
Wenn das Problem nur bei SQLite auftritt, versuch mal die sqlite.dll ausm internet zu finden und beim _sqlite_startup mit zu übergeben. Eventuell hat Win10 ne andere sqlite(version) als von autoit unterstützt.
(Hab die grad noch gefunden) -
Zitat
Warum darf ich als ein Mensch,
der in Deutschland lebt und dessen Muttersprache Deutsch ist, in einem
deutschsprachigen Forum keine Antwort auf Deutsch erbitten, wenn ich nur
geringe Englischkenntnisse habe?Wenn es die Antwort nur in
einem englischsprachigen Forum gibt, ist es dann wirklich zu viel
erwartet, dass jemand mit guten englischen Kenntnissen und jemand der
helfen möchte, eine kurze deutschsprachige Antwort in einem
deutschsprachigen Forum – wo die Frage gestellt wurde – verfasst?Ganz einfach. Englisch ist die Sprache der Programmierer. Es ist ein Luxus, in AutoIt eine Deutsche Hilfe zu finden, die einem den Einstieg erleichtert. Findest du sonst fast nirgendwo. Ebenso wie Deutsche Foren selten sind.
Ohne Englisch, sag ichs jetzt mal direkt, ist die Wahl programmierer zu werden schlecht. Auch in AutoIt sind sämtliche Funktionesnamen,... auf Englisch. Die kann man dann auch nicht verstehen.
Wenn du wirklich programmieren lernen willst, kommst du um Englisch nicht drumherum, da kannst du dich noch so quer stellen.
Wir sehen auch keinen Sinn darin, unsere Zeit dafür zu Opfern, vorhandene Themen, die jeder mit Englisch finden kann, zu übersetzen.
Wenn es mal etwas schweres/komplexes wäre, würde niemand schreiben, such selbst. Dort würd ggf. ein Link gepostet, und dann kann man damit weiterarbeiten.Im Prinzip verlangst du von uns eine Sonderbehandlung, weil du ohne Englisch programmieren lernen möchtest. Deshalb sollen wir dir bei allem auf Deutsch erklären, wie es geht.
Das hier ist ein Forum, keine Schule. Ein Forum ist dafür da, bei Fragen, wo man nicht weiterkommt, eine Frage zu stellen, um einen Denkanstoß,... zu bekommen.
Das ersetzt keinesfalls das eigene Lernen. Wenn du wie in der Schule jemanden haben möchtest, der dir alles so oft vorkaut, bis du es verstehst, dann bist du in einem FORUM falsch.
Da kannst du zu einer Uni,... gehen und anch einem Kurs auf Deutsch suchen, wo programmieren beigebracht wird.
Aber auch da wird dir das lesen von Dokus auf Englisch nicht erspart bleiben.Englisch ist die Grundverraussetzung, wenn man programmieren will. Die Grundlage müssen vorhanden sein. Fachwörter kann man mit z.b. googletranslate übersetzten, und mit der Zeit lernt man dazu. (so war es bei mir auch).
Ich wünsch dir noch viel Glück auf deiner Programmierkarriere, aber ohne Englisch wird diese wohl sehr kurz sein.
-
Sieh dir mal Exiftool an, damit kann man das auch auslesen. Gibts auch ne art udf für, glaub ich,
-
Das Flackern kommt daher, dass du das Bild in der Schleife neuzeichnest (_GDIPlus_GraphicsDrawImage($PAPIER, $BILD, 0, 0);). Normal zeichnet man nur einmal, also vor der Schleife.
Damit das Bild nicht verschwindet, sobald das Fenster mal vom Bildschirm geschoben, minimiert,... wurde muss es neugezeichnet werden. Dafür gibt es eine Message, die Windows sendet, wenn das nötig ist. (Weiß grad nicht genau, welche, glaube $WM_PAINT). Mit GuiRegisterMsg registriert man eine Funktion, die dann aufgerufen wird und das Bild neuzeichnet.
adurch verschwindet dein Flackern. -
Das was er da gemacht hat nennt man Testprogramm. Dort wird dir gezeigt, wie die Funktion funktioniert. Der Aufruf steht dort.
Sieh dir das Beispiel doch mal genau und vernünftig an -
, da Quellcode,... fehlt
Nun. Ohne Berechtigung wirst du das nicht hinbekommen. Sonst wären Berechtigungen ja unnütz.
Was ginge: Ein Programm als System/Admin-prozess automatisch beim hochfahren starten lassen und dem System/Admin rechte zum lesen/schreiben des Verzeichnisses geben.
Dafür musst du natürlich beim "installieren" als Administrator angemeldet sein. -
Wie, bzw. wofür möchtest du eine Textdatei (RTF->Rich Text Format) in eine Bilddatei umwandeln (TIFF->Tagged Image File Format)?
Willst du einfach ein Bild mit Text? -
Im schlimmsten Fall werden die Ressourcen nicht freigegeben -> Das Betriebssystem hat nen paar KB/MB weniger Arbeitsspeicher, bis zum nächsten Neustart.
Also nichts wirklich schlimmes, da ein Programm nicht ständig abstürzen sollte. (Kann auch sein, dass das Betriebssystem erkennt, wo das Programm den Speicher hatte und den freiräumt, dann würds nur bis zum Ende des Programmes den Speicherplatz wegnehmen, was dann sofort wäre). -
Wenn das auslesen klappt geb ich dir noch nen Tipp: StringInStr