Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Haslo w CONSOLE


Rekomendowane odpowiedzi

Opublikowano

Mam biblioteke Console.au3 z oficjalnego forum

Jak zrobic w nim, zeby to co wpisuje wyswietlalo sie w postaci *****?

 

Kod, początek ale coś jest ;<

#include <FTPEx.au3>
#include <Console.au3>
DirCreate(@AppDataDir & "/LC2/")
; FTP Settings
Local $FTP_Server = 'xxxxx ; Server FTP
Local $FTP_Username = 'xxxxx' ; User FTP
Local $FTP_Pass = 'xxxx' ; Password FTP
Local $FTP_Open = _FTP_Open('MyFTP Control') ; Open a Server
Local $FTP_Connection = _FTP_Connect($FTP_Open, $FTP_Server, $FTP_Username, $FTP_Pass) ; FTP Connection
Local $FTP_LC2Files = "/public_html/LC2 Server Files"
; Settings
Global $Logged = 0
Global $Version = "0.1"
Global $Local_LC2Files = @AppDataDir & "\LC2"
_FTP_FileGet($FTP_Connection, $FTP_LC2Files & "\Database\Server.db", $Local_LC2Files & "\Server.db")
Global $SRV_Name = IniRead($Local_LC2Files & "\Server.db", "Settings", "Name", "L2P")
Main()
; Login
Func Main()
Global $CMD
Global $Login
Global $Password
While $Logged = 0
Cout("Witaj w " & $SRV_Name & "!" & @CRLF & "Wpisz 'Login' aby się zalogować lub 'Zarejestruj' by się zarejestrować." & @CRLF & ":")
Cin($CMD)
If $CMD = "Login" Then
Login()
ElseIf $CMD = "Zarejestruj" Then
Zarejestruj()
EndIf
WEnd
EndFunc


Func Login()
Cout("Login: ")
Cin($Login)
Cout("Hasło: ")
Cin($Password)
_FTP_FileGet($FTP_Connection, $FTP_LC2Files & "/Database/Users.db", $Local_LC2Files & "\Users.db")
Local $SRV_Users = IniReadSection($Local_LC2Files & "\Users.db", "Users")
For $SRV_UserTest = 1 To $SRV_Users[0][0]
Cout("Trwa porównywanie do Usera nr " & $SRV_UserTest)
If $SRV_Users[$SRV_UserTest][0] = $Login And $SRV_Users[$SRV_UserTest][1] = $Password Then
$Logged = 1
CheckUser()
Else
Cout(" - Błąd!" & @CRLF)
EndIf
Next
EndFunc

Func Zarejestruj()
Local $Check = 0
Local $Login
Local $Password
Local $rePassword
cout("Witaj w rejestracji do " & $SRV_Name & "!" & @CRLF & "Login: ")
cin($Login)
cout("Hasło: ")
cin($Password)
cout("Powtórz hasło: ")
cin($rePassword)
ServerFilesDelete()
If $Password <> $rePassword Then
	Cout("Hasła się nie zgadzają." & @CRLF)
	Zarejestruj()
EndIf
If $Login = "" Or $Password = "" Then
	Cout("Niedozwolony nick lub hasło!" & @CRLF)
	Zarejestruj()
EndIf
_FTP_FileGet($FTP_Connection, $FTP_LC2Files & "/Database/Users.db", $Local_LC2Files & "\Users.db") ; Pobranie wszystkich userów
Local $SRV_Users = IniReadSection($Local_LC2Files & "\Users.db", "Users")
For $SRV_UserTest = 1 To $SRV_Users[0][0]
If $SRV_Users[$SRV_UserTest][0] = $Login Then
	$Check += 1
EndIf
Next
If $Check <> 0 Then
Cout("Użytkownik z takim loginem już istnieje." & @CRLF)
$Check = 0
Zarejestruj()
EndIf
IniWrite($Local_LC2Files & "\Users.db", "Users", $Login, $Password)
_FTP_FilePut($FTP_Connection, $Local_LC2Files & "\Users.db", $FTP_LC2Files & "/Database/Users.db")
Cout("Twoje konto zostało pomyślnie utworzone!" & @CRLF & "Zaloguj się:" & @CRLF)
Login()
EndFunc

Func CheckUser()
ServerFilesDelete()
Clear()
cout(" - Logowanie udane!" & @CRLF & "Trwa sprawdzanie grupy..." & @CRLF)
_FTP_FileGet($FTP_Connection, $FTP_LC2Files & "\Database\Users\" & $Login & "\" & $Login * ".cfg", $Local_LC2Files & "\" & $Login & ".cfg")
$Group = IniRead($Local_LC2Files & "\" & $Login & ".cfg", "Settings", "Group", "Free")
cout("Twoja grupa to '" & $Group & "'" & @CRLF)
cout("Trwa sprawdzanie statusu konta..." & @CRLF)
$Status = IniRead($Local_LC2Files & "\" & $Login & ".cfg", "Settings", "Status", "0")
if $Status = "1" Then
	cout('Twoje konto jest zablokowane!' & @CRLF & "Powód: " & IniRead($Local_LC2Files & "\" & $Login & ".cfg", "Settings", "Reason", "Nieznany"))
	getch()
	Exit
EndIf
cout("Twoje konto jest w porządku!" & @CRLF)
If $Group = "Free" Then
	Free()
ElseIf $Group = "Admin" Then
	Admin()
EndIf
EndFunc

Func ServerFilesDelete()
FileDelete($Local_LC2Files & "/Users.db")
EndFunc

Func Free()
getch()
EndFunc

Func Admin()
getch()
EndFunc

Func Clear()
getch()
EndFunc

Hello there.

Opublikowano

Łatwo by było jakby tam była funkcja getch - wtedy używasz jej do pobrania znaku jeden po drugim i zapisaniu do bufora i wyświetlasz po wpisaniu każdego znaku *.

Jeśli nie ma to robisz to samo, tylko że z tablicą w pętli - używasz cin żeby do każdego elementu w tablicy wprowadzić jeden (dobrze by było jakbyś zrobił jeszcze jakieś ograniczenie, żeby tylko jeden znak można było pobrać naraz) znak do niej i wyświetlasz * po wpisaniu.

 

Najprościej by było w C++, nie rozumiem po co męczyć się z robieniem konsoli w AutoIT.

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
	char haslo[6] = "haslo"; //wielkosc ustalasz ręcznie
	char input[sizeof(haslo)]; //input
	bool passw = false; //zmienna mówiąca czy hasło zostało poprawnie wpisane

	do
	{
		for (int i = 0; i < sizeof(haslo); i++)
		{
			input[i] = _getch();
			// (if passw == haslo) sprawdzanie czy hasla są takie same - nie chce mi się kombinować, nie mam czasu na ogarniania strcmp
			cout << '*';
		}
	} while(passw);

	_getch();
	return 0;
}
trochę pseudokod i niezoptymalizowane, ale nie mam czasu żeby dopracować
846331404756772371599.jpeg
Opublikowano

Łatwo by było jakby tam była funkcja getch - wtedy używasz jej do pobrania znaku jeden po drugim i zapisaniu do bufora i wyświetlasz po wpisaniu każdego znaku *.

Jeśli nie ma to robisz to samo, tylko że z tablicą w pętli - używasz cin żeby do każdego elementu w tablicy wprowadzić jeden (dobrze by było jakbyś zrobił jeszcze jakieś ograniczenie, żeby tylko jeden znak można było pobrać naraz) znak do niej i wyświetlasz * po wpisaniu.

 

Najprościej by było w C++, nie rozumiem po co męczyć się z robieniem konsoli w AutoIT.

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
	char haslo[6] = "haslo"; //wielkosc ustalasz ręcznie
	char input[sizeof(haslo)]; //input
	bool passw = false; //zmienna mówiąca czy hasło zostało poprawnie wpisane

	do
	{
		for (int i = 0; i < sizeof(haslo); i++)
		{
			input[i] = _getch();
			// (if passw == haslo) sprawdzanie czy hasla są takie same - nie chce mi się kombinować, nie mam czasu na ogarniania strcmp
			cout << '*';
		}
	} while(passw);

	_getch();
	return 0;
}
trochę pseudokod i niezoptymalizowane, ale nie mam czasu żeby dopracować

 

w tym jest funkcja getch()

 

znam troche c++, w au3 robie to poniewaz chodzi mi raczej o sam system logowania w au3.

Hello there.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...