Ir ao conteúdo
  • Cadastre-se

Higor de Deus

Membro Pleno
  • Posts

    33
  • Cadastrado em

Tudo que Higor de Deus postou

  1. Estou em 2023 e vim dizer, as informações desse tutorial não encontram-se em nenhum outro lugar da internet. Se algum dia esse site sair do ar e alguém estiver com esse NAS, já era... Ou não, pois agora eu salvei a página no Wayback machine a página de download também foi salva. Caso alguém em qualquer ano leia este post e necessite dos arquivos ou de apoio, não exitem em me chamar pois sempre volto nesse forum. Tomei a liberdade de traduzir o passo a passo também: Passo 1: Preparando os discos rígidos Faça backup de quaisquer arquivos importantes. Remova os discos rígidos do ix2-200 e conecte-os a um adaptador SATA para USB ou à porta SATA de um PC desktop. Use o EaseUS Partition Master Home Edition para excluir todas as partições nos discos. Coloque os discos rígidos de volta no ix2-200. Passo 2: Preparando o pendrive USB Formate o pendrive USB com o sistema de arquivos FAT32. Crie uma pasta chamada "emctools" no pendrive. Dentro da pasta "emctools", crie outra pasta chamada "ix2-200d_images". Copie o firmware do ix2-200 Cloud Edition (ix2-boot.tgz) baixado para a pasta "ix2-200d_images". (Em alguns casos como o meu a pasta precisou ser ix2-200_images) Passo 3: A atualização (realize este processo duas vezes se necessário) Conecte o pendrive USB preparado ao ix2-200. Segure o botão de reset usando um palito de dente ou um clipe de papel. Enquanto mantém o botão de reset pressionado, conecte o cabo de alimentação. O LED branco na frente do ix2-200 começará a piscar. Aguarde cerca de 30 segundos. Os discos rígidos começarão a girar. Continue pressionando o botão de reset. Após aproximadamente 1 minuto, o LED do pendrive USB se acenderá, mas não piscará. Aguarde até que o LED do pendrive USB comece a piscar continuamente (cerca de 70 segundos após conectar o cabo de alimentação). Solte o botão de reset. O ix2-200 criará uma pasta "Temp" dentro do pendrive USB e extrairá os arquivos do firmware ix2-boot.tgz para essa pasta. Após cerca de 5 minutos, o ix2-200 se desligará. Remova o pendrive USB, conecte o cabo de rede e pressione o botão de energia na frente do ix2-200. Aguarde cerca de 5 minutos para o ix2-200 preparar o sistema operacional pela primeira vez. Acesse o ix2-200 por meio da interface web. Observações: Se você não conseguir acessar a interface web do ix2-200, aguarde 10 minutos e desconecte o cabo de alimentação. Em seguida, insira o pendrive USB novamente no PC, vá para a pasta "emctools\ix2-200d_images" e exclua a pasta "Temp". Repita o processo de atualização. Se desejar RAID 1, aguarde a conclusão da reconstrução do RAID, o que pode levar mais de 5 horas com 2 discos de 2 TB. Se desejar RAID 0, selecione a opção RAID 0 e aplique-a no menu para cancelar o processo de reconstrução. Agora você tem um ix2-200 Cloud Edition totalmente funcional! Agradecimentos especiais a netboy69 por fornecer o firmware descriptografado. ** Em alguns casos, pode ser necessário usar um pendrive USB diferente. Experimente com outro pendrive se o processo falhar.
  2. Olá. possuo uma aplicação que envia assinaturas de e-mail (.png) por Python e funciona muito bem. A assinatura é enviada no corpo do e-mail que é do tipo html. Estou enfrentando problemas para enviar esses e-mails com a assinatura.png no corpo e um arquivo em anexo. O arquivo é um tipo específico (.dbf). Sou iniciante em Python e estou realmente travado. Segue meu código import email import os import smtplib from email.mime import image from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email import encoders import time email = '[emailpareenvio]' cam_arquivo = 'D:\\teste.dbf' cam_assinatura = 'D:\Assinatura.png' def enviar_email(cam_assinatura, email, cam_arquivo): # Iniciar servidor SMTP host = "smtp-mail.outlook.com" port = "587" login = "[emailqueenvia]" senha = "[senhaddoemail]" server = smtplib.SMTP(host, port) server.starttls() server.login(login, senha) # Construir o corpo corpo = "<b> Olá, tudo bem?</b> <br/> <br/> Esse e-mail foi gerado automaticamente.<br/>Pegue o arquivo preterido.<br/>Se alguma informação estiver equivocada ou algum problema surgir, entre em contato comigo no e-mail.<br/><br/><b>Abraço!</b><br/> <p> </p><figure><br/>Atenciosamente,<p></p> <br/><figure> <img src = 'Assinatura.png' alt='Assinatura' > <figure> <br/> <font color='Green'> <font size='6'> <font face='Webdings'> P</font></font><font size='1'> Antes de imprimir, pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. </font></font>" email_msg = MIMEMultipart() email_msg['From'] = login email_msg['To'] = email email_msg['Subject'] = "Envio do Arquivo" email_msg.attach(MIMEText(corpo, 'html')) # Abrir o arquivo em modo leitura e binário attachmente = open(cam_assinatura, 'rb') # Ler o arquivo em modo binário e jogamos codificado em base 64 att = MIMEBase('application', 'octer-stream') att.set_payload(attachmente.read()) encoders.encode_base64(att) # Adicionamoeso cabeçalho no tipo anexo de e-mail att.add_header('Content-Disposition', f'attachment; filename=Assinatura.png') # Fechamos o arquivo attachmente.close() # Colocamos no corpo do e-mail email_msg.attach(att) # Enviar e-mail server.sendmail(email_msg['From'], email_msg['To'], email_msg.as_string()) # Encerrando server.quit() time.sleep(1) enviar_email(cam_assinatura,email,cam_arquivo) Gostaria de saber se é possível enviar dois anexos no mesmo e-mail sendo um a assinatura no corpo e o outro o arquivo (.dbf). E se é possível, como eu encaixo em meu código?
  3. @Rio McCloud Fala meu amigo, realmente estava ligada a alimentação de energia, a Dell tem uns protocolos abusivos e esse artigo me ajudou a resolver. Anexo um print da diferença de gravação no SSD https://ggondim.medium.com/dell-força-desempenho-baixo-da-cpu-34-se-o-carregador-não-é-reconhecido-como-original-119ddb77b228
  4. @Rio McCloud O SSD é novo, já havia testado em outra maquina e funcionou perfeitamente. A alimentação dele pode influir no desempenho? Ele é ligado direto na tomada sem bateria, pode ter algo a ver?
  5. Pra tirar essa dúvida, abri o notebook e dei a manutenção , limpeza, troca de pasta térmica Porém a lentidão permanece @Rio McCloud
  6. O site da dell falava que eu estava na versão mais atual da BIOS, pra sanar qualquer dúvida eu instalei ela novamente via pendrive porém a lentidão permaneceu ok, obrigado pela dica!! E sobre a lentidão, algum palpite?
  7. Sim amigo, inclusive ativei o modo de desempenho máximo do Windows 10 com o comando no cmd powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61
  8. Estou com grandes problemas de desempenho com meu notebook Dell Ele está com grande lentidão mesmo com todos os drivers atualizados no site do fabricante, Windows atualizado Abro o gerenciador de tarefas e nada está em uso 100% As configurações dele são: Processador Intel(R) Core(TM) i3-5005U CPU @ 2.00GHz 2.00 GHz RAM instalada 6,00 GB Tipo de sistema Sistema operacional de 64 bits, processador baseado em x64 Intel HD graphics 4000 SSD Kingston 240 GB (comprei ele tem 1 semana) O único porém dele é que não possuí bateria, mas não acho que isso afete o desempenho visto que pelas configurações ele não devia demorar 1 minuto para abrir o word Já tentei formatar ele e não mudou nada Ele é um Dell Inspirion 5458 Já tentei o suporte da Dell para verificar algum erro e nada foi encontrado
  9. Minha função remover_valor_final para remover o último elemento de uma lista encadeada em C até que funciona com 2 ou mais elementos, porém quando a lista só possuí 1 elemento ela não funciona. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <windows.h> #include <ctype.h> typedef struct sDisciplina{ char nome[20]; char codigo[10]; int credito; int carga_horaria; }Disciplina; typedef struct sNo{ Disciplina disciplina; // Guarda as informações, dados struct sNo *prox; // Guarda o próximo endereço da lista }No; No* inic(No* lista){ // Iniciar lista = NULL; // Atribui NULL mostrando que a lista está vazia return lista; } No* alocarNo(){ // Alocar return (No*) malloc(sizeof(No)); } void desalocarNo(No* q){ // Desalocar free(q); } No* lista_vazia(No* lista){ // Verificar se a lista está vazia if(lista == NULL){ // Verificando se o primeiro No aponta para NULL return; // Sim, está vazia }else{ return lista; // Não, não está vazia } } No* inserir_inicio(No *lista, char nome[], char codigo[], int credito, int carga_horaria){ No *novo; novo = alocarNo(); // Novo nó criado na memória principal if(novo == NULL){ // Testando se alocou printf("Impossível alocar, erro");exit(1); } strcpy(novo->disciplina.nome,strupr(nome)); strcpy(novo->disciplina.codigo,strupr(codigo)); // Deixando todo codigo em maiusculo novo->disciplina.credito = credito; novo->disciplina.carga_horaria = carga_horaria; novo ->prox = lista; // Aponta para o primeiro elemento lista = novo; // Aponta agora para o segundo elemento return lista; // Para o ponteiro da função main enxergue a alteração } void imprimir_lista(No *lista){ system ("cls"); if(lista_vazia(lista) != NULL){ printf("\n\n >> Conteúdo da lista <<\n"); while(lista != NULL){ // Percorrendo a lista até encontrar NULL que é o final printf("\n %s",lista->disciplina.nome); printf(" - %s", lista->disciplina.codigo); printf("\n %d Créditos",lista->disciplina.credito); printf("\n %d Horas",lista->disciplina.carga_horaria); printf("\n"); lista=lista->prox; } printf("\n\n"); system ("pause"); system ("cls"); }else{ system ("cls"); printf("\n\n >> Lista Vazia << \n\n"); sleep(2); system("cls"); } } No* pesquisar(No *lista, char codigo[]){ No *aux; aux = lista; //Apontar o primeiro auxiliar para o início da lista para ele buscar dentro dela if(lista_vazia(lista) != NULL){ // Há itens na lista while(aux != NULL){ if(strcmp(aux->disciplina.codigo,strupr(codigo)) == 0){ // Percorre a lista atrás do elemento return aux; // encontrou o nó e retorna o endereço dele } aux = aux->prox; // Passa para o próximo nó atrás do valor } } return NULL; // Não encontrou o nó } No* remover_inicio(No *lista){ No *q; q = lista; // Aponta para o primeiro elemento if(lista_vazia(lista) != NULL){//Verifica se há itens na lista lista = q->prox; // Faz com que o ponteiro lista, aponte para o segundo elemento excluindo o primeiro desalocarNo(q); //Remover definitavamente o elemento que até então era o primeiro return lista; // Retornamos agora o primeiro o novo endereço do primeiro ponteiro }else{ printf("\nERRO: LISTA VAZIA. \n"); return NULL; } } No* remover_valor(No *lista, char codigo[]){ No *q; // Apontará para o elemento a ser removido No *aux; // Vai percorrer a lista if((q = pesquisar(lista, codigo)) != NULL){ //Procura na lista e passa a apontar para o elemento pesquisado aux = lista; // aponta para o início if(aux == q){ // Se o valor estiver no início, ele é excluido remover_inicio(lista); }else{ //Percorrer a lista while(aux -> prox!=q){ // Percorrer a lista e para uma ponsição antes do ponteiro q aux = aux->prox; } aux->prox = q->prox; // O nó auxiliar passa a apontar para o nó que o nó excluído apontava desalocarNo(q); // Apaga o nó desejado } system ("cls"); printf("\n\n >> Disciplina removida com Sucesso! <<\n\n"); sleep(2); return lista; // removeu o elemento e retornamos o ponteiro } system ("cls"); printf("\n\n >> Disciplina não removida, pode não ter sido encontrado ou ocorreu um erro! <<\n\n"); sleep (2); system ("cls"); return NULL; // não removeu o elemento } void imprimir_lista_sistemas(No *lista){ system ("cls"); char aux[] = {'S','I','N'}; if(lista_vazia(lista) != NULL){ printf("\n\n >> Disciplinas de Sistemas de Informação <<\n"); while(lista != NULL){ // Percorrendo a lista até encontrar NULL que é o final if((strstr(aux,lista->disciplina.codigo) == 0) && (lista->disciplina.carga_horaria >= 60)){ printf("\n %s",lista->disciplina.nome); printf(" - %s", lista->disciplina.codigo); printf("\n %d Créditos",lista->disciplina.credito); printf("\n %d Horas",lista->disciplina.carga_horaria); printf("\n"); } lista=lista->prox; } printf("\n\n"); system ("pause"); system ("cls"); }else{ system ("cls"); printf("\n\n >> Lista Vazia << \n\n"); sleep(2); system("cls"); } } void ordenar_alfabeticamente(No* *lista){ //Bublle sort if(*lista == NULL || (*lista)->prox == NULL){ return; // Se tiver apenas 1 disciplina ou se não tiver sido cadastrada nenhuma } No *aux = *lista, *t; char s[50]; // Armazenar o nome da disciplina while(aux != NULL) { t = aux->prox; while(t != NULL) { if(strcmp(aux->disciplina.nome, t->disciplina.nome) > 0) { //se vir depois strcpy(s, aux->disciplina.nome); strcpy(aux->disciplina.nome, t->disciplina.nome); strcpy(t->disciplina.nome, s); } t = t->prox; } aux = aux->prox; } } No* remover_valor_final(No* *lista){ No* ultimo; No* penultimo; if(*lista == NULL){ printf("\n\n >> Lista vazia << \n\n"); return;// Não faz nada } else{ ultimo = (*lista)->prox; penultimo = (*lista)->prox; while(ultimo->prox!=NULL){ penultimo=ultimo; ultimo=ultimo->prox; } penultimo->prox=NULL; } } int main(){ setlocale(LC_ALL, "Portuguese"); //Deixar em português, com acentos e ç int opc, credito, carga_horaria; char nome[50], codigo[10]; No *ptrLista; // Aponta para o início da lista // O ultímo Nó armarzena o endereço NULL pra dizer que chegou ao fim ptrLista = inic(ptrLista); // Iniciar No *q = alocarNo(); // ALocar um nó vazio com um ponteiro apontado para ele do{ printf("\n\n\t\t\t>> MENU <<"); printf("\n\n 1- Inserir a disciplina na lista dinâmica em ordem alfabética"); printf("\n\n 2- Remover uma determinada disciplina pelo código"); printf("\n\n 3- Exibir as disciplinas que são do curso de Sistemas de Informação"); printf("\n\n\n >> Exercícios complementares, favor ignorar << \n"); printf("\n\n 4- Remover elemento do final da lista dinâmica"); printf("\n\n 5- Concatenar com outra lista dinâmica, na qual terá apenas três disciplinas genéricas\n\n >> Digite a opção desejada: "); scanf("%d",&opc); switch(opc){ case 1: printf("\n >> Digite o nome da disciplina que deseja inserir: "); fflush(stdin); gets(nome); printf("\n >> Digite o código da disciplina que deseja inserir: "); fflush(stdin); gets(codigo); printf("\n >> Digite o número de créditos da disciplina que deseja inserir: "); fflush(stdin); scanf("%d",&credito); printf("\n >> Digite a carga horária da disciplina que deseja inserir: "); fflush(stdin); scanf("%d",&carga_horaria); ptrLista = inserir_inicio(ptrLista, nome, codigo, credito, carga_horaria); system ("cls"); printf("\n >> Inserido com Sucesso! <<\n\n"); ordenar_alfabeticamente(&ptrLista); //sleep(2); system ("cls"); imprimir_lista(ptrLista); break; case 2: printf("\n >> Digite o código da disciplina que deseja remover: "); fflush(stdin); gets(codigo); ptrLista = remover_valor(ptrLista, codigo); system ("cls"); imprimir_lista(ptrLista); break; case 3: system ("cls"); imprimir_lista_sistemas(ptrLista); break; case 4: ptrLista = remover_valor_final(&ptrLista); system ("cls"); break; default: system ("cls"); printf("\n\n >> DIGITE UM VALOR VÁLIDO << \n\n"); sleep(2); system ("cls"); } }while(1); // Mantendo em loop desalocarNo(q); return 0; }
  10. Heheh, depois de muito trabalho eu consegui. Não encontrei a resposta para esse problema em nenhum lugar na internet, mas ache várias pessoas com o mesmo impasse. Vamos lá, para arrumar é o seguinte: 1- Encontre o firmware da sua Tv, pesquise o modelo no google e baixe o firmware! Essa parte foi fácil para mim, caso alguém precise eu posso disponibilizar da Tv Led LE3264(B)W Toshiba. 2- Extraia se estiver como .rar e coloque o arquivo .bin dentro do pendrive, lembre de deixar somente ele dentro do pendrive. 3 - Busque o manual de usa Tv no google, ou então procure como "reinstalar o firmware dando hard reset na sua tv" // Esse ponto foi crucial pra mim, ao ler o manual eu vi que era possível instalar o software "a força" pois quando eu ia nas configurações e pedia pra atualizar dizia que meu sistema já estava atualizado, desse modo o manual dizia que para instalar ele "a força" era necessário mudar o nome do arquivo do pendrive para MS6328LA03_FULL_UPGRADE.bin 4 - Esse passo eu vou copiar exatamente o que estava no manual: 5 - A TV vai aparecer uma tela azul com uma mensagem para não desligar que está atualizando, caso isso não acontecer reveja os passos e tente novamente! É isso, em várias assistências técnicas me falaram pra comprar outra placa, memória mas é tudo falta de informação. Boa sorte e não faça esses procedimentos sem um conhecimento prévio de tecnologia. Qualquer dúvida é só responder por aqui que eu esclareço!
  11. Galera, minha mãe apertou uma combinação de teclas específicas no controle que ativo ou M Mode, fica no canto superior esquerdo da tela e não saí por nada. Já resetei as configurações de fábrica, já vasculhei a internet atrás de respostas e nada. Encontrei o firmware dela mas ao tentar instalar me fala que a ultima atualização já está instalada e não deixa eu instalar uma nova. Gostaria de saber se alguém já passou por isso. Tv 32'' Toshiba Modelo: LE3264(b)w
  12. Show! Muito obrigado pela crítica, esse foi meu primeiro contato com programação e foi feito do 0, não sabia nem o que era um printf... Sei que é possível fazer um código bem melhor e mais otimizado e estava buscando exatamente críticas como a sua Vou buscar otimizar e melhorar ainda mais agora que estou mais avançado no curso e tenho mais experiência! Obrigado
  13. entendi, olha esses desgastes acontecem as vezes mesmo mas não costumam a atrapalhar o funcionamento do computador apenas o rendimento cai minimamente (quase imperceptível) como eu falei desconfio de um curto e só é possível atestar isso medindo cada componente com uma ferramenta adequada :(. Recomendo você não tentar ficar ligando ele pra evitar mais problemas e procurar uma assistência especializada
  14. Olha, não consigo ver bem na imagem mas você tem outra memória pra colocar no lugar dessa? Pra ligar sem ela estar conectada
  15. Show, da uma limpeza como o @Eduardo P.R mencionou, passa um pincel na placa com cuidado retirando a poeira, se tiver álcool isopropílico pode passar também!
  16. Realmente está parecendo um curto ou algum componente esquentando muito. Uma vez eu presenciei isso com um celular ele ligava tranquilo, funcionava, mas logo desligava e ficava horas em off... Depois de testar todos os componentes e os barramentos eu localizei o curto e foi possível o reparo. Sei que um celular é bem diferente do Pc mas segue o mesmo conceito de como estão acontecendo as coisas A critério de teste, tenta limpar a placa com um pincel e localizar alguma degradação
  17. Vish, é fria... Mas você disse que já aconteceu isso antes e você resetou e deu bom, vai tentando... Mesmo eu achando que é algum problema com a placa mesmo, algum curto que ferrou
  18. Ahh, show então o código fica assim: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> typedef struct // Definição da Estrutura "Endereço" { char rua[50]; int numero; char cidade[30]; char codigo_postal[8]; }tipo_endereco; typedef struct // Definição da Estrutura "Pessoal" { char nome[50]; int telefone; tipo_endereco endereco; }ficha_pessoal; int main() { ficha_pessoal funcionario; printf("Digite o nome do funcionario: "); scanf("%s", funcionario.nome); printf("Digite a rua do funionario:"); scanf("%s", funcionario.endereco.rua); printf("Nome do funcionario: %s", funcionario.nome); printf("Rua do funcionario: %s", funcionario.endereco.rua); system("pause"); } Lembrando que só fiz um exemplo, você tem que terminar de fazer mas segue o mesmo padrão! Você declara a estrutura dentro da main dando um nome a ela, lembrando que se for mais de um funcionário você pode colocar [x] e no lugar do "x" escrever a quantidade como um vetor. : ) ai pra utilizar nos printfs, scanfs e até dentro dos fors ou whiles é só usar o nome que você deu e um "." e o que você quiser atribuir (nome,rua,numero) ! Caso for 2 estruturas deve-se colocar o nome dado na main "." o nome dado na estrutura que você declarou a outra "." o nome da outra.. Entendeu?
  19. Hm... Atualizou a bios nesse período? Eu trabalho com manutenção e já passei uns bons perreguens com bios que não resetam nem ferrando
  20. Show! Olha, recomendo então up na placa de vídeo que ja vai ajudar! A questão da ram você resolve com qualquer boost de games (Recomendo o da Razer) e esse cooler ai é perigoso dar pau em, pensa em trocar
  21. Belê, mas a dificulta está na hora de inserir os dados?
  22. Hmm, entendi... Olha pode ser que a placa de vídeo esteja entrando em conflito com a placa-mãe, seja por drivers com erro ou incompatibilidade. Funcionava antes?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...