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. BinDannMalWeg

Beiträge von BinDannMalWeg

  • 3CX Phone mit einem AutoItscript ansprechen

    • BinDannMalWeg
    • 7. Oktober 2012 um 12:25

    Soll das heißen du hast noch gar keinen Ansatz bzw. ein Script oder ein Handbuch zur möglicherweise vorhandenen API? ?(
    Am beten wäre es dann wohl, wenn du erst einmal erklären würdest, was ein "3cxPhone" denn ist und dann vielleicht auch noch wie man es ansprechen/benutzen kann. Denn ich für meinen teil werde mir sicher nicht das 100 Seiten Handbuch durchlesen um dann festzustellen, dass du das aber gerne so und so machen würdest... ;)

  • Server Restart Script

    • BinDannMalWeg
    • 6. Oktober 2012 um 17:09

    Auch wenn das Problem jetzt schon gelöst ist, wollte ich euch nur mal darauf aufmerksam machen, dass sich das Script nochmal um 75% kürzen lässt:

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    Global $aBat[4][2] = [["C:\SERVER\DE 2471\arma 2 operation arrowhead\", "DE 2471.bat"],["C:\SERVER\Offizielle DayZ Privat Server\Sons Of Anarchy #2 Chernarus Server\", "dayz_server.bat"], _
    ["C:\SERVER\Offizielle DayZ Privat Server\Sons Of Anarchy #3 Lingor Island Server\", "dayz_lingor_server.bat"],["C:\SERVER\Offizielle DayZ Privat Server\Sons Of Anarchy #4 1.7.2.6.1\", "dayz_server.bat"]]
    Global $Server[4] = [4, 2, 3, 1]

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

    While 1
    For $i = 0 To 3
    Do
    Sleep(1000 * 60)
    Until @MIN = 00
    _Restart($Server[$i])
    If @error = 1 Then ConsoleWrite('Server ' & $Server[$i] & ' ist abgeschaltet' & @LF)
    Next
    WEnd

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

    Func _Restart($iServer)
    Local $aPorts[5] = ["2302", "2308", "2309", "2322"], $iSleep = 60000
    If Not WinExists("ArmA 2 OA Console version 1.62 : port " & $aPorts[$iServer - 1]) Then SetError(1, 1)
    WinClose("ArmA 2 OA Console version 1.62 : port " & $aPorts[$iServer - 1])
    Sleep($iSleep)
    ShellExecute($aBat[$iServer - 1][1], "", $aBat[$iServer - 1][0])
    If @error Then SetError(2, 2)
    EndFunc ;==>_Restart

    [/autoit]

    8)

  • Textfile bearbeiten - gar nicht so einfach..

    • BinDannMalWeg
    • 4. Oktober 2012 um 21:54

    Meins funktioniert bei mir ja auch autoBert... ^^ Aber ich denke das Programm das die Datei verarbeitet wird da irgendwie Mist bauen... :whistling:

  • Versenden von Informationen

    • BinDannMalWeg
    • 4. Oktober 2012 um 21:42

    An dieser Stelle möchte ich nur mal kurz auf das hier aufmerksam machen. :whistling: Sorry das musste einfach erstmal sein, da es wieder einmal einfach nur passt...
    Nun zum eigentlichen Teil meiner Hilfestellung: Ich würde dir empfehlen, das selbst in die Hand zu nehmen. Denn zum Einen verstehst DU dann was genau das 'Programm' tut und wie es funktioniert und zum Anderen kannst du dann auch selbst Änderungen/Verbesserungen/Erweiterungen vornehmen... Außerdem ist Autoit wirklich sehr anfängerfreundlich und zu fast jedem Problem, das DU haben könntest wirst du hier in einem der Threads eine passende Antwort finden und wenn dem mal nicht so ist: fragen kostet ja nichts... ;)

  • iniread url auslesen?

    • BinDannMalWeg
    • 4. Oktober 2012 um 19:58

    Nein. Für so etwas gibt es InetRead() ;)
    Aber an deinen Fragestellungen solltest du echt arbeiten...

  • MD5 von einem Prozess raus bekommen

    • BinDannMalWeg
    • 4. Oktober 2012 um 16:49
    Zitat von TheBeatMaker111

    Irgendwie klappt das nicht, ich gebe dir MD5-Hash's ein und das Programm beendet den Prozess einfach nicht..

    Möglicher Weise wird der Programmpfad durch die "_ProcessGetPath()" Funktion nicht richtig erkannt. Was für Programme versuchst du denn zu sperren? Genügt nicht ein vergleich des Prozessnamens? Bist du dir sicher, dass du korrekte MD5-Hashes der Programm Dateien verwendet hast?

  • MD5 von einem Prozess raus bekommen

    • BinDannMalWeg
    • 3. Oktober 2012 um 23:33
    Zitat von TheBeatMaker111

    Mach ich des schon?

    Nein... ^^ Hier ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <Crypt.au3>
    #include <File.au3>
    Local $File, $Filter = '%'
    _FileReadToArray(@ScriptDir & '\md5.txt', $File)
    For $i = 1 To $File[0]
    $Filter &= $File[$i] & '%'
    Next

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

    While Sleep(500)
    $List = ProcessList()
    If IsArray($List) Then
    For $i = 1 To $List[0][0]
    $Path = _ProcessGetPath($List[$i][1])
    If FileExists($Path) And $Path <> '?' Then
    ConsoleWrite($Path & @LF)
    $MD5 = _Crypt_HashFile($Path, $CALG_MD5)
    If StringRegExp($Filter, '%' & $MD5 & '%') Then ProcessClose($List[$i][1])
    EndIf
    Next
    EndIf
    WEnd

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

    Func _ProcessGetPath($PID) ; http://www.autoit.de/index.php?page=Thread&threadID=4669
    $Path = DllStructCreate("char[1000]")
    $dll = DllOpen("Kernel32.dll")
    $handle = DllCall($dll, "int", "OpenProcess", "dword", 0x0400 + 0x0010, "int", 0, "dword", $PID)
    $ret = DllCall("Psapi.dll", "long", "GetModuleFileNameEx", "long", $handle[0], "int", 0, "ptr", DllStructGetPtr($Path), "long", DllStructGetSize($Path))
    $ret = DllCall($dll, "int", "CloseHandle", "hwnd", $handle[0])
    DllClose($dll)
    Return DllStructGetData($Path, 1)
    EndFunc

    [/autoit]

    Du musst nur noch die "md5.txt" mit den MD5-Hash's der zu sperrenden Programme befüllen... ;)

  • MD5 von einem Prozess raus bekommen

    • BinDannMalWeg
    • 3. Oktober 2012 um 18:58

    WAS willst du machen? :huh: Was ist denn bitte ein "HD5"? Bist du dir sicher das du nicht MD5 meinst? Dazu kommt noch, dass du weder diese dubiose 'md5hash.dll' noch die Funktion 'md5hash()' die du im Script verwendest gepostet hast... Außerdem lässt sich (zumindest für mich) kein Sinn oder Verwendungszweck für dein Script erkennen. ?( Falls du vor hast eine Art "Prozess-Blocker" zu schreiben, dann macht das ganze Rumhantieren mit MD5 aber auch keinen Sinn, da du dann auch gleich den Prozessnamen vergleichen könntest.... Also bitte versuche nochmal dein Vorhaben und dein Problem in einem ordentlichen Post zu beschreiben. Okay? ;)

  • Textfile bearbeiten - gar nicht so einfach..

    • BinDannMalWeg
    • 3. Oktober 2012 um 18:36

    Kein Ding... ^^

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3> ; Kann nach Test mit _ArrayDisplay gelöscht werden...

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

    _SetState(0, @ScriptDir & '\t.txt') ; Nichts auskommentiert
    _SetState(1, @ScriptDir & '\t.txt') ; 1 auskommentiert
    _SetState(2, @ScriptDir & '\t.txt') ; 2 auskommentiert
    _SetState(3, @ScriptDir & '\t.txt') ; Beide auskommentiert

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

    Func _SetState($State, $Path)
    Local $File = StringSplit(StringReplace(StringReplace(FileRead($Path), '!a', 'Wa'), '!e', 'Me'), @LF)
    If Not $State = 0 Then
    If $State = 1 Or $State = 3 Then
    $File[1] = '!' & StringTrimLeft($File[1], 1)
    $File[2] = '!' & StringTrimLeft($File[2], 1)
    EndIf
    If $State = 2 Or $State = 3 Then
    $File[3] = '!' & StringTrimLeft($File[3], 1)
    $File[4] = '!' & StringTrimLeft($File[4], 1)
    EndIf
    EndIf
    FileDelete($Path)
    _ArrayDisplay($File, 'State: ' & $State) ; Kann nach Test gelöscht werden...
    _FileWriteFromArray($Path, $File, 1, 4)
    EndFunc ;==>_SetState

    [/autoit]
  • Textfile bearbeiten - gar nicht so einfach..

    • BinDannMalWeg
    • 3. Oktober 2012 um 15:47

    Dann sieht deine 'Settings'-datei nicht so aus, wie du sie oben gepostet hast! Kannst du nicht das Original posten?
    Edit: Dieses Script sollte nun genau das erledigen was du vor hast:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3> ; Kann nach Test mit _ArrayDisplay gelöscht werden...

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

    _SetState(0, @ScriptDir & '\t.txt') ; Beide auskommentiert
    _SetState(1, @ScriptDir & '\t.txt') ; 1 auskommentiert
    _SetState(2, @ScriptDir & '\t.txt') ; 2 auskommentiert

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

    Func _SetState($State, $Path)
    Local $File = StringSplit(StringReplace(StringReplace(FileRead($Path), '!a', 'Wa'), '!e', 'Me'), @LF)
    If $State = 1 Or $State = 0 Then
    $File[1] = '!' & StringTrimLeft($File[1], 1)
    $File[2] = '!' & StringTrimLeft($File[2], 1)
    EndIf
    If $State = 2 Or $State = 0 Then
    $File[3] = '!' & StringTrimLeft($File[3], 1)
    $File[4] = '!' & StringTrimLeft($File[4], 1)
    EndIf
    FileDelete($Path)
    _ArrayDisplay($File, 'State: ' & $State) ; Kann nach Test gelöscht werden...
    _FileWriteFromArray($Path, $File, 1, 4)
    EndFunc ;==>_SetState

    [/autoit]
  • Textfile bearbeiten - gar nicht so einfach..

    • BinDannMalWeg
    • 3. Oktober 2012 um 15:20
    Zitat

    @ Christoph: leider läuft dein Script nicht - fehlen mir da includes?

    Nein da fehlen keine Includes, bei mir (Win7) läuft das 1a, mit einer Text-Datei die den Inhalt aus dem Startpost hat... Was bekommst denn für eine Fehlermeldung? :huh:

  • Textfile bearbeiten - gar nicht so einfach..

    • BinDannMalWeg
    • 3. Oktober 2012 um 13:29

    Ich denke das hier ist was er meint:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    Local $File, $Path = @ScriptDir & '\test.txt'
    _FileReadToArray($Path, $File)
    If @error Then Exit
    For $i = 1 To $File[0] Step +2
    If StringLeft($File[$i], 1) = '!' Then
    $File[$i] = 'W' & StringTrimLeft($File[$i], 1)
    $File[$i + 1] = 'M' & StringTrimLeft($File[$i + 1], 1)
    Else
    $File[$i] = '!' & StringTrimLeft($File[$i], 1)
    $File[$i + 1] = '!' & StringTrimLeft($File[$i + 1], 1)
    EndIf
    Next
    FileDelete($Path)
    _FileWriteFromArray($Path, $File, 1)

    [/autoit]
  • Alternative zu Send

    • BinDannMalWeg
    • 29. September 2012 um 12:58

    Ich würde mal vermuten das es nicht geht, weil der Hotkey mit dem du deine Funktion aufrufst noch gedrückt ist, wenn du die Tastenkombination sendest... Vielleicht könnte man ja eine Verzögerung einbauen, die wartet bis die Taste losgelassen wird?! ;)

  • CMD + @COMSPEC + Variablen

    • BinDannMalWeg
    • 24. September 2012 um 23:09

    Also entweder ich habe ein wichtiges Detail überlesen, oder ihr habt einfach nicht daran gedacht, dass man sowas ja auch gleich so lösen kann:

    [autoit]

    ShellExecute("Z:\test\Convert2PDF.vbs","Z:\test\5.doc")

    [/autoit]
  • PasswordCreator - Schleifenproblem

    • BinDannMalWeg
    • 24. September 2012 um 18:03
    Zitat
    [autoit]

    For $i = 1 To Execute(GUICtrlRead($inpQuantity))
    Next

    [/autoit]

    Mensch Make-Grafik... :whistling: Das könnte man ja fast schon als Beispiel, für sicherheitskritische Programmier-Fehler verwenden... :thumbup:

  • Autovervollständigung im GUICtrlCreateInput

    • BinDannMalWeg
    • 24. September 2012 um 16:11

    Solch eine Autovervollständigung im Control ist ohne weiteres nicht einfach umsetzbar! Theoretisch könnte man mit einem RichEdit als Input Ersatz arbeiten. Wenn das nichts ist wäre es auch möglich mithilfe von GDI+ den Vorschlag "in" das Inputfeld zu zeichnen... Ansonsten könnte man die Vorschläge vielleicht auch in einer ComboBox/ListBox anzeigen... ;)

  • MP3 -> Beep(Arduino) / .txt Converter

    • BinDannMalWeg
    • 23. September 2012 um 15:22
    Spoiler anzeigen

    :rofl:

    Zitat

    ich habe vor einen MP3 zu Beep Converter zu programmieren.
    Ist das möglich?
    Wenn ja wie?

    Ich will eine Rakete bauen!
    Geht das?
    Wenn ja wie?

    Schau dir am besten mal die Bass-UDF an, den die ist das momentane Maximum, wenn es um Audio und Autoit geht... Allerdings denke ich, dass du nich einfach die 'Töne' aus MP3-Dateien auslesen können wirst, da in dieser ja verschiedene Spuren parallel zu hören sind. ;)

  • Mit Autoit .reg Datei ausführen

    • BinDannMalWeg
    • 23. September 2012 um 13:43

    An dieser Stelle würde ich nur mal gerne nach dem Verwendungszweck für dieses Script fragen... ?( Denn warum braucht man ein Script, dass eine fertige Reg-Datei ausführt, welche nebenbei bemerkt eine 'Hintertür' mit Systemrechten in den Computer einpflanzt? Für den eigenen Gebrauch ist das zwar praktisch, aber es erschließt sich mir keine (nicht verbotene) Situation, in der das von Nutzen wäre... Aber egal, die Lösung wurde ja schon mehr als einmal gepostet.

    Spoiler anzeigen

    PS: Schaut da jemand Sempervideo? :P

  • Listbox Daten erkennen und addieren

    • BinDannMalWeg
    • 22. September 2012 um 15:31

    In einer INI-Section darf ein Schlüssel nur einmal vorkommen! ;) Schreib doch beide Zahlen mit einem Trennzeichen in einen Schlüssel und benutzt nach dem Auslesen StringSplit... ^^

  • Variablen Problem. (Not Easy)

    • BinDannMalWeg
    • 16. September 2012 um 13:59

    Das ist ja genau das was wir dir schon die ganze Zeit erklären möchten... :D Du gehst jetzt einfach hin und deklarierst das Array mit 3 statt mit 2 'Dimensionen'.

    [autoit]

    ;Also nicht mehr so:
    Dim $Array[11][11]
    ;Sondern so:
    Dim $Array[11][11][3]
    ; Und dann speicherst du den Wert aus der Map eben in:
    $Array[x][y][0] = 'Map'
    ;und zum Beispiel das Handle des Feld-Buttons in:
    $Array[x][y][1] = GUICtrlCreateButton()
    ; und für andere Sachen die zu eben diesem Feld gehören hast du hier natürlich auch noch Platz...

    [/autoit]

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™