Aber das bekomme ich nur durch eine if abfrage ausgewertet richtig ?
Beiträge von Springstil
-
-
Das bekomme ich ja auch hin, nur bekomme ich es nicht gebacken bei Ja oder Nein das script weiter zu führen oder abzuschalten, da ich ja vorher schon ne if abfrage gestartet habe. So wie ich Google verstanden habe muss ich die msgbox mit rückgabewert mit ner If abfrage behandeln. also wenn 1 dann das oder 2 dann das
-
Also
ja so ungefähr soll es aussehen nur das er nach 30 Sekunden Kilas starten soll (wenn man nicht vorher ja drückt) und bei Nein eben das Script beendet bis man es wieder einschaltet. Und die MSGbox soll auch nur erscheinen wenn Kilas NICHT gestartet ist.
Sieht genial aus. Bisl schwer für mich zu verstehen wie das funktioniert da ich nicht alt so viel Ahnung habe. Habe aber denke ich 90% Des Scripts mittlerweile verstanden. Nur Möchte ich genau das anderes herum haben. Sprich er soll beim Timeout das Programm auch starten nur bei Nein soll er das Script schließen. Dann soll er nach 30 Sekunden wieder Checken ob Kilas läuft. Wenn ja 30 Sek warten, wenn nein starten und die abfrage anzeigen. Ich Verstehe aber nicht so recht wie ich dem Timeout ne Funktion zuweisen kann. Das ganze ist ja nicht mit msgbox geregelt oder ?
-
Ich möchte das nicht programmieren lassen, will es ja auch verstehen und ein Erfolgs Ergebnis haben
Im Prinzip soll er alle 30 sek checken läuft oder läuft nicht und wenn nicht die Abfrage starten soll es gestartet werden oder nicht. Beim time out soll er starten. Ich bin grade am Handy ich schau mir das gleich mal genauer an erst mal vielen Dank für die Hilfe Stellungen
-
Das habe ich soweit schon verstanden mit der msgbox. Nur weiß ich nicht wie ich das in dem script anstellen soll das er bei ja weiter macht und bei nein das script schließt. Habe mal gegoogelt gehabt, und da ist die rede von ner if abfrage. Aber die habe ich ja schon vorher am laufen
-
Hallo zusammen,
Ich habe folgendes Script geschrieben:
Code
Alles anzeigenWhile 1 if ProcessExists("KILAS_Monitor.exe") Then Else run("K:\KILAS_Monitor.exe SUR_Monitor.cfg", "k:\") sleep (1800) WinActivate ("KILAS","Gasper - KILAS MONITOR") winwaitactive("KILAS","Gasper - KILAS MONITOR") Sleep(500) ControlClick("KILAS","","[CLASS:ThunderRT6OptionButton; INSTANCE:2]") Sleep (3000) EndIf WEnd
Das funktioniert soweit auch gut. Nur hätte ich es gern ein wenig umgebaut:
Und zwar wenn der Prozess nicht gestartet ist, soll er eine Abfrage starten mit ja oder nein. Wenn Ja gedrückt wird soll er das Programm starten, bei nein soll er das Script schließen. Die schleife mit dem Checken ob es läuft oder nicht soll allerdings bestehen bleiben. Jetzt kommt noch das ABER er soll 30 Sekunden warten bei der abfrage. Wenn dann noch nicht zwischen ja oder nein gewählt wurde soll er automatisch Ja drücken! Ich verstehe aber nicht wie ich das anstellen soll. Hoffe ihr könnt mir helfen
-
Ah okay. Also setze ich einmal den ontop Befehl, der dann so lange aktiv bis das Script geschlossen wird. Also jedes mal wenn das Fenster mit dem Titel aufkommt wird es auch on top gesetzt egal wie weit das Script voran gescheiten ist
-
Also den Befehl on top setzten nach den Klicks dann das winwaitactive warten bis es wieder da ist und wieder on top schalten?
-
Also das Programm startet fängt an und friert mit keine Rückmeldung ein. Soweit ja nicht schlimm wenn er fertig ist, ist das mit der keine Rückmeldung ja auch weg. Setzt er das Fenster dann wieder auf aktiv mit dem Befehl? Also wartet er so lange bis er das Fenster wieder findet und setzt es aktiv bis es sich schließt? Ich hoffe es ist verständlich gestellt die Frage :x weiß grade nicht wie ich mich anders ausdrücken soll ? dann wäre ja der fenstertitel mit keine Rückmeldung egal oder?
-
Hey Roger,
Ich habe dafür leider zu wenig Ahnung wie ich das dann mit ner comando Zeile machen soll. Das Tool nutzen wir auch so immer wenn wir das händisch machen daher kam die Idee das darüber zu steuern.
Es musste nur schnell eine Lösung erst einmal her, da wir am Dienstag Opfer eines crypto trojaner geworden sind und die Datenbank einige Tage alt war die wir wieder herstellen konnten.
Bin aber gerne für Vorschläge offen wie ich das anders lösen kann.
-
Hallo zusammen,
Ich habe mir ein Script zusammen gebastelt, was einfach ein paar Klicks ausführt.
Spoiler anzeigen
#include <Date.au3>
$dateiname = "DB_" & @MDAY & "." & @MON & "." & @YEAR
$quelle = "D:\Backup_Kilas\"
$zwichenspeicher = "D:\Backup_Kilas\"
$speicherwolke = "/DB_SICHERUNG/"
Run("D:\KILAS\SQL Server TOOL.exe")
Sleep(3000)
WinActivate("S+R SQL Server Manager")
Sleep(1000)
ControlClick("S+R SQL Server Manager", "", "[CLASS:ThunderRT6CommandButton; INSTANCE:8]")
WinWaitActive("Datenbank SICHERN")
Sleep(2000)
ControlClick("Datenbank SICHERN", "", "[CLASS:Button; INSTANCE:1]")
WinWaitActive("SQL_Server_TOOL")
ControlClick("Datenbank SICHERN", "", "[CLASS:Button; INSTANCE:1]")
WinActivate("S+R SQL Server Manager")
Sleep(1000)
ControlClick("S+R SQL Server Manager", "", "[CLASS:ThunderRT6CommandButton; INSTANCE:4]")
FileMove("D:\Backup_Kilas\KILAS.bak", "D:\Backup_Kilas\" & $dateiname & ".bak")
Sleep(300)
RunWait("C:\Program Files\WinRAR\WinRAR.exe a -r " & $zwichenspeicher & $dateiname & ".rar " & $zwichenspeicher & $dateiname & ".bak")
$cmd1 = 'C:\Winscp\winscp.com /Command "open sftp://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/" "put ' & $zwichenspeicher & $dateiname & ".rar " & $speicherwolke & '" exit'
RunWait(@ComSpec & " /c " & $cmd1)
FileMove("D:\Backup_Kilas\" & $dateiname & ".rar", "T:\BackupKilas\Backup_Day\" & $dateiname & ".rar")
Es geht halt einfach hin, und öffnet den SQL Server Manager und klickt einfach paar mal zum sichern der Datenbank. Danach wird es gepackt und in den FTP geschoben. Funktioniert auch soweit gut ABER da ich ja mit ControlClick arbeite MUSS das Fenster solange er die DB Sichert im Vordergrund bleiben... Jetzt habe ich mal gegoogelt und die Funktion WinSetOnTop gefunden.
Nur habe ich da eine Frage zu:
Unsere Datenbank ist ca 21 GB groß. Sobald man auf Sichern Klickt zeigt das Fenster nach 2 Sek an das er keine Rückmeldung mehr hat. Ist das ein Problem für WinSetOnTop ? Und ist das auch die Funktion die das fenster solange offen bzw im Vordergrund lässt bis es beendet wird?
PS: Ja ich sehe grade das der erste Move befehl eigendlich fürn arsch ist
-
Ich muss mir das mit dem StringFormat noch mal genau durchlesen für das nächste Projekt was ich evl dann machen werde.
Ich bin eher so einer der Lerning by Doing fabriziert aber mein Fertiger Code sieht so aus:
$CMD1 = "C:\Winscp\winscp.com /Command ""open sftp://XX:XX@XXX"" ""put " & $zwichenspeicher & $DateiName & ".rar " & $speicherwolke &""" exit"
RunWait(@ComSpec & " /c " & $CMD1 )
Zumindest Funktioniert es so
-
Aaahhh jetzt hat es klick gemacht! Danke hab mir das dann mal in der Box darstellen lassen und es dann hinbekommen und auch verstanden. Vielen Dank
-
-
Kannst du mir das evl. etwas genauer erklären was du mit "" meinst ? Soll das heißen das ich jedes Gänsefüßschen 2 mal setzen soll? Also überall da wo eins steht was gebraucht wird ?
-
Durch das Apostroph am Anfang und am ende werden die Anführungszeichen doch nicht mehr als String benutzt somit würde der Befehl doch mit "put C:\" enden und auch so eingetragen werden ?
-
Danke für den Tipp Hat soweit auch geklappt was ich vorhabe.
Das mit den StringFormat finde ich sehr Kompliziert ehrlich gesagt :o mein Problem was ich jetzt habe ist die Variable mit einzubinden.
Code
Alles anzeigen#include <Date.au3>; ; DateiName steht für den Namen den das Archiv später hat! ; Quelle ist halt die Quelle von Wo er etwas nehmen und packen soll! $DateiName = "DB_" & @MDAY & "." & @MON & "." & @YEAR $Quelle = "E:\Scripte2\" ;Speicherort (Also Festplatte) bitte bei :\ ändern! Standart ist C angegeben also nach C:\Program Files\WinRAR\WinRAR.exe a -r kommt die Festplatte RunWait ("C:\Program Files\WinRAR\WinRAR.exe a -r C:\" & $DateiName & ".rar" , $quelle) ; ---- $CMD1 = 'C:\Winscp\winscp.com /Command "open sftp://XXX:XXX@XXX/" "put C:\test.txt /test/"' RunWait(@ComSpec & " /c " & $CMD1 )
So funktioniert es wie es soll. ABER jeden Tag ändert sich ja das Datum... Wie bekomme ich also die Variable $DateiName bei Put C:\ **** rein ?
Mein Code sieht bestimmt beschissen aus xD Aber ich komme wenigstens einigermaßen klar :X
-
Die Überschrift ist vielleicht ein wenig Kacke .. Ich weiß allerdings nicht wie ich das richtig nennen soll
Mein Problem ist das ich keine sftp Verbindung mit Autoit hergestellt bekomme.. Habe div. Scripts probiert und bekomme einfach keine Verbindung zu Stande. Nun dachte ich mir "Nimmste einfach winSCP". Pustekuchen
Kurz erklärt ich will etwas Automatisch Packen lassen und im nächsten schritt möchte ich es hochladen.
Nun ist es aber so das der WinSCP befehl so aussieht:
Nur hab ich das Problem das Autoit die " nicht mit in die Line reinschreibt? Ich führe das mit runwait aus.
Mein Script besteht zur zeit nur daraus
Code$DateiName = "DB_" & @MDAY & "." & @MON & "." & @YEAR $Quelle = "E:\Test\" RunWait ("C:\Program Files\WinRAR\WinRAR.exe a -r C:\" & $DateiName & ".rar" , $quelle)
Aber das wäre auch mein nächstes Problem. Wenn der Pack Job erledigt ist, soll er normal die Datei die er gepackt hat Hochladen. Diese würde ich gern mit Datum versehen damit ich weiß welche Version das ganze ist. Vielleicht habt ihr ja noch ne Idee wie ich die Variable mit in den sftp Upload bekomme. Ich bin nicht so recht Firm in Autoit und probiere mich durch, nur stehe ich grade ziemlich auf dem schlauch.
Schon mal Vielen Dank