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

  • myAutorun - Die Alternative zur 'autorun.inf'

    • BinDannMalWeg
    • 26. Juni 2012 um 16:13

    Also erstmal muss ich sagen, dass dieses Script aus Langeweile entstand und ich deshalb keine besonders ausführliche Anleitung geschrieben habe. Aber wenn ich Zeit habe werde ich den Startpost mal überarbeiten...
    Blume: Natürlich könnte man eine derartige Abfrage einbauen, aber meiner Meinung wäre dies unnötig, da es nie Viren geben wird die mein kleines Script ausnutzen, da es sich schlicht weg nicht lohnen würde. :D Erstens bin ich mir nicht sicher ob es außer mir überhaupt irgendjemand auf der Welt benutzt und Zweitens lässt dich der Name der Autorun Datei im Script beliebig umstellen, was das ganze noch einmal 'sichert'.

  • USB Autorun

    • BinDannMalWeg
    • 25. Juni 2012 um 21:29

    *Hust* hier *Hust* *Hust*

  • Offlinelogger --Probleme mit timer / while-Schleife

    • BinDannMalWeg
    • 24. Juni 2012 um 15:59

    Ich weis, dass Lottich jetzt sein eigenes Script verwendet, aber da ich auch schon eine kürzere Version geschrieben habe, die auch mehr Webserver verwenden kann wollte ich sie euch nicht vorenthalten... :P

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    Global $State = False, $Round = TimerInit(), $LogFile = @ScriptDir & '\InternetLogger.ini', $Server[5] = [4, 'www.google.com', 'www.facebook.com', 'www.youtube.com', 'www.yahoo.com'], $Intervall = 1, $Timeout = 4000

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

    While 1
    $Offline = 0
    For $i = 1 To $Server[0]
    If Ping($Server[$i], $Timeout) = 0 Then $Offline += 1
    Next
    If $Offline = $Server[0] Then
    If Not $State Then
    $State = TimerInit()
    IniWrite($LogFile, 'detailierte Liste', @HOUR & ':' & @MIN & ':' & @SEC & @TAB & @MDAY & '/' & @MON & '/' & @YEAR & @TAB, @TAB & 'Offline' & @TAB & 'Internetverbindung verloren!')
    ; wir sind offline...
    EndIf
    Else
    If $State Then
    $OfflineTime = Round(TimerDiff($State), 0)
    $State = False
    IniWrite($LogFile, 'Ausfälle', 'Anzahl', Number(IniRead($LogFile, 'Ausfälle', 'Anzahl', 0)) + 1)
    IniWrite($LogFile, 'Ausfälle', 'Zeit total', Number(IniRead($LogFile, 'Ausfälle', 'Zeit total', 0)) + $OfflineTime)
    IniWrite($LogFile, 'detailierte Liste', @HOUR & ':' & @MIN & ':' & @SEC & @TAB & @MDAY & '/' & @MON & '/' & @YEAR & @TAB, @TAB & 'Online' & @TAB & 'Wieder online mit der IP ' & _GetIP() & ' nach ' & $OfflineTime & 'ms')
    ; wir sind wieder online nach $OfflineTime millisekunden...
    EndIf
    EndIf
    $Sleep = ($Intervall * 1000) - TimerDiff($Round)
    If $Sleep > 0 Then Sleep($Sleep)
    $Round = TimerInit()
    WEnd

    [/autoit]
  • Automatischer Rechner

    • BinDannMalWeg
    • 24. Juni 2012 um 15:07

    Ich habe diesen Thread jetzt zwar nur mal schnell überflogen, aber mir ist eine Sache am Ablauf nicht ganz klar geworden. Zuerst macht der User eine 6 stellige Eingabe. Diese wird dann mit Hilfe von

    [autoit]

    $Input2 = $Input - Int($Input/32)*32

    [/autoit]

    in eine andere Zahl umgerechnet. So weit so gut, aber wo her soll das Script jetzt wissen, dass zum Beispiel beim Ergebnis 0 dem Preis 12 beträgt? Oder meinst du mit deiner letzten Frage genau das? Wenn de so ist, könntest du die Ergebnisse und die dazu gehörigen Preise ja in einer Datei speichern, diese beim Start des Scripts in ein Array einlesen...

  • Offlinelogger --Probleme mit timer / while-Schleife

    • BinDannMalWeg
    • 23. Juni 2012 um 21:43

    Ich will an dieser Stelle nur mal anmerken, dass es nicht sehr zuverlässig ist nur Google.de anzupingen. Währe es nicht viel sinnvoller eine Reihe von Webseiten anzupingen? Wenn dann alle Server nicht reagieren kann man sicher davon ausgehen, dass gerade keine Internetverbindung besteht...

  • nach neue starten Windows Desktop wiederherstellen?

    • BinDannMalWeg
    • 21. Juni 2012 um 20:20

    Für so etwas gibt es doch spezielle Hardware Lösungen, wie sie in vielen Schulen eingesetzt werden.

  • Schleife per Mausklick/Tastendruck beenden - Prozessorlast begrenzen

    • BinDannMalWeg
    • 19. Juni 2012 um 16:42

    Also erstmal muss ich auch dir leider sagen, dass meine Glaskugel noch immer in Reparatur ist, weshalb ich und auch die Anderen hier im Forum dir wohl so nicht helfen können. Was lernen wir daraus? Genau einfach mal das eigene Script posten, dann wird auch geholfen... ;)
    Da ich dein Script ja nicht kenne kann ich jetzt nichts genaueres sagen, aber ich vermute du hast eine Endlos-Schleifen, die die CPU-Auslastung in die Höhe treibt. Bau doch einfach mal ein

    [autoit]

    Sleep(500)

    [/autoit]

    in die Schleife ein...

  • GDI+ Schaltflächen mit Auto-Scrolling

    • BinDannMalWeg
    • 19. Juni 2012 um 12:49

    *hust* hier *hust* *hust*

  • GDI+ Schaltflächen mit Auto-Scrolling

    • BinDannMalWeg
    • 19. Juni 2012 um 11:05

    Hey um deine Fragen zu beantworten:

    Zitat

    Wie arbeitet GDI+?

    Du musst es dir so vorstellen, als wäre das Arsenal an GDI-Befehlen eine Kiste mit ganz ganz ganz vielen verschieden Malwerkzeugen. Natürlich brauchst du eine Fläche, auf der du malen kannst, deshalb erstellt man sich zum Beispiel eine GUI oder ein 'Bild'. In deinem Script hast du dann eine Hauptschleife, in der du die GUI erst übermalst und dann alles was auf der GUI zu sehen sein soll nacheinander mit den GDI-Befehlen drauf malst. Je nachdem wie schnell/langsam dies geschieht kann es auch zu Ruckeln/Flackern kommen. Dazu kannst du dich mal mit dem Thema Back-/Front-Buffer beschäftigen.

    Zitat

    Welche Probleme werden generell mit GDI+ gelöst?

    Zum Einen fast alles was mit Bildern zutun hat. (zB.: Bilder drehen/verkleinern/verzerren/anmalen/übermalen/färben/...) Zum Anderen ist es auch, wie oben schon beschrieben, möglich auf GUIs zu zeichnen und damit dann zum Beispiel Buttons und Co im eigenen Style zu erstellen. Auch kleinere Spiele lassen sich problemlos mit GDI+ erstellen. (Genauer gesagt das zeichnen 'des Spiels' auf die GUI...)

    Zitat

    Wie erstellt man damit Elemente?

    Ich nehme jetzt einfach mal an, dass du mit 'Elemente' GUI-Controls meinst. In der Regel geht man so vor, dass man mit einem Grafikprogramm seiner Wahl entsprechende Grafiken für die Controls erstellt und sie dann mit GDI+ auf die GUI zeichnet...

    Zitat

    Gibt es dafür eine Art Designer?

    Nein. Man benutzt, wie oben schon beschrieben, ein Grafikprogramm ala Photoshop/Gimp... ;)

  • Pixelchecksum und Maus

    • BinDannMalWeg
    • 19. Juni 2012 um 10:45

    Sorry meine Glaskugel ist immer noch in Reparatur... :thumbdown:
    Wärst du so freundlich uns auch dein Script zu zeigen? Außerdem wäre es bestimmt hilfreich, wenn wir wüsten um was für ein Fenster es sich handelt... ;)

  • Farbe in einem bestimmten Feld erkennen (nicht auf einzelne Pixel bezogen)

    • BinDannMalWeg
    • 18. Juni 2012 um 16:23

    Ich weis ja nicht, aber wenn man auch nur ein kleines bisschen Englisch kann, dann sollte man die Fehlermeldungen von Autoit doch verstehen können... ?(

    Zitat

    Line 5 (File:"C:\\blablabla"):

    $color = PixelGetColor($coord[0], $coord[1])

    §color = PixelGetColor($coord^ ERROR

    Error: Subscript used with non-Array variable.


    Ganz einfach: $coord ist kein Array! Deshalb olltest du vorher immer überprüfen, ob dem so ist. Dazu könntest du dir ja mal die Funktion IsArray() anschauen... ;)

  • exe tut nicht was das Script tut

    • BinDannMalWeg
    • 18. Juni 2012 um 14:57

    Nein wenn die 7za.exe im selben Verzeichnis wie das Script liegt passt das schon so... ;)

  • exe tut nicht was das Script tut

    • BinDannMalWeg
    • 18. Juni 2012 um 13:00

    Ich weis ja nicht wie diese 7za.exe genau funktioniert, aber ich würde mal sagen da fehlt ein Leerzeichen nach dem Parameter '-o' in Zeile 22.

  • AUs datei lesen vergleich und lesen.

    • BinDannMalWeg
    • 17. Juni 2012 um 20:41

    Junge, jetzt erklär uns Unwissenden doch bitte mal ganz einfach was du den überhaupt machen willst. ?(

  • AUs datei lesen vergleich und lesen.

    • BinDannMalWeg
    • 17. Juni 2012 um 20:32

    Sorry aber hast du meinen Post überhaupt gelesen? :huh:
    Bitte erklär uns doch mal den Unterschied zu deinem letzten Thread?! ?(
    Okay

  • AUs datei lesen vergleich und lesen.

    • BinDannMalWeg
    • 17. Juni 2012 um 20:24

    Also erstmal warum bist du nervös? :huh:
    Außerdem ist das was du da beschreibst nicht exakt das Script, das ich dir in deinem letzten Thread geschrieben habe??? ?(
    Und diese 'Ich brauche, ganz schnell'-Tour naja... :thumbdown:
    Aber wenn du es schon selbst versucht hast, dann kannst du uns ja mal dein Script zeigen. :)

  • AUs datei lesen vergleich und lesen.

    • BinDannMalWeg
    • 17. Juni 2012 um 20:12

    Sorry aber bitte was willst du? :huh:
    Außerdem möchte ich dich bitten dir vielleicht mal die wirklich sehr guten Grund-Tutorials hier im Forum anzusehen. ;) Wir können dir schließlich nicht alles vorkauen...

  • myAutorun - Die Alternative zur 'autorun.inf'

    • BinDannMalWeg
    • 16. Juni 2012 um 16:17

    myAutorun ist eine von mir entwickelte Alternative zur 'autorun.inf' unter Windows. Da die Windows eigene Autostart-Funktion für CDs, USB-Sticks und HDDs schon oft von Viren, Trojanern und Co zur Verbreitung ausgenutzt wurde, hat Windows sie deaktiviert. So konnte zwar die Weiterverbreitung einiger Schadprogramme eingedämmt werden, allerdings ging auch eine wirklich nützliche Funktion mit drauf. :thumbdown:
    myAutorun schafft diesem Problem Abhilfe! Mit myAutorun lassen sich kinderleicht, eigene Autostart-Dateien erstellen, die nach der einmaligen Installation von myAutorun auf ihrem Computer, bei jedem Anschließen ausgeführt werden. Erstellen sie Autostarts für CDs, USB-Sticks, Festplatten und sogar Netzlaufwerke! Da myAutorun sich zum einen nicht weit verbreiten wird und zum Anderen sogar der Name der Autostart-Scripte beliebig änderbar ist, wird es keine Viren geben die myAutorun ausnutzen. So können sie fast alle Vorteile von automatischen Autoruns nutzen, ohne zusätzlich Gefahr zu laufen, dass sich ihr Computer über ihr mobilen Speichermedien neue Viren einfängt...
    Quellcode

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <INet.au3>
    #include <Process.au3>
    ; Test auf Parameter-Unterfunktionen:
    If Not @Compiled Then Exit
    If $CmdLineRaw <> '' Then __CheckCmdLine($CmdLineRaw)
    ; Variablen/Konstanten deklarieren:
    Global $DriveList[1] = [0]
    Global Const $__AutorunFileName = 'autorun.txt', $__DriveCheckSleep = 1000, $__ShowTrayInfo = True, $__TrayInfoTimeout = 3

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

    While 1 ; Hauptschleife
    Do
    Sleep($__DriveCheckSleep)
    $NewDrive = __NewDriveConnected()
    Until $NewDrive[0] > 0 ; Warten bis neue Laufwerke gefunden werden...
    For $i = 1 To $NewDrive[0] Step +1
    If FileExists($NewDrive[$i] & '\' & $__AutorunFileName) Then
    __TrayInfo('Neues Laufwerk mit Autorun... (' & StringUpper($NewDrive[$i]) & '\' & ')')
    __AutoRun($NewDrive[$i]) ; Autorun-Datei auf neuem Laufwerk ausführen...
    Else
    __TrayInfo('Neues Laufwerk ohne Autorun... (' & StringUpper($NewDrive[$i]) & '\' & ')')
    EndIf
    Next
    WEnd

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

    Func __AutoRun($Drive) ; Ausführen von vorhanden Autorun-Datein mithilfe von Parameterübergaben an 2. Session dieser Exe...
    Local $File = FileOpen($Drive & '\' & $__AutorunFileName, 0), $CurrentLine = 0, $Seperator
    If $File <> -1 Then
    While 1
    $CurrentLine += 1
    $Line = FileReadLine($File, $CurrentLine)
    If @error Then ExitLoop
    $Seperator = StringInStr($Line, '=')
    If $Seperator Then
    $Command = StringLower(StringLeft($Line, $Seperator - 1))
    $Content = __ReplaceVars(StringTrimLeft($Line, $Seperator), $Drive)
    Switch $Command
    Case 'message'
    If $Content <> '' Then ShellExecute(@ScriptFullPath, ' message:' & $Content)
    Case 'shellexecute'
    If $Content <> '' Then ShellExecute(@ScriptFullPath, ' shellexecute:' & $Content)
    Case 'execute'
    If $Content <> '' Then ShellExecute(@ScriptFullPath, ' execute:' & $Content)
    Case 'run'
    If $Content <> '' Then ShellExecute(@ScriptFullPath, ' run:' & $Content)
    Case 'cmd'
    If $Content <> '' Then ShellExecute(@ScriptFullPath, ' cmd:' & $Content)
    Case 'sleep'
    Sleep($Content)

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

    Case Else
    __TrayInfo('Unbekannter Befehl: "' & $Command & '" in ' & $Drive & '\' & $__AutorunFileName & ' gefunden!', 2)
    EndSwitch
    EndIf
    WEnd
    Else
    __TrayInfo(StringUpper($Drive) & '\' & $__AutorunFileName & ' konnte nicht gelesen werden!', 3)
    EndIf
    EndFunc ;==>__AutoRun

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

    Func __NewDriveConnected($TYP = 'ALL')
    Local $i, $y, $NewList, $Found, $Del[1] = [0], $Return[1] = [0]
    $NewList = DriveGetDrive($TYP)
    ; Entfernte Drives null setzen:
    For $i = 1 To $DriveList[0] Step +1
    $Found = False
    For $y = 1 To $NewList[0] Step +1
    If $DriveList[$i] = $NewList[$y] Then
    $Found = True
    ExitLoop
    EndIf
    Next
    If Not $Found Then
    _ArrayAdd($Del, $i)
    $Del[0] += 1
    EndIf
    Next
    ; Null gesetzte Drives löschen:
    For $i = 1 To $Del[0] Step +1
    _ArrayDelete($DriveList, $Del[$i])
    Next
    ; Neues Drive finden:
    For $i = 1 To $NewList[0] Step +1
    $Found = False
    For $y = 1 To $DriveList[0] Step +1
    If $NewList[$i] = $DriveList[$y] Then
    $Found = True
    ExitLoop
    EndIf
    Next
    If Not $Found Then
    _ArrayAdd($Return, $NewList[$i])
    $Return[0] += 1
    EndIf
    Next
    $DriveList = $NewList
    Return $Return
    EndFunc ;==>__NewDriveConnected

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

    Func __TrayInfo($Text, $Style = 1)
    If $__ShowTrayInfo Then TrayTip('myAutorun', $Text, $__TrayInfoTimeout, $Style)
    EndFunc ;==>__TrayInfo

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

    Func __CheckCmdLine($Code)
    $Seperator = StringInStr($Code, ':')
    If $Seperator = 0 Then Exit
    $Command = StringLower(StringLeft($Code, $Seperator - 1))
    $Content = StringTrimLeft($Code, $Seperator)
    Switch $Command
    Case 'message'
    MsgBox(0, 'myAutorun', $Content, 0)
    Case 'shellexecute'
    ShellExecute($Content)
    Case 'execute'
    Execute($Content)
    Case 'run'
    Run($Content)
    Case 'cmd'
    _RunDos($Content)
    EndSwitch
    Exit
    EndFunc ;==>__CheckCmdLine

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

    Func __ReplaceVars($String, $Drive)
    $String = StringReplace($String, '%drive%', $Drive, 0, 0)
    $String = StringReplace($String, '%hour%', @HOUR, 0, 0)
    $String = StringReplace($String, '%min%', @MIN, 0, 0)
    $String = StringReplace($String, '%sec%', @SEC, 0, 0)
    $String = StringReplace($String, '%year%', @YEAR, 0, 0)
    $String = StringReplace($String, '%month%', @MON, 0, 0)
    $String = StringReplace($String, '%mday%', @MDAY, 0, 0)
    $String = StringReplace($String, '%user%', @UserName, 0, 0)
    $String = StringReplace($String, '%pcname%', @ComputerName, 0, 0)
    $String = StringReplace($String, '%crlf%', @CRLF, 0, 0)
    $String = StringReplace($String, '%lf%', @LF, 0, 0)
    $String = StringReplace($String, '%cr%', @CR, 0, 0)
    $String = StringReplace($String, '%lan%', @IPAddress1, 0, 0)
    $String = StringReplace($String, '%wan%', _GetIP(), 0, 0)
    $String = StringReplace($String, '%fullpath%', $Drive & '\' & $__AutorunFileName, 0, 0)
    Return $String
    EndFunc ;==>__ReplaceVars

    [/autoit]


    Befehle

    Spoiler anzeigen

    Bei den unten aufgeführten Befehl ist zu beachten, dass die Groß- und Kleinschreibung keine Beachtung findet. Außerdem sollte jeder Befehl in eine neue Zeile geschrieben und durch ein '='-Zeichen, ohne Leerzeichen, von seinem Parameter getrennt werden.

    Anzeigen einer Nachricht auf dem Bildschirm:

    Code
    Message=Dieser Text wird in einer Messagebox angezeigt.


    Ausführen/Anzeigen von Dateien/Links usw.:
    (Äquivalent zum Windows-Befehl 'ShellExecute')

    Code
    ShellExecute=notepad
    ShellExecute=http://www.autoit.de/


    Ausführen eines Strings/Autoit-Befehls:
    (siehe Autoit-Befehl 'Execute')

    Code
    Execute=Beep(500,1000)
    Execute=FileDelete(%fullpath%)


    Ausführen von Programmen:

    Code
    Run=%drive%\text.exe


    Auführen von Dos-Befehlen:

    Code
    cmd=echo Hallo Welt! > test.txt


    Anhalten der Script-Abarbeitung für x Millisekunden:

    Code
    Sleep=x


    Weitere Befehle werden noch ergänzt...
    Außerdem können in den Parametern aller Befehle folgende Makros genutzt werden:

    Code
    %dive%		aktuelles Laufwerk in der Form 'C:'
    %hour%		aktuelle Stundenzahl
    %min%		aktuelle Minutenzahl
    %sec%		aktuelle Sekundenzahl
    %year%		aktuelles Jahr
    %month%		aktueller Monat (als Zahl)
    %mday%		aktueller Tag des Monats
    %user%		aktueller Beuntzername
    %pcname%	aktueller Computername
    %crlf%		Zeilenumbruch
    %cr%		Ascii-Zeichen 13
    %lf%	 	Ascii-Zeichen 10
    %lan%		lokale IP-Adresse
    %wan%		globale IP-Adresse
    %fullpath%	kompletter Pfad zum Autorun-Script
    Alles anzeigen

    Beispiel Autostart-Script:

    Spoiler anzeigen
    Code
    message=Danke das du auf deinem Computer ('%pcname%') myAutorun installiert hast. %crlf%Heute ist der %mday%.%month%.%year% und wir haben gerade %hour%:%min%:%sec%Uhr. %crlf%Deine lokale IP ist die %lan% und global hast du gerade die IP %wan% ;)
    Message=Hallo %user%!
    execute=Beep(500, 1000)
    cmd=echo Ich bin eine Autorun-Datei auf dem Laufwerk %drive% und um mich zu finden brauchst du diesen Pfad  '%fullpath%' > %drive%\Neue-Textdatei-aus-Autostart-Script.txt
    shellexecute=notepad

    Alle Dateien finden sich auch im Anhang... ;)

    Dateien

    myAutorun.zip 370,1 kB – 680 Downloads
  • Logindaten in php File auslagern

    • BinDannMalWeg
    • 14. Juni 2012 um 16:29

    War das ganze nicht so gedacht, dass das dein Autoit-Script über INetGet() das PHP-Script mit bestimmten Parametern aufruft, welches dann eine Verbindung zur Datenbank aufbaut, damit deine Datenbank-Daten nicht im Autoit-Script oder auf dem User-Computer auftauchen? ?(

  • eigene *.dll mit autoit schreiben??

    • BinDannMalWeg
    • 14. Juni 2012 um 15:45

    Doch der sogenannte 'Interpreter' ist Autoit! :D Du musst dir das so vorstellen: Bei der Installation von Autoit auf deinem PC wurde eben dieser Interpreter (In Form der Autoit.exe) auf deinen PC kopiert. Jedes mal wenn du eines deine Scripte ausführst, wird nur dieser Autoit-Interpreter mit dem Pfad zu deinem Script aufgerufen. Der Interpreter geht jetzt, vereinfacht gesagt, dein Script 'zeilenweise' durch und führt die Befehle aus. Wenn du dein Autoit-Script mit Aut2Exe.exe zu einer Exe-Datei 'konvertierst', passier nichts anderes, als das der Interpreter (Autoit.exe) gemeinsam mit deinem Script in eine neue Exe-Datei gesteckt wird. Wenn du nun diese neue Exe-Datei ausführst, dann wird nur der Interpreter aus der Exe heraus gestartet und dieser 'interpretiert' dein Script dann... ;)
    Edit: progandy war schneller... :D

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™