PDA

View Full Version : |Desenvolvimento| Cadastrar conta MuOnline por aplicativo Python



kingrox
02-19-2023, 09:44 AM
https://youtu.be/vTLIAsHy8nM

lollollol

Mentor
02-20-2023, 01:50 AM
Massaa congratscongratscongratscongrats

Farias
02-21-2023, 08:47 PM
Parabens !!!

kingrox
02-21-2023, 10:39 PM
da pra fazer todo um site direto em launcher

Hunterzr
02-25-2023, 01:46 PM
Phyton é lindooooo, se utilizar o phyton web da pra fazer uma website bem dahora sem utilizar muito recurso.

Pensando no futuro, da pra integrar o launcher/site/discord por exemplo...

Farias
02-25-2023, 05:20 PM
Pensando de liceberar pra gente Kingrox ?

kingrox
02-27-2023, 07:23 AM
Pensando de liceberar pra gente Kingrox ?

ta na mão


from tkinter import messageboximport customtkinter as ct
import pyodbc


ct.set_appearance_mode("dark") # Modes: system (default), light, dark
ct.set_default_color_theme("dark-blue") # Themes: blue (default), dark-blue, green

app = ct.CTk() # create CTk window like you do with the Tk window
app.title('MainLauncher')
app.geometry("280x500")
#app.resizable(False, False)


def comparacao():
nome = nome_cadastro.get()
nick = nick_cadastro.get()
senha = senha_cadastro.get()
conf_senha = confirmar_senha_cadastro.get()
email = email_cadastro.get()
conf_email = confirmar_email_cadastro.get()
telefone = cadastro_telefone.get()
p_id = person_id.get()

if nome == '' or nick == '' or senha == '' or conf_senha == '' or email == '' or conf_email == '' or p_id == '' or telefone == '':
messagebox.showinfo('Atenção', 'Por favor não deixe campos vazios!')

elif check_var.get() == 'off':
messagebox.showinfo('Atenção', 'Confirme a caixa!')

else:
if senha_cadastro.get() != confirmar_senha_cadastro.get():
messagebox.showerror('Atenção', 'Atenção SENHA não correspondem!')
return

if email_cadastro.get() != confirmar_email_cadastro.get():
messagebox.showerror('Atenção', 'Atenção E-MAIL não correspondem!')
return
else:
server = '(local)'
database = 'MuOnline'
username = 'sa'
password = '123456'
driver = '{SQL Server}'

conn = pyodbc.connect(
'DRIVER=' + driver + ';SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' + password)

cursor = conn.cursor()

# Define a instrução SQL para inserir um novo registro na tabela MEMB_INFO
sql = "INSERT INTO MEMB_INFO (memb___id, memb__pwd, memb_name, mail_addr, sno__numb, bloc_code, ctl1_code) VALUES (?, ?, ?, ?, ?, ?, ?)"

# Define os valores a serem inseridos
values = (nick, int(senha), nome, email, telefone, '0', '0')

# Executa a instrução SQL com os valores fornecidos
cursor.execute(sql, values)

# Confirma as alterações no banco de dados
conn.commit()

conn.close()
messagebox.showinfo('Parabéns', 'Cadastro realizado com sucesso!')
nome_cadastro.delete(0, ct.END)
nick_cadastro.delete(0, ct.END)
senha_cadastro.delete(0, ct.END)
confirmar_senha_cadastro.delete(0, ct.END)
email_cadastro.delete(0, ct.END)
confirmar_email_cadastro.delete(0, ct.END)
cadastro_telefone.delete(0, ct.END)
person_id.delete(0, ct.END)
nome_cadastro.focus()


def validar_entrada(valor):
if len(valor) > 10:
return False
else:
return True


def validar_email(valor):
if len(valor) > 50:
return False
else:
return True


def validar_id(valor):
if len(valor) > 7:
return False
else:
return True


def validar_tel(valor):
if len(valor) > 11:
return False
else:
return True

# Criando Entradas
nome_cadastro = ct.CTkEntry(master=app, placeholder_text='NOME', validate="key", width=220)
nome_cadastro.pack(padx=10, pady=10)
nome_cadastro.configure(validatecommand=(nome_cada stro.register(validar_entrada), "%P"))

nick_cadastro = ct.CTkEntry(master=app, placeholder_text='NICK', validate="key", width=220)
nick_cadastro.pack(padx=10, pady=10)
nick_cadastro.configure(validatecommand=(nick_cada stro.register(validar_entrada), "%P"))

senha_cadastro = ct.CTkEntry(master=app, placeholder_text='SENHA', validate="key", show='*', width=220)
senha_cadastro.pack(padx=10, pady=10)
senha_cadastro.configure(validatecommand=(senha_ca dastro.register(validar_entrada), "%P"))

confirmar_senha_cadastro = ct.CTkEntry(master=app, placeholder_text='CONF.SENHA', validate="key", show='*', width=220)
confirmar_senha_cadastro.pack(padx=10, pady=10)
confirmar_senha_cadastro.configure(validatecommand =(confirmar_senha_cadastro.register(validar_entrad a), "%P"))

email_cadastro = ct.CTkEntry(master=app, placeholder_text='E-MAIL', validate="key", width=220)
email_cadastro.pack(padx=10, pady=10)
email_cadastro.configure(validatecommand=(email_ca dastro.register(validar_email), "%P"))

confirmar_email_cadastro = ct.CTkEntry(master=app, placeholder_text='CONFIRMAR E-MAIL', validate="key", width=220)
confirmar_email_cadastro.pack(padx=10, pady=10)
confirmar_email_cadastro.configure(validatecommand =(confirmar_email_cadastro.register(validar_email) , "%P"))

cadastro_telefone = ct.CTkEntry(master=app, placeholder_text='TELEFONE', validate="key", width=220)
cadastro_telefone.pack(padx=10, pady=10)
cadastro_telefone.configure(validatecommand=(cadas tro_telefone.register(validar_tel), "%P"))

person_id = ct.CTkEntry(master=app, placeholder_text='PER. ID', validate="key", width=220)
person_id.pack(padx=10, pady=10)
person_id.configure(validatecommand=(person_id.reg ister(validar_id), "%P"))

check_var = ct.StringVar()
check_var.set("off")

checkbox = ct.CTkCheckBox(master=app, text="Não sou robo!", variable=check_var, onvalue="on", offvalue="off")
checkbox.pack(padx=0, pady=10)

button = ct.CTkButton(master=app, text="CADASTRA-SE", command=comparacao)
button.pack(padx=10, pady=10)


app.mainloop()

Farias
02-28-2023, 11:39 AM
Mani, n abusando ^^ seria possivel liberar no jeito pra compilar, tipo, só eu mudar um nome aqui e ali e compilar ?

N sei como usar esse script ai :(

( No caso ele é um pequeno programinha né ? teria q abrir ele no programa e compilar, no caso, mais n sei mexer nesse, só em c++ ^^ )

kingrox
02-28-2023, 08:41 PM
Vou fazer sim, depois posto aqui

Farias
03-01-2023, 05:51 PM
Valeu meu mano ^^

kingrox
03-02-2023, 11:56 PM
import ttkbootstrap as tbfrom tkinter import messagebox
import pyodbc

# Escolhendo Tema
app = tb.Window(themename="superhero")

# Criando um titulo
app.title("MuOnline App")


# Chamando notebook na janela app
meu_noteboock = tb.Notebook(app)
meu_noteboock.pack(padx=10, pady=10)

# Criando os notebook
cadastro = tb.Frame(meu_noteboock)
ranking = tb.Frame(meu_noteboock)

# Ativando os notebook
meu_noteboock.add(cadastro, text='Cadastro')
meu_noteboock.add(ranking, text='Ranking')


# Compara dos dados na entry e se for valido faz um insert no sql
def comparacao():
nome = nome_cadastro.get()
nick = nick_cadastro.get()
senha = senha_cadastro.get()
conf_senha = confirmar_senha_cadastro.get()
email = email_cadastro.get()
conf_email = confirmar_email_cadastro.get()
telefone = cadastro_telefone.get()
p_id = person_id.get()

if nome == '' or nick == '' or senha == '' or conf_senha == '' or email == '' or conf_email == '' or p_id == ''\
or telefone == '':
messagebox.showinfo('Atenção', 'Por favor não deixe campos vazios!')

elif check_var.get() == 'off':
messagebox.showinfo('Atenção', 'Confirme a caixa!')

else:
if senha_cadastro.get() != confirmar_senha_cadastro.get():
messagebox.showerror('Atenção', 'Atenção SENHA não correspondem!')
return

if email_cadastro.get() != confirmar_email_cadastro.get():
messagebox.showerror('Atenção', 'Atenção E-MAIL não correspondem!')
return
else:
server = '(local)'
database = 'MuOnline'
username = 'sa'
password = '123456'
driver = '{SQL Server}'

conn = pyodbc.connect(
'DRIVER=' + driver + ';SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' +
password)

cursor = conn.cursor()

# Define a instrução SQL para inserir um novo registro na tabela MEMB_INFO
sql = "INSERT INTO MEMB_INFO (memb___id, memb__pwd, memb_name, mail_addr, sno__numb, bloc_code, " \
"ctl1_code) VALUES (?, ?, ?, ?, ?, ?, ?)"

# Define os valores a serem inseridos
values = (nick, int(senha), nome, email, telefone, '0', '0')

# Executa a instrução SQL com os valores fornecidos
cursor.execute(sql, values)

# Confirma as alterações no banco de dados
conn.commit()

conn.close()
messagebox.showinfo('Parabéns', 'Cadastro realizado com sucesso!')
nome_cadastro.delete(0, tb.END)
nick_cadastro.delete(0, tb.END)
senha_cadastro.delete(0, tb.END)
confirmar_senha_cadastro.delete(0, tb.END)
email_cadastro.delete(0, tb.END)
confirmar_email_cadastro.delete(0, tb.END)
cadastro_telefone.delete(0, tb.END)
person_id.delete(0, tb.END)
nome_cadastro.focus()


# Validar máximo de caracteres
def validar_entrada(valor):
if len(valor) > 10:
return False
else:
return True


# Validar máximo de caracteres para email
def validar_email(valor):
if len(valor) > 50:
return False
else:
return True


# Validar máximo de caracteres para personal Id
def validar_id(valor):
if len(valor) > 7:
return False
else:
return True


# Validar máximo de caracteres para telefone
def validar_tel(valor):
if len(valor) > 11:
return False
else:
return True


# Criando Labels
tb.Label(master=cadastro, text='Nome').grid(column=0, row=0, pady=10, sticky="e")
tb.Label(master=cadastro, text='Nick').grid(column=0, row=1, pady=10, sticky="e")
tb.Label(master=cadastro, text='Senha').grid(column=0, row=2, pady=10, sticky="e")
tb.Label(master=cadastro, text='Confirmar Senha').grid(column=0, row=3, pady=10, sticky="e")
tb.Label(master=cadastro, text='E-mail').grid(column=0, row=4, pady=10, sticky="e")
tb.Label(master=cadastro, text='Confirmar E-mail').grid(column=0, row=5, pady=10, sticky="e")
tb.Label(master=cadastro, text='Telefone').grid(column=0, row=6, pady=10, sticky="e")
tb.Label(master=cadastro, text='Personal Id').grid(column=0, row=7, pady=10, sticky="e")

# Checar a variavel
check_var = tb.StringVar()
check_var.set("off")


# Criando Entradas
nome_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
nick_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
senha_cadastro = tb.Entry(master=cadastro, validate="key", show='*', width=30)
confirmar_senha_cadastro = tb.Entry(master=cadastro, validate="key", show='*', width=30)
email_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
confirmar_email_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
cadastro_telefone = tb.Entry(master=cadastro, validate="key", width=30)
person_id = tb.Entry(master=cadastro, validate="key", width=30)
checkbox = tb.Checkbutton(master=cadastro, text="Não sou robo!", variable=check_var, onvalue="on", offvalue="off")

# Criando Botão
button = tb.Button(master=cadastro, text="CADASTRA-SE", command=comparacao)

# Confirgurando Coluna e linha das entradas
nome_cadastro.grid(column=1, row=0, padx=10, pady=10)
nick_cadastro.grid(column=1, row=1, padx=10, pady=10)
senha_cadastro.grid(column=1, row=2, padx=10, pady=10)
confirmar_senha_cadastro.grid(column=1, row=3, padx=10, pady=10)
email_cadastro.grid(column=1, row=4, padx=10, pady=10)
confirmar_email_cadastro.grid(column=1, row=5, padx=10, pady=10)
cadastro_telefone.grid(column=1, row=6, padx=10, pady=10)
person_id.grid(column=1, row=7, padx=10, pady=10)
checkbox.grid(column=0, row=8, columnspan=2, padx=10, pady=10)
button.grid(column=0, row=9, columnspan=2, padx=10, pady=10)

# Configurando validação de maximo de caracteres
nome_cadastro.configure(validatecommand=(nome_cada stro.register(validar_entrada), "%P"))
nick_cadastro.configure(validatecommand=(nick_cada stro.register(validar_entrada), "%P"))
senha_cadastro.configure(validatecommand=(senha_ca dastro.register(validar_entrada), "%P"))
confirmar_senha_cadastro.configure(validatecommand =(confirmar_senha_cadastro.register(validar_entrad a), "%P"))
email_cadastro.configure(validatecommand=(email_ca dastro.register(validar_email), "%P"))
confirmar_email_cadastro.configure(validatecommand =(confirmar_email_cadastro.register(validar_email) , "%P"))
cadastro_telefone.configure(validatecommand=(cadas tro_telefone.register(validar_tel), "%P"))
person_id.configure(validatecommand=(person_id.reg ister(validar_id), "%P"))


app.mainloop()


https://www.youtube.com/watch?v=VSxyxgFrKlM

kingrox
03-03-2023, 12:13 AM
Download do app
https://mega.nz/file/adAhUYhT#uq9AiyPdvYGeeU8jeCFd-5OzREk65zFNGMY1jYzpO4A

kingrox
03-04-2023, 03:09 AM
https://www.youtube.com/watch?v=ONPEAJcb3mM

Update 03



import ttkbootstrap as tb
from ttkbootstrap.dialogs import Messagebox
import pyodbc

# Criando a janela app
app = tb.Window(title="MuOnline App")

# instanciar o estilo com outro tema
style = tb.Style(theme='superhero')

# Trocando o tema
def changer(theme):
tb.Style(theme=theme)


# Chamando notebook na janela app
meu_noteboock = tb.Notebook(app)
meu_noteboock.pack(padx=10, pady=10)

# Criando os notebook
cadastro = tb.Frame(meu_noteboock)
ranking = tb.Frame(meu_noteboock)


# Ativando os notebook
meu_noteboock.add(cadastro, text='Cadastro')
meu_noteboock.add(ranking, text='Ranking')


# Compara dos dados na entry e se for valido faz um insert no sql
def comparacao():
nome = nome_cadastro.get()
nick = nick_cadastro.get()
senha = senha_cadastro.get()
conf_senha = confirmar_senha_cadastro.get()
email = email_cadastro.get()
conf_email = confirmar_email_cadastro.get()
telefone = cadastro_telefone.get()
p_id = person_id.get()

if nome == '' or nick == '' or senha == '' or conf_senha == '' or email == '' or conf_email == '' or p_id == ''\
or telefone == '':
Messagebox.show_info('Por favor não deixe campos vazios!', 'Atenção')

elif check_var.get() == 'off':
Messagebox.show_info('Confirme a caixa!', 'Atenção')

else:
if senha_cadastro.get() != confirmar_senha_cadastro.get():
Messagebox.show_info('Atenção SENHAS não correspondem!', 'Atenção')
return

if email_cadastro.get() != confirmar_email_cadastro.get():
Messagebox.show_info('Atenção E-MAIL não correspondem!', 'Atenção')
return
else:
server = '(local)'
database = 'MuOnline'
username = 'sa'
password = '123456'
driver = '{SQL Server}'

conn = pyodbc.connect(
'DRIVER=' + driver + ';SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' +
password)

cursor = conn.cursor()

# Executar a consulta SQL
cursor.execute("SELECT * FROM MEMB_INFO WHERE memb___id = ?", (nick,))

# Obter o resultado da consulta
resultado = cursor.fetchone()

# Verificar se o resultado é nulo
if resultado is not None:
Messagebox.show_error(f'Atenção o nick {nick} já existe!', 'Atenção')
else:
# Define a instrução SQL para inserir um novo registro na tabela MEMB_INFO
sql = "INSERT INTO MEMB_INFO (memb___id, memb__pwd, memb_name, mail_addr, sno__numb, bloc_code, " \
"ctl1_code) VALUES (?, ?, ?, ?, ?, ?, ?)"

# Define os valores a serem inseridos
values = (nick, int(senha), nome, email, telefone, '0', '0')

# Executa a instrução SQL com os valores fornecidos
cursor.execute(sql, values)

# Confirma as alterações no banco de dados
conn.commit()

conn.close()
Messagebox.ok('Cadastro realizado com sucesso!', 'Parabéns')
nome_cadastro.delete(0, tb.END)
nick_cadastro.delete(0, tb.END)
senha_cadastro.delete(0, tb.END)
confirmar_senha_cadastro.delete(0, tb.END)
email_cadastro.delete(0, tb.END)
confirmar_email_cadastro.delete(0, tb.END)
cadastro_telefone.delete(0, tb.END)
person_id.delete(0, tb.END)
nome_cadastro.focus()


# Validar máximo de caracteres
def validar_entrada(valor):
if len(valor) > 10:
return False
else:
return True


# Validar máximo de caracteres para email
def validar_email(valor):
if len(valor) > 50:
return False
else:
return True


# Validar máximo de caracteres para personal Id
def validar_id(valor):
if len(valor) > 7:
return False
else:
return True


# Validar máximo de caracteres para telefone
def validar_tel(valor):
if len(valor) > 11:
return False
else:
return True


# Criando Labels
tb.Label(master=cadastro, text='Nome').grid(column=0, row=0, pady=10, sticky="e")
tb.Label(master=cadastro, text='Nick').grid(column=0, row=1, pady=10, sticky="e")
tb.Label(master=cadastro, text='Senha').grid(column=0, row=2, pady=10, sticky="e")
tb.Label(master=cadastro, text='Confirmar Senha').grid(column=0, row=3, pady=10, sticky="e")
tb.Label(master=cadastro, text='E-mail').grid(column=0, row=4, pady=10, sticky="e")
tb.Label(master=cadastro, text='Confirmar E-mail').grid(column=0, row=5, pady=10, sticky="e")
tb.Label(master=cadastro, text='Telefone').grid(column=0, row=6, pady=10, sticky="e")
tb.Label(master=cadastro, text='Personal Id').grid(column=0, row=7, pady=10, sticky="e")

# Checar a variavel
check_var = tb.StringVar()
check_var.set("off")

# Criando Entradas
nome_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
nick_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
senha_cadastro = tb.Entry(master=cadastro, validate="key", show='*', width=30)
confirmar_senha_cadastro = tb.Entry(master=cadastro, validate="key", show='*', width=30)
email_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
confirmar_email_cadastro = tb.Entry(master=cadastro, validate="key", width=30)
cadastro_telefone = tb.Entry(master=cadastro, validate="key", width=30)
person_id = tb.Entry(master=cadastro, validate="key", width=30)
checkbox = tb.Checkbutton(master=cadastro, text="Não sou robo!", variable=check_var, onvalue="on", offvalue="off")

# Criando Botão
button = tb.Button(master=cadastro, text="CADASTRA-SE", command=comparacao)

# Confirgurando Coluna e linha das entradas
nome_cadastro.grid(column=1, row=0, padx=10, pady=10)
nick_cadastro.grid(column=1, row=1, padx=10, pady=10)
senha_cadastro.grid(column=1, row=2, padx=10, pady=10)
confirmar_senha_cadastro.grid(column=1, row=3, padx=10, pady=10)
email_cadastro.grid(column=1, row=4, padx=10, pady=10)
confirmar_email_cadastro.grid(column=1, row=5, padx=10, pady=10)
cadastro_telefone.grid(column=1, row=6, padx=10, pady=10)
person_id.grid(column=1, row=7, padx=10, pady=10)
checkbox.grid(column=0, row=8, columnspan=2, padx=10, pady=10)
button.grid(column=0, row=9, columnspan=2, padx=10, pady=10)

# Configurando validação de maximo de caracteres
nome_cadastro.configure(validatecommand=(nome_cada stro.register(validar_entrada), "%P"))
nick_cadastro.configure(validatecommand=(nick_cada stro.register(validar_entrada), "%P"))
senha_cadastro.configure(validatecommand=(senha_ca dastro.register(validar_entrada), "%P"))
confirmar_senha_cadastro.configure(validatecommand =(confirmar_senha_cadastro.register(validar_entrad a), "%P"))
email_cadastro.configure(validatecommand=(email_ca dastro.register(validar_email), "%P"))
confirmar_email_cadastro.configure(validatecommand =(confirmar_email_cadastro.register(validar_email) , "%P"))
cadastro_telefone.configure(validatecommand=(cadas tro_telefone.register(validar_tel), "%P"))
person_id.configure(validatecommand=(person_id.reg ister(validar_id), "%P"))

# Criando botão para menubutton
menu_botao = tb.Menubutton(app, text=' Selecione o tema ')
menu_botao.pack(padx=15, pady=15, anchor="e")

# Criando o menu de theme
inserir_menu = tb.Menu(menu_botao)

# Add itens no saida do menubutton
theme_var = tb.StringVar()

# Checando todos os temas e inserido na função changer
for t in style.theme_names():
inserir_menu.add_radiobutton(label=t, variable=theme_var, command=lambda t=t: changer(t))
menu_botao['menu'] = inserir_menu


app.mainloop()

Betell Host
03-04-2023, 01:08 PM
Ótimo meu amigo parabéns

kingrox
03-05-2023, 12:49 AM
https://www.youtube.com/watch?v=jk_u9A0JA6o


https://youtu.be/zqF5GKWm258

kingrox
03-08-2023, 09:56 PM
https://youtu.be/VR0DuY_Hzuo