Jump to content
FrancescoDiMuro

Login Form...

Recommended Posts

FrancescoDiMuro

Good evening guys ( almost good night here in Italy ) :) 
How are you? Hop you're fine :) 
I'm trying to do a Login Form ( I did, but I'm missing something in the management ), that allows the user to login when the script is launched, and, when the main GUI is opened, the user can Logout and Login with another username and password.
The username and password "checking" I do is done by a text file, which in there are username and password, crypted through _Crypt_EncryptData().
The "issue" I'm having at the moment, is to manage the Login form when the user hasn't already done the login, and so, the main GUI is not visible, but is created...
I create the main GUI after the Login form... I tried with WinActive, WinGetState, but nothing changed ( even at the first Login, the script says ( through a MsgBox ) that the Win does exists ( or is active... ) and, as I want, it is not shown again...

I really don't know If I missed something, or, I don't know...
I'm going crazy for this thing...
If someone could help me, I'd really appreaciate it!
Thanks for the reading :)

#Region ### START Koda GUI section ### Form=C:\Users\Portatile-60\Documents\Documenti Lavoro\AutoIt\Gestione_Magazzino_v2\form_Login.kxf
        Global $form_Login = GUICreate("Effettua il Login per continuare:", 405, 120, @DesktopWidth/2 - 202.5, @DesktopHeight/2 - 150) ; 302, 218
        GUISetOnEvent($GUI_EVENT_CLOSE, "GUIDeleteLogin")
        Global $combo_Username = GUICtrlCreateCombo("Di Muro Francesco", 104, 64, 217, 25)
        GUICtrlSetFont(-1, 10, 400, 0, "Arial")
        GUICtrlSetData($combo_Username, "somedata")
        Global $input_Password = GUICtrlCreateInput("", 104, 89, 217, 25, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
        GUICtrlSetFont(-1, 10, 400, 0, "Arial")
        $button_VerificaDati = GUICtrlCreateButton("", 328, 66, 42, 42, $BS_ICON)
        GUICtrlSetImage(-1, "C:\Users\Portatile-60\Documents\Documenti Lavoro\AutoIt\Gestione_Magazzino_v2\Icone\icon_check.ico", -1)
        GUICtrlSetOnEvent($button_VerificaDati, "CheckLogin")
        $label_Titolo = GUICtrlCreateLabel("Login", 167, 14, 71, 33)
        GUICtrlSetFont(-1, 18, 800, 0, "Arial")
        $label_Username = GUICtrlCreateLabel("Username :", 24, 64, 76, 20)
        GUICtrlSetFont(-1, 10, 800, 0, "Arial")
        $label_Password = GUICtrlCreateLabel("Password :", 24, 89, 73, 20)
        GUICtrlSetFont(-1, 10, 800, 0, "Arial")
#EndRegion ### END Koda GUI section ###

Func CheckLogin()
    Local $sUsername = GUICtrlRead($combo_Username)
    Local $sPassword = GUICtrlRead($input_Password)
    MsgBox($MB_ICONINFORMATION, "", "Username: " & $sUsername & @CRLF & "Password: " & $sPassword)
    Local $sFileUtenti = @ScriptDir & "\utenti.txt"
    If @error Then
        MsgBox($MB_ICONERROR, "Errore!", "Errore durante la lettura del file!")
        Exit
    Else
        Local $hFileUtenti = FileOpen($sFileUtenti, $FO_READ)
        If @error Then
            MsgBox($MB_ICONERROR, "Errore!", "Errore durante l'apertura del file " & $sFileUtenti & "." & @CRLF & "Errore: " & @error)
        Else
            Local $sDatiUtente, $aDatiUtente
            Local $bUtenteTrovato = False
            Local $iLinea = 1
            Local $sControlloWin = ""
            Local $sWin = WinGetState($form_GestioneMagazzino)
            MsgBox($MB_ICONINFORMATION, "", $sWin)
            If @error Then
                MsgBox($MB_ICONERROR, "Errore!", "Errore durante la verifica della GUI attiva." & @CRLF & "Errore: " & @error)
            EndIf
            If($sWin == 5) Then
                MsgBox($MB_ICONINFORMATION, "", "La GUI esiste!")
                Do
                    $sDatiUtente = FileReadLine($hFileUtenti, $iLinea)
                    $aDatiUtente = StringSplit($sDatiUtente, "|", $STR_NOCOUNT)
                    If(BinaryToString(_Crypt_DecryptData($aDatiUtente[0], "CRYPT", $CALG_RC4)) = $sUsername And BinaryToString(_Crypt_DecryptData($aDatiUtente[1], "CRYPT", $CALG_RC4)) = $sPassword) Then
                        $sControlloWin = "ESISTE"
                        $bUtenteTrovato = True
                        ExitLoop
                    Else
                        $iLinea+=1
                        If($sDatiUtente = "" And $bUtenteTrovato = False) Then
                            MsgBox($MB_ICONWARNING, "Attenzione!", "Username o Password errati.")
                            ExitLoop
                        EndIf
                    EndIf
                Until $bUtenteTrovato = True
            Else
                MsgBox($MB_ICONINFORMATION, "", "La GUI esiste!")
                Do
                    $sDatiUtente = FileReadLine($hFileUtenti, $iLinea)
                    $aDatiUtente = StringSplit($sDatiUtente, "|", $STR_NOCOUNT)
                    If(BinaryToString(_Crypt_DecryptData($aDatiUtente[0], "CRYPT", $CALG_RC4)) = $sUsername And BinaryToString(_Crypt_DecryptData($aDatiUtente[1], "CRYPT", $CALG_RC4)) = $sPassword) Then
                        $sControlloWin = "NON ESISTE"
                        $bUtenteTrovato = True
                        ExitLoop
                    Else
                        $iLinea+=1
                        If($sDatiUtente = "" And $bUtenteTrovato = False) Then
                            MsgBox($MB_ICONWARNING, "Attenzione!", "Username o Password errati.")
                            ExitLoop
                        EndIf
                    EndIf
                Until $bUtenteTrovato = True
            EndIf
            If($sControlloWin = "ESISTE") Then
                MsgBox($MB_ICONINFORMATION, "Login effettuato!", "Hai effettuato l'accesso come: " & @CRLF & $sUsername & ".")
                ; Setta come "non-cliccabile" il bottone di Login
                GUICtrlSetState($button_Login, $GUI_DISABLE)
                GUICtrlSetState($button_VisualizzaGiacenze, $GUI_ENABLE)
                GUICtrlSetState($button_AggiungiProdotto, $GUI_ENABLE)
                GUICtrlSetState($button_PrelevaProdotto, $GUI_ENABLE)
                GUICtrlSetState($button_RicercaProdotto, $GUI_ENABLE)
                GUICtrlSetState($button_CreaDDT, $GUI_ENABLE)
                GUICtrlSetState($button_MostraGiacenzeAZero, $GUI_ENABLE)
                GUICtrlSetState($combo_Magazzino, $GUI_ENABLE)
                GUICtrlSetState($button_Logout, $GUI_ENABLE)
                ; Setta come "non-cliccabile" il bottone di Login
                GUICtrlSetState($button_Login, $GUI_DISABLE)
                ; Setta l'utente che ha effettuato l'accesso nella label $label_CaptionUtente
                GUICtrlSetData($label_CaptionUtente, $sUsername)
                ; "Distruggi" la GUI Login
                GUIDelete($form_Login)
                FileClose($hFileUtenti)
            Else
                MsgBox($MB_ICONINFORMATION, "", "La GUI non esiste!")
                MsgBox($MB_ICONINFORMATION, "Login effettuato!", "Hai effettuato l'accesso come: " & @CRLF & $sUsername & ".")
                ; Mostra la GUI Principale
                GUISetState(@SW_SHOW, $form_GestioneMagazzino)
                ; Setta come "non-cliccabile" il bottone di Login
                GUICtrlSetState($button_Login, $GUI_DISABLE)
                ; Setta l'utente che ha effettuato l'accesso nella label $label_CaptionUtente
                GUICtrlSetData($label_CaptionUtente, $sUsername)
                ; "Distruggi" la GUI Login
                GUIDelete($form_Login)
                FileClose($hFileUtenti)
            EndIf
        EndIf
    EndIf
EndFunc

Func Logout()
    GUICtrlSetData($label_CaptionUtente, "")
    MsgBox($MB_ICONINFORMATION, "Logout effettuato!", "Effettua nuovamente il Login per utilizzare il programma.")
    ; Disabilita tutti i bottoni della GUI Principale
    GUICtrlSetState($button_VisualizzaGiacenze, $GUI_DISABLE)
    GUICtrlSetState($button_AggiungiProdotto, $GUI_DISABLE)
    GUICtrlSetState($button_PrelevaProdotto, $GUI_DISABLE)
    GUICtrlSetState($button_RicercaProdotto, $GUI_DISABLE)
    GUICtrlSetState($button_CreaDDT, $GUI_DISABLE)
    GUICtrlSetState($button_MostraGiacenzeAZero, $GUI_DISABLE)
    GUICtrlSetState($combo_Magazzino, $GUI_DISABLE)
    GUICtrlSetState($button_Logout, $GUI_DISABLE)
    ; Abilita il Login
    GUICtrlSetState($button_Login, $GUI_ENABLE)
EndFunc

EDIT:

Solved, making an "integrated" Login form... 

Edited by FrancescoDiMuro
Solved...

Click here to see my signature:

Spoiler

I will always thank you for the time you spent for me.
I'm here to ask, and from your response, I'd like to learn.
By my knowledge, I can help someone else, and "that someone" could help in turn another, and so on.

ALWAYS GOOD TO READ:

In case I am violating some pseudo Forum rule, or I am doing something wrong, I want let you know that I'm not doing this on purpose, and for this, I kindly ask you to send me a private message about the "bad content" I posted, in order to edit/remove it, and to not be warned wrongly.
Thanks in advance.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • Bllee
      By Bllee
      every time i press "delete button" delete a line, but i can't add new line with info. the id line write normally but i can't change or add new info
      obs: looking at the "includes" one realizes that already tried of everything that knew
      my code
      #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiListView.au3> #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <MsgBoxConstants.au3> #include <WinAPI.au3> #include <StringConstants.au3> #include <Array.au3> #include <GuiListBox.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 612, 480, 192, 154) $MenuItem1 = GUICtrlCreateMenu("&Arquivo") $MenuItem2 = GUICtrlCreateMenuItem("Salvar Ctrl+S", $MenuItem1, $SS_CENTER) $MenuItem4 = GUICtrlCreateMenuItem("Carregar Ctrl+O", $MenuItem1, $SS_CENTER) $MenuItem3 = GUICtrlCreateMenuItem("Salvar Como Shitft+Ctrl+S", $MenuItem1, $SS_CENTER) $Group1 = GUICtrlCreateGroup("", 21, 8, 569, 97, $SS_CENTER) $Input1 = GUICtrlCreateInput("ID COR", 122, 32, 97, 21, $SS_CENTER) $Input2 = GUICtrlCreateInput("REGIÃO", 138, 64, 249, 21, $SS_CENTER) $Input3 = GUICtrlCreateInput("Label", 264, 30, 121, 21, $SS_CENTER) $Label1 = GUICtrlCreateLabel("Label", 232, 32, 30, 17, $SS_CENTER) $Button1 = GUICtrlCreateButton("Capturar Cor", 42, 30, 75, 25, $SS_CENTER) $Button2 = GUICtrlCreateButton("Capturar Região", 42, 62, 91, 25, $SS_CENTER) $Button3 = GUICtrlCreateButton("ADD", 442, 24, 113, 33) $Button5 = GUICtrlCreateButton("Delet", 442, 64, 113, 33) $Group2 = GUICtrlCreateGroup("Editar ID selecionado", 8, 384, 601, 57, $SS_CENTER) $Input7 = GUICtrlCreateInput("ID", 10, 402, 40,21, $SS_CENTER) $Input4 = GUICtrlCreateInput("COR", 51, 402, 121, 21, $SS_CENTER) $Input5 = GUICtrlCreateInput("REGIÃO", 173, 402, 249, 21, $SS_CENTER) $Input6 = GUICtrlCreateInput("LABEL", 423, 402, 121, 21, $SS_CENTER) $Button4 = GUICtrlCreateButton("\/", 544, 400, 30, 25, $SS_CENTER) $Button6 = GUICtrlCreateButton("/\", 574, 400, 30, 25, $SS_CENTER) ; Add column Global $id = Int(0) $List1 = GUICtrlCreateListView("",5, 120, 601, 253, $SS_CENTER) _GUICtrlListView_AddColumn($List1, "ID",40) _GUICtrlListView_AddColumn($List1, "COR",100) _GUICtrlListView_AddColumn($List1, "COORDENADA",305) _GUICtrlListView_AddColumn($List1, "LABEL",150) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $MenuItem2 MsgBox($MB_SYSTEMMODAL, "ctrl + s", "Nothing Here",1) Case $MenuItem3 MsgBox($MB_SYSTEMMODAL, "shift+ctrl s", "Nothing Here",1) Case $MenuItem4 MsgBox($MB_SYSTEMMODAL, "ctrl + o", "Nothing Here",1) Case $Button1 MsgBox($MB_SYSTEMMODAL, "Capturar cor", "Aperte espaço para capturar a cor") GUICtrlSetData($Input1,MouseColor()) Case $Button2 MsgBox($MB_SYSTEMMODAL, "capturar região", "Aperte espaço para capturar a posição inicial") local $mouse = MouseGetPos() $x_init = $mouse[0] $y_init = $mouse[1] MsgBox($MB_SYSTEMMODAL, "capturar região", "Aperte espaço para capturar a posição final") local $mouse = MouseGetPos() $x_end = $mouse[0] $y_end = $mouse[1] GUICtrlSetData($Input2,$x_init&','&$y_init&' ; '&$x_end&','&$y_end) Case $Button3 _GUICtrlListView_AddItem($List1, $id, 1) ; id _GUICtrlListView_AddSubItem($List1, $id, GUICtrlRead($Input1), 1, 1) ;cor _GUICtrlListView_AddSubItem($List1, $id, GUICtrlRead($Input2), 2, 1) ;coordenada _GUICtrlListView_AddSubItem($List1, $id, GUICtrlRead($Input3), 3, 1) ;label $id= $id + 1 Case $Button4 $Item = _GUICtrlListView_GetSelectedIndices($List1) $Sid = _GUICtrlListView_GetItem($List1, Number($Item),0) $Scor = _GUICtrlListView_GetItem($List1, Number($Item),1) $Scord = _GUICtrlListView_GetItem($List1, Number($Item),2) $Slabel = _GUICtrlListView_GetItem($List1, Number($Item),3) ; get info GUICtrlSetData($Input7,$Sid[3]) GUICtrlSetData($Input4,$Scor[3]) GUICtrlSetData($Input5,$Scord[3]) GUICtrlSetData($Input6,$Slabel[3]) Case $Button5 _GUICtrlListView_DeleteItemsSelected($List1) Case $Button6 ; give back inf if GUICtrlRead($Input7) <> "ID" Then _GUICtrlListView_SetItem($List1, GUICtrlRead($Input4), GUICtrlRead($Input7),1) ;cor _GUICtrlListView_SetItem($List1, GUICtrlRead($Input5), GUICtrlRead($Input7),2) ;coordenada _GUICtrlListView_SetItem($List1, GUICtrlRead($Input6), GUICtrlRead($Input7),3) ;coordenada EndIf EndSwitch WEnd Func MouseColor() local $mouse = MouseGetPos() Return Hex(PixelGetColor($mouse[0],$mouse[1]), 6) EndFunc  
    • FrancescoDiMuro
      By FrancescoDiMuro
      Good evening everyone
      First, I want to apologize with you for the title not very clear, but I thought a little bit on which title to set at the thread, and this is the one that came in mind.
      Now, let me explain what I'm trying to understand.

      I am making an application ( with n clients ), with an SQLite Database, which has a Main form, and n sub-forms... 
      Since these sub-forms are called several times, because they are used to add or update records to the Database, I put the code that generates the GUI of these sub-forms in Functions.
      There are two sub-forms which are "treated" as two main forms, since even them have n sub-forms, which perform various tasks.
      Where am I stucked?

      For the Main form I created a Status Bar, in order to display messages ( add/delete/update/search results ), and it works perfectly with all the forms which don't have other sub-forms.
      For the two forms, which indeed have n sub-forms, I created two separated Status Bars, which are (re)created everytime I call the function that then displays the form.
      Practically, I can't set icons to these two Status Bars, and I don't know why.
      I'm really sorry that I don't feel clear enough, so, here you are an example of what I am saying.
      I recreated exactly what my script does:
      #include <GuiButton.au3> #include <GUIConstantsEx.au3> #include <GuiStatusBar.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) Global $frmSubForm, _ $txtSubFormField, _ $sbSubFormStatusBar, _ $objSB_IconError = _WinAPI_LoadShell32Icon(109), _ $objSB_IconInformation = _WinAPI_LoadShell32Icon(277) #Region ### START Koda GUI section ### Form= $frmMainForm = GUICreate("Main Form", 300, 300, -1, -1) GUISetOnEvent($GUI_EVENT_CLOSE, "ExitApplication") $sbMainStatusBar = _GUICtrlStatusBar_Create($frmMainForm) $btnCreateSubForm = GUICtrlCreateButton("Create Sub Form", 105, 110, 75, 41, BitOR($BS_CENTER,$BS_VCENTER,$BS_MULTILINE)) GUICtrlSetOnEvent(-1, "GenerateSubForm") GUICtrlSetFont(-1, 10, 400, 0, "Arial") _GUICtrlStatusBar_SetSimple($sbMainStatusBar) _GUICtrlStatusBar_SetText($sbMainStatusBar, "") GUISetState(@SW_SHOW, $frmMainForm) #EndRegion ### END Koda GUI section ### While 1 Sleep(100) WEnd Func ExitApplication() Exit EndFunc Func GenerateSubForm() #Region ### START Koda GUI section ### Form= $frmSubForm = GUICreate("Sub-Form", 300, 300, -1, -1, -1, -1, $frmMainForm) GUISetOnEvent($GUI_EVENT_CLOSE, "DeleteSubForm") $txtSubFormField = GUICtrlCreateInput("", 0, 0, 100, 20) $btnCheckSubFormField = GUICtrlCreateButton("Check Field", 105, 110, 75, 41, BitOR($BS_CENTER,$BS_VCENTER,$BS_MULTILINE)) GUICtrlSetOnEvent(-1, "CheckSubFormField") GUICtrlSetFont(-1, 10, 400, 0, "Arial") $sbSubFormStatusBar = _GUICtrlStatusBar_Create($frmSubForm) _GUICtrlStatusBar_SetSimple($sbSubFormStatusBar) _GUICtrlStatusBar_SetText($sbSubFormStatusBar, "") GUISetState(@SW_SHOW, $frmSubForm) GUISetState(@SW_DISABLE, $frmMainForm) #EndRegion ### END Koda GUI section ### EndFunc Func DeleteSubForm() ; Declared Globally => $frmSubForm GUIDelete($frmSubForm) GUISetState(@SW_ENABLE, $frmMainForm) EndFunc Func WriteToStatusBar($sbStatusBar, $objSB_Icon, $strText) _GUICtrlStatusBar_SetIcon($sbStatusBar, 0, $objSB_Icon) _GUICtrlStatusBar_SetText($sbStatusBar, $strText) ConsoleWrite("Icon Handle: " & $objSB_Icon & @CRLF) EndFunc Func CheckSubFormField() ; Declared Globally => $txtSubFormField If GUICtrlRead($txtSubFormField) = "" Then ; Declared Globally => $sbStatusBar WriteToStatusBar($sbSubFormStatusBar, $objSB_IconError, "Field NOK.") Else WriteToStatusBar($sbSubFormStatusBar, $objSB_IconInformation, "Field OK.") EndIf EndFunc The text is set, but icon is not.
      Could someone please tell me why?
      Thanks everyone in advance  

      Best Regards.
    • Reziskonh
      By Reziskonh
      Hi, everybody
      I look for GUI whose behavior similar to the message of an email client or antivirus
      In other words:
          Any PC screen able to calculate the size
          To consider the Task bar size
          To find the lower corner on the right/below and to nestle on it

      Notes:
      In GUI the GUICtrlCreateEdit field (as option) - that can be received and displayed through variable information
      Thanks a lot
      PS
      I use the translator, excuse if something is not clear
       

    • VollachR
      By VollachR
      Hi,
      I'd like to show a progress bar for an operation performed by an external program my script is running silently, I want to show it in a GUI I created using the GUICtrlCreateProgress but I have no idea how to do it.
      The important thing to point out is that there's no way of knowing how long the external program will run, as it is a file splitter and it depends on the size of file it splits and the split parts size.
      Can someone point me in the right direction or give me an example how to do so?
      This is my RunWait command:
      RunWait($MYFILES1 & '\fsplit.exe -split ' & $Size & ' mb ' & $File & " -f " & $File & "." & $extension) It uses multiple variables declared and set earlier in the script, how will I got about having the progress of that command shown using GUICtrlCreateProgress ? Is it possible?
      Thank you.
    • nacerbaaziz
      By nacerbaaziz
      Hello my friends
      I have an inquiry and I hope to find the answer here
      I want to create a graphical user interface
      but I want to hide the system menu
      I mean the window menu
      Is this possible?
      If is possible please give me how to do that
      Thanks in advance
×