1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Schnitzel

Beiträge von Schnitzel

  • Nach dem compilen, Fehlermeldungen verallgemeinern oder entfernen?

    • Schnitzel
    • 8. November 2013 um 10:56

    [Ironie] Schreib doch ein zweites Script das die Meldungen wegklickt [/Ironie]

    Ich stimme BugFix zu.
    Soweit ich weiß liefert Autoit keine Möglichkeit diese Meldungen zu unterdrücken.
    Anstatt die Energie zu verschwenden eine Möglichkeit zu finden solltest du lieber die Fehler beseitigen.

  • Backup Lösung - LastBackup anzeigen

    • Schnitzel
    • 8. November 2013 um 09:24
    Zitat von KCChris

    Das Programm soll erkennen ob der Benutzer über VPN verbunden ist (kein Backup) oder direkt mit dem Firmennetzwerk lokal...


    Lösungen gibt es sicher einige aber wir bräuchten ein paar Infos mehr.
    Wie baut ihr euer VPN denn auf?
    Vergebt ihr für VPN Clients bestimmte IP's?
    Fragen die VPN Clients einen anderen DC/DNS ab?
    Gibt es eine VPN Client Software?
    Usw...

  • Backup Lösung - LastBackup anzeigen

    • Schnitzel
    • 7. November 2013 um 11:39

    Warum packst du die letzte Backup Abfrage in die While 1 schleife?
    Solange du kein Backup startest wird sich auch die letzte Backupzeit nicht ändern
    Du erzeugst nur unnötig Last...

    [autoit]

    While 1
    Local $Zeit = FileGetTime ("U:\Backup")
    Local $BackupZeit = $Zeit[2] & "." & $Zeit[1] & "." & $Zeit[0] & " " & $Zeit[3] & ":" & $Zeit[4]
    TrayItemSetText($LastBackup,'Letztes erfolgreiches Backup: ' & $BackupZeit)

    [/autoit]
  • Backup Lösung - LastBackup anzeigen

    • Schnitzel
    • 7. November 2013 um 11:24

    Bitte verwende Spoiler für längere Quelltexte:
    Natürlich kannst du in eine Datei schreiben.

    [autoit]

    Fileopen()
    Filewrite()
    FIleread()
    Fileclose()

    [/autoit]
    Zitat von KCChris

    Ist es möglich auszugeben wann genau die Funktion Backup() ausgeführt wurde?


    Während der Laufzeit kannst du eine Variable verwenden in der du den Zeitpunkt der letzten ausführung speicherst.
    Um die Info nach beenden des scripts nicht zu verlieren musst du sie in eine Datei schreiben (txt, ini, ...), oder in die Registry, oder du erstellst für jedes Backup einen neuen Ordner, dann kannst du den Erstell-Zeitpunkt auslesen

  • Backup Lösung - LastBackup anzeigen

    • Schnitzel
    • 7. November 2013 um 10:28

    Du willst ja auch nicht hunderte Trayitems erstellen sondern den Text eines Items ändern oder?

    [autoit]

    TrayItemSetText()

    [/autoit]
  • Variable in Run() übergeben

    • Schnitzel
    • 7. November 2013 um 09:54

    Du musst auch den Return wert von Stringreplace verwenden:

    [autoit]

    $var = StringReplace(@DocumentsCommonDir,"Public",@Username)
    msgbox(0, "", $var)

    [/autoit]
  • Variable in Run() übergeben

    • Schnitzel
    • 7. November 2013 um 09:31

    Und was ist bitte an 3 Zeichen leichter als an 2?
    Und übersichtlicher wird es durch """ auch nicht

  • Gui State / Flackernde Controls

    • Schnitzel
    • 6. November 2013 um 18:19

    So schnell kann es gehen wenn man ein lauffähiges Script postet...

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=n
    #RequireAdmin
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    GLOBAL $processname = "calc.exe", $bActive = False
    Global $iPID, $bgpic, $perc

    [/autoit] [autoit][/autoit] [autoit]

    $interface = GUICreate("Test", 120, 160, 1143, 239)
    $bgpick = GUICtrlCreatePic("bg.jpg", 1, 1, 120, 160)
    GUICtrlSetState($bgpick, $GUI_DISABLE) ; verhindert das der bg das gui übrerlagert

    [/autoit] [autoit][/autoit] [autoit]

    $proclab = GUICtrlCreateLabel("Process", 40, 15, 55, 20)
    GUICtrlSetFont($proclab, 9, 999, 0, "")
    GUICtrlSetBkColor($proclab, $GUI_BKCOLOR_TRANSPARENT)
    $procstatus = GUICtrlCreateInput("wait...", 30, 30, 60, 20)
    GUICtrlSetState($procstatus, $GUI_DISABLE)

    [/autoit] [autoit][/autoit] [autoit]

    $botlab = GUICtrlCreateLabel("Status", 36, 50, 55, 20)
    GUICtrlSetFont($botlab, 9, 999, 0, "")
    GUICtrlSetBkColor($botlab, $GUI_BKCOLOR_TRANSPARENT)

    [/autoit] [autoit][/autoit] [autoit]

    $botstatus = GUICtrlCreateInput("wait...", 30, 65, 60, 20)
    GUICtrlSetState($botstatus, $GUI_DISABLE)

    [/autoit] [autoit][/autoit] [autoit]

    $percinput = GUICtrlCreateInput($perc, 45, 95, 30, 20)
    $startstop = GUICtrlCreateButton("Start", 40, 125, 40, 20)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUISetState(@SW_SHOW)
    AdlibRegister("checkprocess")

    [/autoit] [autoit][/autoit] [autoit]

    while 1
    $msg = GUIGetMsg()
    Select
    case $msg = -3
    Exit
    case $msg = $startstop

    [/autoit] [autoit][/autoit] [autoit]

    EndSelect
    wend

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func checkprocess()
    $iPID = ProcessExists($processname)
    If $iPID = 0 And $bActive Then
    GUICtrlSetState($startstop, $GUI_DISABLE)
    GUICtrlSetState($percinput, $GUI_DISABLE)
    GUICtrlSetData($procstatus, "pending...")
    $bActive = False
    ElseIf $iPID > 0 And Not $bActive Then
    GUICtrlSetState($startstop, $GUI_ENABLE)
    GUICtrlSetState($percinput, $GUI_ENABLE)
    GUICtrlSetData($procstatus, "running...")
    $bActive = True
    EndIf
    EndFunc ;==>checkprocess

    [/autoit]
  • IdleTime eines (anderen) Users ermitteln

    • Schnitzel
    • 6. November 2013 um 18:09

    Autoit liefert keine Funktionen dafür aber mit ein paar Dll-Calls solltest du das in den Griff bekommen können:
    http://msdn.microsoft.com/en-us/library/…2(v=vs.85).aspx

    Und wenn schon ein externes Tool dann wenigstens etwas das mit Windows mitgeliefert wird.
    Das könnte dich weiterbringen:

    [autoit]

    Run(@ComSpec & " /c query user")

    [/autoit]
  • Gui State / Flackernde Controls

    • Schnitzel
    • 6. November 2013 um 18:03

    Und mit GuiCtrlGetState() hast du flackernde Controls oder?
    Wie gesagt ein Bool und die Sache ist erledigt.
    Poste dein Testscript mit dem Calculator!

  • Gui State / Flackernde Controls

    • Schnitzel
    • 6. November 2013 um 17:35

    Poste doch mal das ganze Script oder zumindest einen lauffähigen Ausschnitt.

    Ich würde für den Status einfach eine Bool-Variable verwenden. Wenn das Programm seit dem letzten Aufruf der Funktion nicht gestartet/gestoppt wurde musst du ja auch nichts machen.
    Information in der Gui zu speichern ist generell nicht so schöner Programmierstil.
    Eine Gui sollte nur anzeigen und Events auslösen

  • Variable in Run() übergeben

    • Schnitzel
    • 6. November 2013 um 17:26
    [autoit]

    ; $Source = @UserProfileDir & "\Desktop"
    $Source = @DesktopDir ; Besser :)
    RunWait('C:\Program Files (x86)\DirSync\DirSync.exe -s "' & $Source & '" -d "U:\Backup" -start -nostats -nowin -timediff 2 -noautoreport -logdir "U:" -dateformat "$dd.$mm.$yy" -exit')

    [/autoit]
  • Rekursive Dateisuche

    • Schnitzel
    • 6. November 2013 um 17:20

    Umbenennen ist doch auch nur ein verschieben innerhalb eines Ordners ;)
    Ich denke du willst es so in etwa:

    Spoiler anzeigen
    [autoit]

    Local $startPath = 'C:\Test\'
    Local $ZielPfad = 'C:\Test2\' ; Zielordner darf nicht unterhalb der Struktur des Quellordners liegen, ansonsten wären Anpassungen nötig
    Local $ext = 'txt'
    Local $sNummer = '001_'
    Local $sDateiUmbenannt, $sArchiv

    [/autoit] [autoit][/autoit] [autoit]

    Local $artxtFiles = _GetFilesFolder_Rekursiv($startPath, $ext, 0)
    For $i = 1 To $artxtFiles[0]
    $sDateiUmbenannt = StringReplace($artxtFiles[$i], "", "" & $sNummer, -1)
    FileMove($artxtFiles[$i], $sDateiUmbenannt)
    $sArchiv = $ZielPfad & StringTrimLeft($sDateiUmbenannt, StringInStr($sDateiUmbenannt, "", 0, -1))
    FileCopy($sDateiUmbenannt, $sArchiv)
    If @error Then
    MsgBox(262160, "ACHTUNG", "Die Datei" & @CRLF & $artxtFiles[$i] & @CRLF & _
    "konnte nicht verschoben werden, da eine Zieldatei mit dem Namen" & @CRLF & _
    $sArchiv & @CRLF & "bereits existiert!")
    EndIf
    Next

    [/autoit]
  • Hilfe bei einem Messenger

    • Schnitzel
    • 6. November 2013 um 16:42

    Du hast 2x TCPStartup() --> Wieso?
    $ConnectedSocket verwendest du erst für TCPAccept und später überschreibst du es dann durch ein TCPConnect --> Dein Server versucht auf sich selbst zu verbinden --> Das passt nicht
    Auch im Client ist so einiges drin das keinen Sinn macht.

    Und versteh mich nicht falsch. Das ist nicht böse gemeint, wenn ich sage, dass das zusammenkopiert ist.
    Fast jeder fängt mal so an.
    Aber wenn du einen Chat mit ein paar weiteren Funktionen bauen willst dann solltest du das was bisher in deinem Script ist auch verstehen.
    Tutorials gibt es genügend. Kannst ja mal einen Blick in meine Signatur werfen ;)

    Wenn man es versteht bekommt man von der Funktionsweise das was du bisher hast auf geschätzt 30 Zeilen pro Script ( Server / Client ).

  • DOS-Fenster verstecken und Befehle in Textdatei

    • Schnitzel
    • 6. November 2013 um 09:19

    Wenn du @ComSpec & " /k " verwendest dann bleibt die Konsole offen und du siehst den Output.
    Was genau du ausführst kannst du dir doch mit einem Consolewrite ausgeben lassen:

    [autoit]

    ConsoleWrite(@ComSpec & " /c " & "C:\Programme\Java\jdk1.7.0_45\bin\native2ascii -reverse -encoding utf8 " & $Pfad & $k & " " & $Pfad & $k & @LF)

    [/autoit]


    Probier am besten von Hand mal ob das ausgegebene auch funktioniert.
    Hast du im $pfad oder in $k eventuell Leerzeichen?

  • DOS-Fenster verstecken und Befehle in Textdatei

    • Schnitzel
    • 5. November 2013 um 18:23

    Sorry hatte ich vergessen:

    [autoit]

    #include <Constants.au3>

    [/autoit]

    @SW_HIDE musst man nich zwingend mit @ComSpec verwenden. Die Frage ist nur ob sich native2ascii.exe verstecken lässt oder nicht.
    Ist das eine Konsolenanwendung? Oder eine anwendung mit eigener GUI?
    Java Fenster lassen sich selten gut steuern :S
    Du kannst es auch mal so ausprobieren:

    [autoit]

    RunWait(@ComSpec & " /c " & "C:\Programme\Java\jdk1.7.0_45\bin\native2ascii -reverse -encoding utf8 " & $Pfad & $k & " " & $Pfad & $k, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

    [/autoit]
  • Dell ServieTag an URL anfügen

    • Schnitzel
    • 5. November 2013 um 16:03

    Wie i2c schon sagt liegt das Problem nicht am Shellexecute sondern wohl eher an dem anderen Zeug das du so machst.
    Damit das Script zuverlässig funktioniert solltest du paar Dinge ändern.
    Statt dem ganzen Tab gesende solltest du GUICtrlSetState ($CTRL, $GUI_FOCUS ) verwenden
    Statt Send("^c") gibt es bestimmt auch was besseres. Was ist das für ein Fenster namens "Rank"?
    Lässt sich das service tag nicht besser auslesen? Controlgettext() etc.

  • Wiederherstellung einer Verzeichnisstruktur

    • Schnitzel
    • 5. November 2013 um 15:09

    Den Ansatz habe ich dir hier gepostet:
    https://autoit.de/index.php?page…1054#post351054

    Warum machst du es nicht so?

  • Hilfe bei einem Messenger

    • Schnitzel
    • 5. November 2013 um 13:54

    Es gibt einzeilige IF's und mehrzeilige bei einzeiligen. Siehe Hilfe
    Du solltest erstmal die Basic's verstehen bevor du irgendwelche Scripte zusammenkopierst.
    Es hilft dir sicher nichts irgendwelche Variablen zu überschreiben die du später noch benötigen würdest (siehe $ConnectedSocket...)

  • Wiederherstellung einer Verzeichnisstruktur

    • Schnitzel
    • 5. November 2013 um 13:44
    Zitat von mr_merlin

    Es wird lediglich das eingegebene Zielverzeichnis erstellt und dort hinein alle Dateien verschoben.


    Das ist genau das was die Funktion macht. Vom Anlegen der Ordnerstruktur im Zielverzeichnis war nie die Rede ^^

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™