Ir ao conteúdo
  • Cadastre-se

Marcelo-Poa

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

  1. Oi, acho que voce quer algo similar a isso: reg Query HKCU\Console\%%SystemRoot%%_system32_cmd.exe /v FaceName>temp.dat for /f "usebackq skip=2 tokens=1,2,3* delims=" %%a in (temp.dat) do set valuereg=%%a set valuereg=%valuereg:~26,15% Del /f /q /a temp.dat >nul 2>&1 if not "%valuereg%"=="Lucida Console" echo. nao pause Esse script verifica se a fonte do cmd é Lucida Console é só adaptar para sua chave de registro e o comprimento certo da variavel valuereg!
  2. Depois vendo o post novamente me dei conta que você não quer usar inkey$, pois não da para usar duas teclas ao mesmo tempo, analisando usa rotina é muito boa, então resolvi adaptar para meu game Consegui fazer funcionar, essa sua rotina complica pois ao apertar uma tecla ela tende a fazer muitas contagens no loop, dando chamada de função inválida por facilmente ultrapassar os limites da contagem, uma solução é usar o _LIMIT depois usar um desvio no loop para contar numero por numero, bom deixo uma rotina básica, para alguém que esteja a procura disso. CONST KL = 75 CONST KR = 77 CONST KU = 72 CONST KD = 80 CONST KCL = &H40 'LEFT CONST KCR = &HA 'RIGHT CONST KCU = &H4 'UP CONST KCD = &H1 'DOWN scrennn% = 1000 '------------- velocit= items, velocit2 = square velocit% = 12 velocit2% = 20 PALETTE 0, 0 ' -------------------------------- Creating items ' -------------------------------- Creating test item Test$ = STRING$(2, CHR$(1)) Xtest% = 5 YTest% = 5 ' -------------------------------- Defining square location a% = 41 b% = 22 ' ------------------------------ start start: IF countmove% = velocit2% THEN IF T = KCL THEN a% = a% - 1 IF T = KCR THEN a% = a% + 1 IF T = KCD THEN b% = b% + 1 IF T = KCU THEN b% = b% - 1 IF T = KCD + KCR THEN a% = a% + 1 IF T = KCD + KCL THEN a% = a% - 1 IF T = KCU + KCR THEN a% = a% + 1 IF T = KCU + KCL THEN a% = a% - 1 END IF IF scrennn% = 1000 THEN GOTO home ' -------------------------------- home screen home: CLS IF a% = 3 THEN a% = a% + 1 IF a% = 79 THEN a% = a% - 1 IF b% = 25 THEN b% = b% - 1 IF b% = 1 THEN b% = b% + 1 COLOR 1, 7 FOR i% = 1 TO 24 LOCATE i%, 1 PRINT STRING$(2, CHR$(219)); NEXT i% FOR i% = 1 TO 24 LOCATE i%, 79 PRINT STRING$(2, CHR$(219)); NEXT i% LOCATE 1, 1 PRINT STRING$(80, CHR$(219)); LOCATE 25, 1 PRINT STRING$(80, CHR$(219)); GOTO items ' ----------------------------------------items instructions items: ' ---------------------------------------- show items ' ---------------------------------------- Square item COLOR 1, 7 LOCATE b%, a% PRINT STRING$(1, CHR$(219)); LOCATE b%, a% - 1 PRINT STRING$(1, CHR$(219)); ' ---------------------------------------- Test item COLOR 0, 7 LOCATE YTest%, Xtest% PRINT Test$; GOTO keyloop ' ---------------------------------------------------------------------Movement of objects move: Xtest% = Xtest% + 1 IF Xtest% = 77 THEN Xtest% = 2 GOTO start keyloop: ' -------------------------------------------------------------------------------------- loop keyboard IF countmove% = velocit2% THEN countmove% = 0 IF T = KCD + KCR THEN b% = b% + 1: GOTO start IF T = KCD + KCL THEN b% = b% + 1: GOTO start IF T = KCU + KCR THEN b% = b% - 1: GOTO start IF T = KCU + KCL THEN b% = b% - 1: GOTO start END IF DO countmove% = countmove% + 1 IF countmove% = velocit% GOTO move IF countmove% = velocit2% GOTO start _LIMIT 900 K = INP(&H60) IF K = KL THEN T = T OR KCL ELSEIF K = (KL + 128) THEN T = T AND NOT KCL END IF SELECT CASE K CASE 1: END CASE KL: T = T OR KCL CASE KL + 128: T = T AND NOT KCL CASE KR: T = T OR KCR CASE KR + 128: T = T AND NOT KCR CASE KU: T = T OR KCU CASE KU + 128: T = T AND NOT KCU CASE KD: T = T OR KCD CASE KD + 128: T = T AND NOT KCD END SELECT LOOP
  3. Ola, apesar de ter mais de ano a postagem, vou postar pois pode ser útil caso ainda deseje alterar ou continuar seu projeto, ou mesmo para outros que procurem por isso! Também estive fazendo um game baseado na atari, o primeiro problema que tive foi com movimento do personagem, pesquisando um pouco encontrei a base principal para executar esse movimento sem problemas de conflito! O fundamental no qbasic e ter a rotina de teclado correta, a partir disso fica bastante descomplicado fazer qualquer coisa: a rotina e a seguinte: start: DO _LIMIT 160 Cmmnd$ = UCASE$(INKEY$) LOOP UNTIL Cmmnd$ = CHR$(O) + "H" OR Cmmnd$ = CHR$(O) + "P" OR Cmmnd$ = CHR$(O) + "M" OR Cmmnd$ = CHR$(O) + "K" OR Cmmnd$ = CHR$(27) IF Cmmnd$ = CHR$(0) + "K" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(0) + "M" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(0) + "P" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(0) + "H" THEN PRINT Cmmnd$ IF Cmmnd$ = CHR$(27) GOTO finish GOTO start finish: Cada vez que você pressiona uma tecla a rotina do loop é interrompida, e continua nos IF que vai verficar a tecla que foi precionada, e executar um comando, nesse caso o print mostrando qual codigo da tecla que foi precionada, nesse exemplo as teclas de seta, e ESC para interromper a rotina e sair. Observe que dentro da rotina do loop existe o valor _LIMIT 160, ele corresponde a um atraso na velocidade do loop é necessário, também porque ajusta o loop a velocidade processador da maquina, sem isso você pode ter problemas quando usando o programa em computadores diferentes. http://www.qb64.net/wiki/index.php/LIMIT Se quiser pode dar uma olhada no jogo que criei, deixei disponível o código em basic, rotina completa, e algumas rotinas básicas para analise. https://www.youtube.com/channel/UCw4fZc7jxV_dHS1OLDPvxnw https://mega.nz/#F!So4l0JaL!rpwQ-JK887H8Y18KHjJc0w Tem o arquivo "Minimum of instruction.bas" que possui uma rotina de múltiplos movimentos.
  4. Para quem tem interesse em organizar seus arquivos usando disco virtual (Vhd), disponibilizo um aplicativo para criação do disco, o aplicativo usa somente os recursos do windows diskpart e o registro para criar e gerenciar os discos, o aplicativo foi desenvolvido para inserir remover os discos Vhd como se fossem um hd externo. É possível também habilitar o Vhd para ser montado durante a inicialização do windows. O aplicativo pode ser usado fixo na máquina ou de modo portátil sem instalação alguma! Introdução ao uso: https://www.youtube.com/watch?v=ZvSGWRm_iIs Download do aplicativo: https://mega.nz/#F!r5AC0BCR!rVGixuPkSb-LIK-f_7Ryvw
  5. @Thyago Barbosa Nas linhas if a variável excluir e a variável b tem que ter aspas, caso a sequencia numérica digitada for menor que quantidade de linhas de if o programa vai dar erro e fechar, pois a variável excluir fica fazia.
  6. Esse array desconheço, se existiu e coisa do ms-dos antigo Pensei um pouco o que da para fazer é criar uma nova variável e digitar as pastas que você quer excluir nesse método a variável é quebrada em partes: echo off cls set /p qf="digite a quantidade de pastas: " set /p excluir="digite a sequencia de pastas a excluir: " :start set /a x=x+1 set b=00%x% if "%excluir:~0,3%"=="%b:~-3%" goto start if "%excluir:~4,3%"=="%b:~-3%" goto start if "%excluir:~8,3%"=="%b:~-3%" goto start if "%excluir:~12,3%"=="%b:~-3%" goto start if "%excluir:~16,3%"=="%b:~-3%" goto start mkdir %b:~-3% if %x% NEQ %qf% goto start pause se você digitar em excluir a sequencia 010,015,023 essas pastas não são criadas no primeiro if excluir você esta lendo os três primeiros caracteres no segundo começa a ler depois do quarto caractere, tres e depois dele no terceiro começa a ler depois do oitavo caractere, tres e depois dele essa sequencia vai ate onde você quiser.
  7. Já tive um problema como esse, acontece que set /a faz operações matemáticas as coisas são interpretadas de modo para matemática então esse modo contagem não funciona a solução é criar uma outra variável b para tratar o resultado como cadeia de caracteres! set / a a=a+1 set b=00%a% Nesse caso você cria uma variável b com dois zeros na frente depois o resultado de a, nas primeiras nove contagens o resultado de b é satisfatório porém quando chegar ao numero 10 fica 0010, e assim não é como você quer, a solução é não usar a variável b completamente e sim somente os três últimos caracteres, então a variável b fica: %b:~-3% criando a pasta: md %b:~-3%
  8. for /f "delims=-" %%i in (c:\lista.txt) do echo>>c:\temp.txt %%i Nesse caso cria um novo arquivo sem o sinal -

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...