Página 1 de 1

chat con user y pass

Publicado: 09 Sep 2010, 07:19
por adcc447
hola necesito una ayudita con esto plizzz. el programa lo copie del foro xD pero era para ponerme a inventar e intentar aprender un poco mas aunke noc nada xD...
bueno el problemita es q como hago para ponerle varias contraseñas y usuarios al programa???? :smt037
EJ: q yo ponga el user y la contraseña... y verifique si es correcto a traves de un txt o como sea mas facil... :smt017
este es el codigo... plizz ayudenme y gracias :smt003

Código: Seleccionar todo

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Comment=chat zerocool echo por argenis cañavera
#[email protected]
#AutoIt3Wrapper_Res_Language=8202
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    ;--------------------------------------------------->>Ventana de loggin<<----------------------------------------------------
    $Loggin = GUICreate("Iniciar", 210, 74, 349, 436)
    GUISetBkColor(0x0A0A0A)
    GUISetIcon("C:\Archivos de programa\Rebel Raiders\Icon.ico")
    $User = GUICtrlCreateInput("ZeroCool", 8, 8, 129, 21)
    $Password = GUICtrlCreateInput("", 8, 40, 129, 21, $ES_PASSWORD)
    $OK = GUICtrlCreateButton("OK", 144, 8, 57, 57, 0)
    GUISetState(@SW_SHOW)
	
	$File1 = FileOpen ("user.txt", 0 )
    $Userp = FileRead ( $File1 )
    FileClose ( $File1 )

    ;---------------------------------------------------->>teclas<<------------------------------------------------------------------
    Global $AccelKeys[1][2] = [["{enter}", $OK]]
    GUISetAccelerators($AccelKeys)

    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $OK
             If GUICtrlRead($Password) = $Userp Then
                ; GUIDelete()
                GUISetState(@SW_HIDE)
                ExitLoop
             Else
                MsgBox( 0, "Error", "a pusto algun dato mal =S")
             EndIf
          Case $GUI_EVENT_CLOSE ;------------------------------------ cierra el chat
             Exit 0
       EndSwitch
    WEnd
    ;-------------------------------------------------->>Ventana Principal<<----------------------------------------------------
    $ChatZeRoX = GUICreate("Chat ZeRoX 1.0", 363, 210);997, 503
    GUISetBkColor(0x00000000)
    GUISetIcon("Shell32.dll", 269)
    GUISetFont(12, 400, 2)
    $Label1 = GUICtrlCreateLabel("Nivel de Transparencia", 30, 180, 200, 35)
    GUICtrlSetColor(-1, 0xff0000)
    GUICtrlSetFont(-1, 8, 800, 0, "Tahoma")
    $salida = GUICtrlCreateInput("", 8, 128, 345, 29) ;Cuadro de texto donde escribes
    $entrada = GUICtrlCreateEdit("", 8, 8, 345, 113, BitOR($WS_VSCROLL, $ES_MULTILINE, $ES_WANTRETURN)) ;Cuadro donde ves lo escrito
    $enviar = GUICtrlCreateButton("Enviar", 264, 168, 90, 33, $WS_GROUP) ;Boton "enviar"
    GUICtrlSetFont(-1, 18, 800, 0, "Papyrus")
    GUICtrlSetCursor(-1, 0)
    $borrar = GUICtrlCreateButton("Borrar", 172, 168, 90, 33, $WS_GROUP) ;Boton "borrar"
    GUICtrlSetFont(-1, 18, 800, 0, "Papyrus")
    GUICtrlSetCursor(-1, 0)
    $mute = GUICtrlCreateCheckbox("Sonido", 2, 192, 80, 20)
    GUICtrlSetColor(-1, 0xff0000)
    $slider1 = GUICtrlCreateSlider(2, 160, 170, 20)
    GUICtrlSetLimit(-1, 254, 50)
    GUICtrlSetData($slider1, 128)

    GUISetState(@SW_SHOW)
    WinSetTrans($ChatZeRoX, "", GUICtrlRead($slider1))

    If Not FileExists("i1310.txt") Then
       _FileCreate("i1310.txt")
       MsgBox(4096, "Aviso", "Log creado", 1 / 2)
    EndIf
    ;------------------------------------------------->>ocultar archivo<<----------------------------------------------------
    FileSetAttrib("i1310.txt", "+H")
    $size_1 = FileGetSize("i1310.txt")
    Global $number = 0
    ;---------------------------------------------->>Opciones para traymenu<<-----------------------------------------------
    Opt("TrayAutoPause", 0)
    Opt("TrayMenuMode", 1)
    ;------------------------------------------>>opciones generales para las ventanas<<----------------------------------
    Opt("WinWaitDelay", 100)
    Opt("WinDetectHiddenText", 1)
    Opt("MouseCoordMode", 0)
    Opt("WinTitleMatchMode", 3)
    ;------------------------------------------------->>incio de secion de un usuario<<----------------------------------------
    $file = FileOpen("i1310.txt", 1)
    If $file = -1 Then
       MsgBox(0, "Info", "Aguante mijo que el archivo no esta listo", 1)
    EndIf
    FileWriteLine($file, GUICtrlRead($User) & " ha conectado ");GUICtrlRead($User)
    FileClose($file)

    Global $AccelKeys[1][2] = [["{enter}", $enviar]]
    GUISetAccelerators($AccelKeys)

    HotKeySet("^!{space}", "boss_key")

    While 1
       If WinActive($ChatZeRoX) Then
          TraySetIcon("Shell32.dll", 16)
       EndIf
       $nMsg = GUIGetMsg()
       WinSetTrans($ChatZeRoX, "", GUICtrlRead($slider1))
       Switch $nMsg
          Case $enviar ; -----------------------------------------accion cuando se oprime el boton "enviar"
             enviar()
          Case $GUI_EVENT_CLOSE ;------------------------------------ accion cuando se cierra el chat
             $file = FileOpen("i1310.txt", 1)
             If $file = -1 Then
                MsgBox(0, "Info", "Aguante mijo que el archivo no esta listo", 1)
             EndIf
             FileWriteLine($file, GUICtrlRead($User) & " ha desconectado ")
             FileClose($file)
             Exit
          Case $borrar
             FileDelete("i1310.txt")
             _FileCreate("i1310.txt")
             FileSetAttrib("i1310.txt", "+H")
       EndSwitch
       $size_2 = FileGetSize("i1310.txt"); ------------------------------secuencia de actualizacion del chat
       If $size_1 <> $size_2 Then
          $file = FileOpen("i1310.txt", 0)
          If $file = -1 Then
             MsgBox(0, "Info", "Aguante mijo que el archivo no esta listo", 1)
          EndIf
          $line = FileReadLine($file, -1)
          FileClose($file)
          GUICtrlSetData($entrada, $line & @CRLF, 1)
          $size_1 = $size_2
          TraySetIcon("Shell32.dll", 282)
          If GUICtrlRead($mute) = 1 Then
             SoundPlay(@WindowsDir & "\media\Barra de info de Windows XP.wav", 0)
          EndIf
          WinFlash("Chatico V2.51 By Bett®Soft", "", 2, 400)
       EndIf
    WEnd
    ;---------------------------------------------------->>Funcion tecla jefe<<--------------------------------------------
    Func boss_key()
       $x = Not $number
       $number = $x
       If $number = True Then
          WinSetState("Chatico V2.51 By Bett®Soft", "", @SW_HIDE)
          Opt("TrayIconHide", 1)
       Else
          WinSetState("Chatico V2.51 By Bett®Soft", "", @SW_SHOW)
          Opt("TrayIconHide", 0)
       EndIf
    EndFunc   ;==>boss_key
    ;------------------------------------------------->>Funcion tesa<<----------------------------------------

    Func enviar()
       $file = FileOpen("i1310.txt", 1)
       If $file = -1 Then
          MsgBox(0, "Info", "Aguante mijo que el archivo no esta listo", 1)
       EndIf

       FileWriteLine($file, GUICtrlRead($User) & " Dice: " & GUICtrlRead($salida))

       FileClose($file)

       GUICtrlSetData($salida, "") ;borrar lo escrito

       $file = FileOpen("i1310.txt", 0)
       If $file = -1 Then
          MsgBox(0, "Info", "Aguante mijo que el archivo no esta listo", 1)
       EndIf
       $line = FileReadLine($file, -1)
       FileClose($file)
       GUICtrlSetData($entrada, $line & @CRLF, 1)
       $size_1 = FileGetSize("i1310.txt")
    ;~    GUICtrlSetData($entrada, @lf)
    EndFunc   ;==>enviar

Re: chat con user y pass

Publicado: 09 Sep 2010, 12:59
por BasicOs
Hola,
bienvenido, gracias por publicar tu código!!!
Lo más sencillo es con
;Asks the user to enter a password. Don't forget to validate it!
$passwd = InputBox("Security Check", "Enter your password.", "", "*")

;Asks the user to enter a 1 or 2 character response. The M in the password
;field indicates that blank string are not accepted and the 2 indicates that the
;responce will be at most 2 characters long.
$value = InputBox("Testing", "Enter the 1 or 2 character code.", "", " M2")

y lo guardas con
IniWrite("C:\Temp\myfile.ini", "section2", "key", "this is a new value")
lo verificas con
if IniRead(usucontra,blah..)=$valueusuario&$valorcontrasena then ---> correcto o no

endif
Salu22:)

Re: chat con user y pass

Publicado: 10 Sep 2010, 19:05
por adcc447
gracias por la ayuda voy a intentarlo :smt006
aunke no lo entiendo muy bien el autoit soy nuevo y apenas lo empiezo xD

Gracias :smt006

Re: chat con user y pass

Publicado: 11 Sep 2010, 06:50
por adcc447
BasicOs escribió:Hola,
bienvenido, gracias por publicar tu código!!!
Lo más sencillo es con
;Asks the user to enter a password. Don't forget to validate it!
$passwd = InputBox("Security Check", "Enter your password.", "", "*")

;Asks the user to enter a 1 or 2 character response. The M in the password
;field indicates that blank string are not accepted and the 2 indicates that the
;responce will be at most 2 characters long.
$value = InputBox("Testing", "Enter the 1 or 2 character code.", "", " M2")

y lo guardas con
IniWrite("C:\Temp\myfile.ini", "section2", "key", "this is a new value")
lo verificas con
if IniRead(usucontra,blah..)=$valueusuario&$valorcontrasena then ---> correcto o no

endif
Salu22:)
oe pero nose como funciona IniWrite y IniRead :( :smt009
sera q me podrias ayudar metiendolo en el codigo... porfavorrrr :smt003
disculpa la molestia.... es q de verdad soy nuevo y no entiendo muy bn esto :smt017

Re: chat con user y pass

Publicado: 13 Sep 2010, 08:27
por Ximorro
era para ponerme a inventar e intentar aprender un poco
Hombre adcc447, si es por aprender creo que copiar un programa relativamente avanzado y pedir a alguien que te inserte código nuevo no te va a ayudar. De esa manera ni vas a entender el programa ni las modificaciones que te hagan.

Te recomiendo que te plantees problemas mucho más sencillos y cojas algo de destreza con el lenguaje, después podrás copiar programas más complejos y modificarlos, e incluso hacerlos tú.

Re: chat con user y pass

Publicado: 17 Sep 2010, 05:29
por adcc447
lo entiendo he echo mas programas... pero quiero pasar al siguiente nivel con esta duda xD
solo quiero saber como hacer eso lo q pregunte :smt009
:smt017

Re: chat con user y pass

Publicado: 17 Sep 2010, 08:30
por Ximorro
Yo metería esos usuarios/contraseñas en un INI, para empezar puedes editarlo a mano, aunque si quieres lo puedes crear con programación con IniWrite.

Entonces al iniciar el programa leería con IniRead los pares usuario/contraseña y los metería en una matriz bidimensional o bien en dos matrices (pero que el índice para un usuario coincida con el índice de su pass).
Cuando el usuario ponga su nombre buscas en la matriz, recuperas el pass (de la otra dimensión de la matriz, o de la matriz de passwords, según lo hagas) y chequeas con la contra que te ponga el usuario.

Como mejora las contraseñas se pueden almacenar encriptadas (más que una mejora creo que es algo necesario, pero para hacer pruebas no hace falta complicarse, eso se puede dejar para el final). (Para cuando lo hagas, en la versión 3.3.6 tienes una udf para encriptación: Crypt.au3. En versión 3.3.0 y anteriores hay una función _StringEncrypt en la udf String.au3)

Si ya controlas algo de programación lo de las matrices te será muy sencillo. Lo de IniWrite e IniRead son realmente fáciles de usar, mucho más que usar un archivo de texto "a pelo" como hacen en el programa, así que si entiendes el programa te resultará aún más fácil. Por el foro me suena que ya se ha explicado cómo se usan, por la ayuda también se ve bastante claro, así que búscalo y prueba a ver, si tienes dudas concretas no dudes en preguntar.