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

Beiträge von Schrubber

  • Script Schützen

    • Schrubber
    • 30. Juni 2010 um 18:44

    Soo. Eine kleine GUI fürs Schützen.

    Sieht zwar relativ scheiße aus, funktioniert aber...


    Die GUI, die die Abfragen macht:


    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <mysql.au3>
    $toolname = "Schrubbers Testtool"
    $short = "Schrubber"
    $dbname = "lolrofl"
    $table = "test"
    Local $UserName = "root", $Password = "root", $Database = $dbname, $MySQLServerName = "localhost"
    _MySQL_InitLibrary()
    If @error Then
    TrayTip('Error', 'libmysql.dll konnte nicht gefunden werden', 10, 3)
    Sleep(10000)
    Exit
    EndIf
    $MysqlConn = _MySQL_Init()
    $Connected = _MySQL_Real_Connect($MysqlConn, $MySQLServerName, $UserName, $Password, $Database)
    $hSQLping = _MySQL_Ping($MysqlConn)
    If $hSQLping = 1 Or $hSQLping = 3 Then
    TrayTip('Error', 'Verbindung zur Datenbank konnte nicht hergestellt werden', 10, 3)
    Sleep(10000)
    Exit
    EndIf

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

    #Region ### START Koda GUI section ### Form=
    $title = GUICreate($toolname, 386, 322, 192, 124)
    $b_login = GUICtrlCreateButton("Login", 264, 256, 113, 25, $WS_GROUP)
    $b_buyfull = GUICtrlCreateButton("Vollversion kaufen", 136, 257, 113, 23, $WS_GROUP)
    $b_XDXDXDXDXD = GUICtrlCreateButton("XDXDXDXDXD", 8, 256, 113, 25, $WS_GROUP)
    $l_headline = GUICtrlCreateLabel($short, 50, 24, 260, 58)
    GUICtrlSetFont(-1, 28, 800, 2, "Nightclub BTN")
    GUICtrlSetColor(-1, 0xFF0000)
    $i_username = GUICtrlCreateInput("", 104, 144, 233, 21)
    $i_passwort = GUICtrlCreateInput("", 104, 176, 233, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $l_username = GUICtrlCreateLabel("Username", 40, 144, 52, 17)
    $l_password = GUICtrlCreateLabel("Password", 40, 176, 50, 17)
    $l_info = GUICtrlCreateLabel("Sie nutzen die", 40, 224, 74, 17)
    $l_version = GUICtrlCreateLabel("Testversion", 112, 224, 59, 17)
    GUICtrlSetColor(-1, 0xFF0000)
    $l_leftinfo = GUICtrlCreateLabel("Verbleibende Zeit:", 16, 296, 90, 17)
    $l_timeleft = GUICtrlCreateLabel("(No time)", 112, 296, 45, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While True
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _quit()
    Case $b_login
    if (GUICtrlRead($i_username) = "") Then
    MsgBox(0, "Error", "Sie haben keinen Username eingegeben.")
    Elseif (GUICtrlRead($i_passwort) = "") Then
    MsgBox(0, "Error", "Sie haben kein Passwort eingegeben.")
    Else
    Local $sReturn = _mysql_checklogin($MysqlConn, GUICtrlRead($i_username))
    If GUICtrlRead($i_passwort) == $sReturn Then
    MsgBox(0, "Login erfolgreich", "Sie haben sich erfolgreich eingeloggt!")
    $version = _mysql_checkversion($MysqlConn, GuiCtrlRead($i_username))
    if($version = "V") Then
    GUICtrlSetData($l_version, "Vollversion")
    GUICtrlSetColor($l_version, 0x32CD32)
    EndIf
    GUICtrlSetData($l_timeleft, _mysql_checktime($MysqlConn, GuiCtrlRead($i_username)))
    Else
    MsgBox(0, "Login fehlgeschlagen", "Die eingegebenen Daten sind falsch. Versuchen sie es bitte erneut.")
    EndIf
    EndIf
    Case $b_buyfull
    ShellExecute("http://LinkzuderHomepage.de")
    EndSwitch
    WEnd
    Func _mysql_checklogin(Const $MysqlVerbindung, Const $sAccount)
    _MySQL_Real_Query($MysqlVerbindung, "SELECT `Password` FROM `"&$dbname&"`.`"&$table&"` WHERE `Account` = '" & $sAccount & "';")
    If @error Then
    Return SetError(-1, @error, 0)
    Else
    Local $sResult = _MySQL_Store_Result($MysqlVerbindung)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($sResult)
    _MySQL_Free_Result($sResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, 0)
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checklogin
    Func _mysql_checkversion(Const $MysqlVerbindung, Const $sAccount)
    _MySQL_Real_Query($MysqlVerbindung, "SELECT `VVersion` FROM `"&$dbname&"`.`"&$table&"` WHERE `Account` = '" & $sAccount & "';")
    If @error Then
    Return SetError(-1, @error, 0)
    Else
    Local $sResult = _MySQL_Store_Result($MysqlVerbindung)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($sResult)
    _MySQL_Free_Result($sResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, 0)
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checkversion
    Func _mysql_checktime(Const $MysqlVerbindung, Const $sAccount)
    _MySQL_Real_Query($MysqlVerbindung, "SELECT `Time` FROM `"&$dbname&"`.`"&$table&"` WHERE `Account` = '" & $sAccount & "';")
    If @error Then
    Return SetError(-1, @error, 0)
    Else
    Local $sResult = _MySQL_Store_Result($MysqlVerbindung)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($sResult)
    _MySQL_Free_Result($sResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, 0)
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checktime
    Func _mysql_checklast(Const $MysqlVerbindung, Const $sAccount)
    _MySQL_Real_Query($MysqlVerbindung, "SELECT `lastcheck` FROM `"&$dbname&"`.`"&$table&"` WHERE `Account` = '" & $sAccount & "';")
    If @error Then
    Return SetError(-1, @error, 0)
    Else
    Local $sResult = _MySQL_Store_Result($MysqlVerbindung)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($sResult)
    _MySQL_Free_Result($sResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, 0)
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checklast
    Func _mysql_checkserial(Const $MysqlVerbindung, Const $sAccount)
    _MySQL_Real_Query($MysqlVerbindung, "SELECT `Account` FROM `"&$dbname&"`.`"&$table&"` WHERE `Serial` = '" & $serial & "';")
    If @error Then
    Return SetError(-1, @error, 0)
    Else
    Local $sResult = _MySQL_Store_Result($MysqlVerbindung)
    Local $aReturn = _MySQL_Fetch_Row_StringArray($sResult)
    _MySQL_Free_Result($sResult)
    If UBound($aReturn) = 0 Then
    Return SetError(-2, @error, 0)
    Else
    Return $aReturn[0]
    EndIf
    EndIf
    EndFunc ;==>_mysql_checkserial
    Func _quit()
    _MySQL_Close($MysqlConn)
    _MySQL_EndLibrary()
    Exit
    EndFunc ;==>_quit

    [/autoit]


    Für die Datenbank (Zur Erstellung des Tables):

    [autoit]

    #include <mysql.au3>

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

    $UserName = "root"
    $Password = "root"
    $Database = "lolrofl"
    $MySQLServerName = "localhost"

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

    $SQLInstance = _MySQLConnect($UserName,$Password,$Database,$MySQLServerName)

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

    $SQLCode = "CREATE TABLE Tool( Serial VARCHAR (20), Account VARCHAR (30), Password VARCHAR (30), VVersion VARCHAR (1), Time INTEGER, lastcheck VARCHAR(8))"
    _Query($SQLInstance, $SQLCode)
    _MySQLEnd($SQLInstance)

    [/autoit]


    Und das einfügen der Daten per Script:

    [autoit]

    #include <mysql.au3>

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

    $UserName = "root"
    $Password = "root"
    $Database = "lolrofl"
    $MySQLServerName = "localhost"

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

    $SQLInstance = _MySQLConnect($UserName,$Password,$Database,$MySQLServerName)

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

    $SQLCode = "INSERT INTO Tool (Serial, Account, Password, VVersion, Time, lastcheck) VALUES('xasdzuasdgas', 'trick', '1', 'V', '30', '29062010' )"
    _Query($SQLInstance, $SQLCode)
    _MySQLEnd($SQLInstance)

    [/autoit]


    Bei mir funzt es. Sieh es als Hilfe an und nicht als Lösung, die du nun nimmst. Ist relativ hässlich, aber gut seinen Zweck.

  • Input Zeichen begrenzen.

    • Schrubber
    • 30. Juni 2010 um 13:33

    Ich würde die Zeichen in dem Input zählen (mit GUICTRLRead($input) und dann davon die Länge zählen)

    Dann ein Array mit z.B. 30 Plätzen (30*30 = 900 Zeichen sollten reichen? ;) )


    Und dann


    [autoit]


    $i = 0
    $laenge = 0

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

    while 1
    $laenge = StringLen(GUICtrlRead($input)
    if($laenge = 30) then
    $array[$i] = GUICtrlRead($input)
    GUICtrlSetData($input, "")
    $i = $i + 1
    else
    EndIf
    WEnd

    [/autoit]


    Dann haste nen Array namens $array[] mit allen Sätzen. Und dann:


    [autoit]


    for $a = 0 to UBound($array) step +1
    ;Bin mir net mehr sicher, hab hier kein Autoit installiert sry. Kleinere Fehler musste halt selber ausbügeln.
    $text = $text + $array[a]

    [/autoit]


    So würd ichs machen, aber is halt nur ne einfache Lösungsmöglichkeit.


    Schrubber

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 20:43

    Machs so: Du lässt dir ne Randomzahl zwischen 0 und 35 ausgeben. Dieser Zahl weißt du dann (z.B. in ner Ini steht für A= 10) usw. jeweils den Wert zu.

    Das machst du 4x4 mal und gibst dir dann den Wert als String mit Bindestrich ;D

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 20:13

    Ähm Epic......

    1. Sie haben benutzen... ( WTF?! )
    2. Das hättest du auch ohne unsere Hilfe hingekriegt...


    Wart ab, ich zauber dir in paar Mins eines als BEISPIEL!

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 14:46

    Dann lass ich mir von meinem Kollegn den ganzen Ordner kopieren... Also isses schon aktiviert :o

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 14:39

    Nein ^^


    Diesen Serial kann man immernoch einfach so weitergeben, ohne dass es nicht funktioniert :D

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 14:02

    Wie willst du erreichen, dass jeder Key nur 1x registriert wird? ;)


    Ich registrier Key XYZ auf den Namen Max Mustermann mit dem Passwort 123456 und gebe das meinem Kollegn weiter.

    Der Key wurde nur 1x registriert, jedoch nutzen diesne mehrere Leute dann ;)


    Ich würds über hardwarespezifische Informationen abspeichern. Vll wie oben den Computername, Windows Key oä.

    Weil die gibt es nur 1x und in der Kombi auch, da ja sowieso keiner drauf kommt, dass genau die 2 Sachen ausschlaggebend dafür sind ;)


    Schrubber

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 13:12

    Man nimmt den WindowsKey, speichert ihn z.B. ab und dazu kommt noch der Rechnername & Benutzername.


    Und desweiteren: Auf sowas kommt man nicht so einfach ;) Oder wer weiß, dass man sich nur einloggen kann, wenn Rechnername + Benutzername + WindowsKey die sind, die hinterlegt wurden?

  • Zwingen zum Updaten

    • Schrubber
    • 29. Juni 2010 um 12:30

    Und das kann man dann nicht mehr faken?

    Ich kenn mich mit dem Zeugs net aus, von daher frage ich ;)

  • FTP Upload - Geschwindigkeit drosseln

    • Schrubber
    • 29. Juni 2010 um 12:14

    So wie ich das mitbekommen hab, Läd er z.b. Part1 hoch und macht dann Sleep.


    Also bei 10 Party macht er zwischendurch 9x Sleep und daher wirds langsamer. Die Durchschnitts-Uploadgeschwindigkeit sinkt zwar, aber die Geschwindigkeit der einzelnen Uploads, die die einzelnen Parts hinlegen, bleibt gleich ;)


    Also so hab ich das verstanden.

  • ImageUpload.au3 UDF Probleme ;D

    • Schrubber
    • 29. Juni 2010 um 12:12

    Jo ich würd dir Stringbetween auch empfehlen ;)

  • Zwingen zum Updaten

    • Schrubber
    • 29. Juni 2010 um 12:06

    Wie willste Updateprüfung machen? :D

  • Zwingen zum Updaten

    • Schrubber
    • 29. Juni 2010 um 11:50

    Genau. Wie mein Vorposter:


    Du fragst ab, ob vll die Dateigröße oder ähnliches sich mit der Serverdatei unterschieden hat. Wenn ja, MSGBOX (Update, Ja / Nein und Close)

    Wenn man auf Ja drückt, updatet er halt.

    Wenn man auf Nein und Close drückt, lässt man es ebend sein ;)


    Am einfachsten dafür wäre vll doch ne Datei.Update.txt oder so, wo die Versionsnummer einfach drinsteht. Dann lädst du auf deinen Server einfach die selbe Datei hoch und änderst immer die Versionsnummer ab. So dauerts auch nicht so lang, bis er z.B. die Größe von 50mb gelesen hat, sondern nur von 4kb (die .txt Datei).

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 10:45

    http://www.autoitscript.com/forum/index.php?showtopic=20814


    Da kriegst alle Infos :D

    Oder warte bis um 18 Uhr. Dann bin ich zuhause und kanns dir schnell machen ;)

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 10:37

    du kannst die Befehle direkt in die Console schreiben ;)

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 10:32

    Per IP-Adresse? :D Die Zwangstrennung wird sich freuen.


    Mit Datenbank mein ich:


    x Spalten.

    ID PW VVersion Time Last_timecheck


    Du hast diese 4 Spalten beispielsweise.


    ID und PW sind Benutzername und PW. Du machst am einfach einen Login, den du mit drücken des Start Knopfes abschickst und in dieser Datenbank überprüfst. Halt noch VOR dem eigentlichen Programm. Wenn es zutrift, gehts weiter. Sonst nicht. Weiter gibt es ein Fenster, wo dir vll angezeigt wird:


    Willkommen ID,

    Passwort ändern

    Key ausgeben

    Vollversion kaufen


    Darunter 2 Texte wie:


    Ihre Version: Vollversion / Trialversion

    Timeleft: (Bei Vollversion vll, wie lang diese aktiv ist. Kann man ja für 1, 2,3 Jahre oder nur 2 Monate kaufen) und bei Trialversion halt 30Tage abwärts.


    Diese Zeit wird dann in der Datenbank eingetragen, vielleicht in Minuten. Ist am genausten. Und genau dies wird hier ausgelesen.


    Die Zeit verbleibende Zeit wird dann immer abgezogen. Das Programm überprüft halt ebenfalls in der Datenbank, wann das letzte mal aktualisiert wurde. Dies steht halt im last_timecheck bsp 20100629. Wenn jetziges Datum anders als das dort eingetragene, time - 1 und last_timecheck = heutiges Datum. So hälste halt deine 30Tage Testversion ein. Am besten aber nicht mit der Lokalen Zeit vergleichen (wegen Uhrumstellung, damit das Programm es nicht merkt) sondern bsp. mit der Atomzeit ausm Internet.


    kA ob das genau so realisierbar ist, viel Glück ;)


    Wenne Fragen hast, frag ruhig. Ich sitz hier beim Praktikum und hab genug Zeit, etwas zu programmieren ^^


    Schrubber

  • Script Schützen

    • Schrubber
    • 29. Juni 2010 um 09:22

    Zur Eindeutigkeit kannste ja den Rechnernamen + Betriebssystem + Aktivierungscode des Windoofs nehmen. Sollte niemanden geben, der Rechnername, Betriebssystem und Aktivierungscode des Windoofs gleich hat ;)


    Aber warum Skript anders?

    Dein Programm lässt sich nur mit Internetkonnektivität starten. In der Datenbank machst du meinetwegen halt noch ne Spalte, wo du die time_period oder time_left für den jeweiligen User einträgst. Diese Zeit zieht er sich dann aus der Datenbank und benutzt sie weiter zum rechnen. Oder halt nen Programm, welches so lange genutzt werden kann, wie man will. Lediglich die Anzahl der Aufrufe ist begrenzt, sodass das Programm vll nur 100x ausgeführt werden darf und sich das ebenfall sin der Datenbank vermerkt.


    Aber da ist einem nahezu Grenzenlosigkeit gewährt, wie ich finde ;)

    Gibt immer mehr, tolle und besser geeignete Lösungen, als man vorher dachte.


    Mit freundlichen Grüßen,

    Schrubber

  • Zeitrechner möglich?

    • Schrubber
    • 29. Juni 2010 um 08:15

    Genau so ;)

    Oder du lässt dir von der eingegebenen Monatsanzeige-1 den Wert / 2 teilen (weil ja die Hälfte der Monate immer 31 Tage haben. Das Ergebnis rechnest du dann *744 (31 (Tage) * 24 (Stunden). Das Ergebnis sind die Stunden der bisherigen 31 TagesMonate.


    Aber weiter weiß ich selber net ;D Is glaube auch nicht gerade der vorteilhafteste Weg, sowas zu tun. ^^

  • Ich schrubb hier nur :o

    • Schrubber
    • 3. Juni 2010 um 20:00

    Hallo :)

    Ich seh grad, dass ich mich bisher auch noch nicht vorgestellt habe ^^


    Mein name ist Tim, ich bin derweil 17 Jahre alt (05.04) und gehe derweil auf die ITA-Fachinformatikschule.
    Werde ca 2012 ITA sein und 2013 Fachinformatiker

    Bin hier mit dem Account aktiv seit Mitte 2008, davor mit meinem alten noch ein wenig.
    In meiner Freizeit spiel ich Handball, programmiere gerne (Autoit, Java und lerne C++) und geh mit Freunden weg ^^


    Das wars von mir ;)

    Schrubber

  • GuiCtrlRead Problem

    • Schrubber
    • 3. Juni 2010 um 19:12

    $test hat den Wert, den du eingegeben hast. Da brauchst du kein GUICTRLRead :)

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™