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

Beiträge von alpines

  • Erstelltes auto it programm schützen

    • alpines
    • 6. Januar 2017 um 15:14

    Da gibt es tausend Wege wie man das ganze realisieren kann.

    Die meistgenutzte Variante ist die sogenannte HWID-Abfrage (Hardware-ID), die ist für jeden Computer einmalig und setzt sich aus den Komponenten und Seriennummern der Festplatten, CPU, Grafikkarte etc zusammen.

    Wenn du googlest, findest du sicherlich eine UDF die dir so eine HWID zurückgibt, dann kannst du in deinem Script einfach am Anfang eine Abfrage einfügen ob die HWID in einer bestimmten Liste enthalten ist (z.B. Person A und Person B) und wenn sie es nicht ist soll sich die Anwendung beenden.

    Du solltest dir aber dennoch eins merken: Wenn jemand gewillt ist deinen Code zu kriegen, dann schafft er das auch.

  • String suchen und ersetzen

    • alpines
    • 6. Januar 2017 um 15:04

    Ich weiß es ehrlich gesagt nicht, Botten ist sicherlich verboten, wie das mit den Konfigurationsdateien aussieht weiß ich halt nicht.

    Du musst die E-Mail eben nicht ersetzen, du ersetzt einfach die gesamte Zeile die im Index gespeichert ist. Wenn du in $aFile[$iIndex] "SET accountName" findest, dann schreibst du einfach $aFile[$iIndex] = "SET accountName ""email"""

  • SCode FTP Instant Messenger

    • alpines
    • 6. Januar 2017 um 14:20
    Zitat von SCode Germany

    Und noch mehr Infos zu mir :thumbup::party1:

    Ich habe keine Programmier Kenntnisse. Alles was du siehst habe ich aus Der AutoIt Hilfe und mit Logik zusammen gebastelt.
    Ich habe das Script in ca. 4 Tagen geschrieben und selten danach daran rum gebastelt.
    Es kamen dann Funktionen wie Datenaustausch, AFK, ECO Modus und weiter Spielereien hinzu.
    Ich habe den Code im Oktober geschrieben und kann dir jetzt immer noch sagen wo was steht ;)
    Aber für andere ist es natürlich nur Chaos 8o
    Deswegen "räume" ich jetzt gerade mal bisschen auf. Auch die langen Texte werden gekürzt.

    Ich habe den Code damals aus langer Weile geschrieben und nach langer Zeit wollte ich einfach nicht, dass es vollkommen umsonst ist. Vielleicht helfen ja paar Abschnitte manch anderen weiter, sobald Ordnung herscht.

    Aber hey es funktioniert ;) und versucht doch mal "ohne" den Code die Nachrichten zu entschlüsseln oder ein Konto zu knacken.
    Ich wollte auch Stark auf die Sicherheit wert legen.

    Gibt es denn eine Lösung, dass ich kein Passwort im Code verwenden muss?
    Beispiel Zeile 111:

    Code
    _Crypt_DecryptFile(@LocalAppDataDir & "\SCode Messenger\login.ini", @LocalAppDataDir & "\SCode Messenger\login_uc.ini", "Aa2i...", $CALG_AES_256)

    Die Konten werden ja doppelt mit dem selben Passwort verschlüssel. (Auch leider nicht sicher wie sicher dies ist)
    Beispiel Zeile 1112:

    Code
    $passwort = InputBox("SCode Messenger Identitaet", "Bitte neues Passwort eingeben:", "", "*")
    If Not @error Then
    	$passwort2 = InputBox("SCode Messenger Identitaet", "Bitte neues Passwort wiederholen:", "", "*")
    	If Not @error Then
    		If $passwort = $passwort2 Then
    			Local $RandomToken
    			Local $Letter
    			$passwort = _Crypt_EncryptData($passwort2, $passwort2, $CALG_AES_256)
    Alles anzeigen

    Ist ja auch nicht böse gemeint nur solltest du, wenn du weiter programmieren willst dir einen Stil aneignen und versuchen von Anfang an sauberen code zu schreiben, dann kannst du dir die Aufräumarbeiten am Ende nämlich sparen.

    Deine Verschlüsselung ist leider nicht sehr viel wert wenn du die Passwörter im Code hinterlegst, mit einem einfachen String-Extractor kann man diese nämlich extrahieren und anschließend die Dateien entpacken. Es wäre viel besser wenn du das z.B. mit RSA machst und public und private Keys hast.

  • String suchen und ersetzen

    • alpines
    • 6. Januar 2017 um 13:27

    Um welches Spiel handelt es sich denn so nebenbei?

    Die Datei selbst kannst du ja ganz leicht editieren, mit FileReadToArray kannst du die Dateien zeilenweise einlesen und wenn du mit StringInStr "SET accountName" in einem Index des Arrays findest überschreibst du den Index einfach mit "SET deineEmail@domain.de".

    Wenn du fertig mit den schreiben bist, kannst du mit _FileWriteFromArray oder einer einfachen For-Schleife mit FileWrite dann das ganze wieder abspeichern.

  • Erfassen ob ein Prozess komplett gestartet ist

    • alpines
    • 6. Januar 2017 um 12:02

    Hast du Zugriff auf das Programm, also auf den Programmcode oder ist es eine fremde Anwendung?

    Du könntest die Controls des Programms auslesen wie z.B. Labels die den aktuellen Status kennzeichnen.

    Wenn es eine fremde Anwendung ist, dann schau mal welche Dateien dein Prozess lädt und ob sie noch in Verwendung ist mit _WinAPI_FileInUse().
    So kannst du jede Datei überprüfen, und wenn keins mehr geöffnet ist (nehme ich mal an) ist dein Prozess zu Ende geladen.

  • Variable bilden über eine Webseiten Ausgabe

    • alpines
    • 6. Januar 2017 um 11:47

    @super47 du verwendest den falschen Link, du hast doppelt .php stehen.

    AutoIt
    MsgBox(0,0, BinaryToString(InetRead("http://net-skat.de/iskv/ergebnisse/modus_abfrage.php", 1)))
  • Fokus auf geöffnetes Programm festlegen/geht verloren

    • alpines
    • 6. Januar 2017 um 11:45

    Super, ich hab mal den grünen Haken für [gelöst] gesetzt (1. Beitrag bearbeiten).

  • String suchen und ersetzen

    • alpines
    • 6. Januar 2017 um 04:20

    Um welches Spiel handelt es sich denn? Spiele-Bots sind in der Regel verboten wie du es den Forenregeln entnehmen kannst die du bei deiner Registration akzeptiert hast.
    Es hat nämlich einen Grund warum einige Spiele das Passwort zum Account nicht abspeichern lassen, und in deren AGBs sind auch festgehalten das man Bots (in welcher Form auch immer) nicht verwenden darf.

  • SCode FTP Instant Messenger

    • alpines
    • 6. Januar 2017 um 04:13
    Zitat von SCode Germany

    Also ehrlich gesagt bin ich nur 1 Person und ich fand die Idee, dass man eigene Sachen erstellen kann (also in dem Fall einen eigenen Server für den Messenger) schon immer gut. So kann sich jeder selbst entscheiden ob er in ein großes Server Netzwerk möchte oder doch lieber mit einer eigenen Auswahl von Leuten/Gruppen/Netzwerken zusammen auf einem Server sein möchte.

    Uiuiui, wenn ich mir den Code so ansehe dann könnte ich dir auf die Finger hauen!
    Hier mal ein paar Variablennamen die mir persönlich nicht gefallen (jeder hat 'nen anderen Geschmack!)

    $ArrayAlleIdentitaeten
    $LoginFormCombo
    $FormIdentitaetenEinstellungenButtonAusfuehren
    $FormIdentitaetenEinstellungenComboEinstellungen
    $datentransfervolumenZwischenSum1
    $FormIdentitaetSuchenInputNamenssuche

    Die ganzen Variablen die du im voraus erstellst will ich erst gar nicht ansprechen, das ist ein schlechter Stil.
    Variablen sollten erst dann erstellt werden, wenn sie gebraucht werden.

    Variablenliste
    • $Schriftqualli = 0
    • $verbindungsstatus = 0
    • $TimerStart = ""
    • $AFKStatus = ""
    • $msggesendet = 0
    • $HauptIcon = 0
    • $FunktionAFK = 0
    • $FunktionECO = 0
    • $NeueDatei = 0
    • $werbung1aktiv = 0
    • $werbung1timer = 0
    • $SaftylogText = ""
    • $Werbung1 = 0
    • Local $Verlauf
    • Local $ArrayAlleNeuennachrichten
    • Local $TimerOnlinestatusAnfragen
    • Local $TimerOnlinestatusAnfragenAntiD
    • Local $hFTPSessionSCodeMessenger
    • Local $hInternetSessionSCodeMessenger
    • Local $EmpfaengerName
    • Local $EmpfaengerSicherheitstoken
    • Local $onlinestatusanfrageAntiD


    Funktionsnamen die man besser hätte treffen können
    IdentitaetErstellen()
    IdentitaetPWaendern()
    IdentitaetLoeschen()
    SicherheitsverletzungStufe1()

    Des Weiteren würde ich dir dringend dazu raten, Dateien die du häufiger ansprichst in Variablen zu packen.
    Also aus IniWrite($SCodeMessengerOrdner & "\Identitaeten\SCode Messenger Eigener Kontakt.ini", "Info", "Name", $Identitaet)
    machst du sowas wie IniWrite($sCM_OwnContactFile, "Info", "Name", $sIdentity)

    Du solltest nämlich nicht die volle Breite deines Monitors ausnutzen, nur wenige Zeilen sollten - wenn überhaupt - über die Hälfte des Screens gehen.

    Ich garantiere dir, das du wenn du an dem Projekt mal für 2 Wochen eine Pause einlegst danach nicht mehr durchsteigen wirst (wenn du nicht ein paar dieser Tipps und Tricks umsetzt).

    Ich merke aber das du lieber deinen Source in Deutsch hältst, das ist eigentlich auch soweit in Ordnung auch wenn viele andere Englisch bevorzugen würden.
    Eigne dir aber dennoch einen einheitlichen Stil an und verwende z.B. die Ungarische Notation für deine Variablen.

    Statt IdentitaetErstellen() und IdentitaetPWaendern() schreibst du lieber in Zukunft _Identity_CreateNew() _Identity_ChangePassword().

    Und zieh mal deinen Code ein wenig auseinander, klatsch nicht alles untereinander, das sieht nicht schön aus. Versuch ihn wie einen Brief zu formatieren, Absätze zu bilden.

  • SCode FTP Instant Messenger

    • alpines
    • 5. Januar 2017 um 23:03

    Herzlich Willkommen im Forum,

    da du neu hier bist würde ich dir vorschlagen, dass du das Script zum Messenger veröffentlichst, da es verdächtig rüberkommt, dass du nur Exe-Dateien mitlieferst.
    Wenn du das nicht machen möchtest, musst du eher mit milder Resonanz rechnen.

    Des Weiteren eignet sich FTP eigentlich nicht dafür Live-Chats zu betreiben, da es eher für Datenaustausch ausgelegt ist.
    Warum habt ihr euch also für FTP entschieden und nicht für ein eigenes Server/Client-Protokoll?

  • Fokus auf geöffnetes Programm festlegen/geht verloren

    • alpines
    • 5. Januar 2017 um 15:13

    Dein WinActivate Befehl ist eventuell falsch. Heißt das Fenster wirklich "C:\Program Files (x86)\Attachmate\Reflection\sftp.exe"?
    Ich weiß jetzt nicht ob es in der CMD startet und das der Fall ist, aber da muss der Fenstername hin - das kann das Problem sein.

    Ansonsten warte einfach bis das Fenster auch gefocused ist:

    AutoIt
    Do
    	WinActivate("fenstertitel")
    	Sleep(250)
    Until WinActive("fenstertitel")
  • formular drucken

    • alpines
    • 5. Januar 2017 um 14:59
    Zitat von Kanashius

    Sagt ja keiner, dass die anderen sehen müssen, dass du es mit dem InternetExplorer machst

    Schön MacGyver-mäßig, gefällt mir! :thumbup:

  • Kindern etwas spielerisch beibringen - Schritt für Schritt Anleitungen

    • alpines
    • 3. Januar 2017 um 17:03
    Zitat von AutoMit

    Wenn ich „ISN Autoit Studio“ nutze, müsste ich den Controls folgende Parameter mitgeben:

    $WS_CHILD
    $GUI_WS_EX_PARENTDRAG

    Habe ich das soweit richtig verstanden?

    $WS_CHILD musst du als ChildWindow Style setzen, $GUI_WS_EX_PARENTDRAG beim Label.

    Zitat von AutoMit

    Kann ich so jedes Control (Button, Image, Icon) zu einem "Child Window" machen?

    Du erstellst kleine Fenster wo du die Controls platzierst, du machst die Controls selbst nicht zu einem Child Window!
    Du kannst nur Elemente verschieben die den Extended Style $GUI_WS_EX_PARENTDRAG unterstützten.

    Schau einfach mal im Form Designer welche Controls das sind.

  • Doppelklick auf die Fensterleiste (Caption) einer AutoIt GUI auswerten

    • alpines
    • 3. Januar 2017 um 16:36

    Du meinst die Fensterleiste, da musst du mit den WMs rangehen.

    @AutoMit Es gibt eine Message die nur Doppelklicks annimmt und somit der Timer überflüssig wird.

    @Kanashius du kannst WM_LBUTTONDOWN nicht für die Caption registrieren. Da brauchst du $WM_NCLBUTTONDBLCLK oder $WM_NCLBUTTONDOWN.
    Das Problem bei dem Script hier ist, das das Windows Kontextmenu das zweite klicken blockiert. Du müsstest das also irgendwie deaktivieren bevor es geöffnet wird.

    Die Zusätze wie STRG und ALT kriegst du aus den Parametern mit den jeweiligen Bit-Operationen raus, schau dich einfach mal auf der msdn Seite um.

    Hier mal das ganze mit Blockade, klappt einwandfrei:

    AutoIt
    #include <WindowsConstants.au3>
    
    
    Opt("GUIOnEventMode", 1)
    $hGUI = GUICreate("Form1", 183, 62, -1, -1)
    GUIRegisterMsg($WM_CONTEXTMENU, _ContextMenu)
    GUIRegisterMsg($WM_NCLBUTTONDBLCLK, _Label_Click)
    GUIRegisterMsg($WM_NCRBUTTONDOWN, _Label_Click)
    GUISetOnEvent(-3, _Exit)
    
    
    $hLabel = GUICtrlCreateLabel("Caption", 48, 16, 94, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    
    
    While Sleep(10)
    WEnd
    
    
    Func _ContextMenu($hWnd, $nMsg, $wParam, $lParam)
    	Return 0
    EndFunc
    
    
    Func _Label_Click($hWnd, $nMsg, $wParam, $lParam)
    	MsgBox(0,0,$hWnd & @CRLF & $nMsg & @CRLF & $wParam & @CRLF & $lParam)
    	Return 0
    EndFunc
    
    
    Func _Exit()
    	Exit
    EndFunc
    Alles anzeigen
  • Doppelklick auf die Fensterleiste (Caption) einer AutoIt GUI auswerten

    • alpines
    • 3. Januar 2017 um 16:02

    Hier hast du mal ein Beispiel wie das ganze aussehen kann, den Linksklick habe ich ebenfalls mit einem GUIEvent gelöst und nicht per GUICtrlSetOnEvent, weil das Event auf dem Control komischerweise jedes mal über 400ms braucht. Das ganze kann man sicherlich schöner lösen aber es tut seinen Job:

    AutoIt
    #include <GUIConstantsEx.au3>
    
    
    Global Const $I_THRESHHOLD = 750
    Global $bRightClicked, $bLeftClicked
    Global $tmrRightClick, $tmrLeftClick
    
    
    Opt("GUIOnEventMode", 1)
    $hGUI = GUICreate("Form1", 183, 62, -1, -1)
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, _Label_Click)
    GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, _Label_Click)
    GUISetOnEvent($GUI_EVENT_CLOSE, _Exit)
    
    
    $hLabel = GUICtrlCreateLabel("Caption", 48, 16, 94, 33)
    GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    
    
    While Sleep(10)
    WEnd
    
    
    Func _Label_Click()
    	$aInfo = GUIGetCursorInfo()
    
    
    	If $aInfo[4] = $hLabel Then
    		If $aInfo[2] Then ;Primary Down
    			If Not $bLeftClicked Then
    				$tmrLeftClick = TimerInit()
    				$bLeftClicked = True
    			Else
    				If TimerDiff($tmrLeftClick) >= $I_THRESHHOLD Then
    					GUICtrlSetData($hLabel, Round(TimerDiff($tmrLeftClick), 0) & "ms")
    					GUICtrlSetColor($hLabel, 0xFF0000)
    					$bLeftClicked = True
    					$tmrLeftClick = TimerInit()
    				Else
    					GUICtrlSetData($hLabel, Round(TimerDiff($tmrLeftClick), 0) & "ms")
    					GUICtrlSetColor($hLabel, 0x00FF00)
    					$bLeftClicked = False
    
    
    					;Erfolgreicher Links-Doppelklick
    				EndIf
    			EndIf
    		ElseIf $aInfo[3] Then ;Secondary Down
    			If GUIGetCursorInfo($hGUI)[4] = $hLabel Then
    				If Not $bRightClicked Then
    					$tmrRightClick = TimerInit()
    					$bRightClicked = True
    				Else
    					If TimerDiff($tmrRightClick) >= $I_THRESHHOLD Then
    						GUICtrlSetData($hLabel, Round(TimerDiff($tmrRightClick), 0) & "ms")
    						GUICtrlSetColor($hLabel, 0xFF0000)
    						$bRightClicked = True
    						$tmrRightClick = TimerInit()
    					Else
    						GUICtrlSetData($hLabel, Round(TimerDiff($tmrRightClick), 0) & "ms")
    						GUICtrlSetColor($hLabel, 0x00FF00)
    						$bRightClicked = False
    
    
    						;Erfolgreicher Rechts-Doppelklick
    					EndIf
    				EndIf
    			EndIf
    		EndIf
    	EndIf
    EndFunc
    
    
    Func _Exit()
    	Exit
    EndFunc
    Alles anzeigen
  • Doppelklick auf die Fensterleiste (Caption) einer AutoIt GUI auswerten

    • alpines
    • 3. Januar 2017 um 15:35

    Du kannst doch einfach die Zeit messen ob dein Control innerhalb von einem bestimmten Intervall zweimal geklickt wurde.
    Mit GUIGetCursorInfo() und OnEvent mit Right Mouse Down kannst du den Rechtsklick abfangen und ebenfalls abfragen ob er in einer bestimmten Zeit mehrmals geklickt wurde.

  • GUICtrlCreateGraphic soll auf Rechtsklick die Farbe ändern (gelöst)

    • alpines
    • 2. Januar 2017 um 16:14
    Zitat von Jefta

    Also quasi einfach nur $iFieldsWidthCount -1?
    (Beispiel: $iFieldsWidthCount = 400 wird zu $iFieldsWidthCount = 399)

    Und wieso muss das so sein?
    (Schuldigung wenn es nervt... :/ )

    Sozusagen. Computer zählen generell mit Index 0 statt wir mit Index 1, wenn du Controls platzieren willst dann ist der oberste linke Pixel nicht 1/1 sondern 0/0.
    Ist das Fenster 300/300 breit so ist der unterste rechte Pixel 299/299.

  • GUICtrlCreateGraphic soll auf Rechtsklick die Farbe ändern (gelöst)

    • alpines
    • 2. Januar 2017 um 15:16

    Du fängst mit Index 0 an und gehst bis zum letzten Eintrag - 1.

  • C:\Windows\System32\Tasks auslesen

    • alpines
    • 2. Januar 2017 um 11:56

    Schön das es funktioniert, ich hab mal den grünen Haken für [gelöst] gesetzt (1. Beitrag bearbeiten), damit andere Nutzer direkt sehen das das Problem gelöst wurde.

  • probleme mit dem befehl ControlSend

    • alpines
    • 2. Januar 2017 um 11:55

    Schön das es funktioniert, ich hab den grünen Haken für [gelöst] gesetzt (1. Beitrag bearbeiten)

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™