Alguem conhece assembly?

Gostaria de saber se alguém sabe como pegar uma tecla do buffer e colocar outra no lugar antes que algum programa faça o tratamento dessa tecla, eu já tentei fazer isso em assembly, até compilou mas o programa em assembly gera exceção e não é executado, não conheço muito bem o assembly, quem puder dar uma mãozinha…

Olá

Você não disse se usa Windows 32 bits, Windows 16 bits, DOS, Linux, Mac, AIX, etc. O que quer fazer depende do sistema operacional.

Também não disse porque quer fazer isto. Se for para esconder uma senha digitada este assunto já foi tratado aqui.

Diante da falta de informações só me resta sugerir que você estude assembler e também como funciona seu sistema operacional no tratamento do buffer do teclado.

[]s
Luca

Como sendo maioria esmagadora de usuários de computador, eu tenho windows na plataforma mais usada, 32 bits, pode parecer mas não me gabo por isto, tambem uso conectiva, mas eu preciso disso para windows mesmo, os usuários de computador mais burros do planeta usam ruindows, gostaria de evitar que o usuário pudesse usar o ruindows em algumas estações que só interressa o sistema da empresa, não tem softwares bom que faz isso e o Poledit é um lixo caso você conheça, e não me venha com “… você deve educar o usuário primeiro…” que todo mundo sabe que usuário burro quando ouve isso coloca num arquivo TMP do seu cérebro. Só preciso de algumas poucas linhas de código no assembly que lê do buffer e grava antes de algum programa tratá-lo, o resto eu me viro pra fazer. Eu tenho TASM e MASM para fazer isso, se puder mandar no formato de um desses 2 compiladores eu agradeço…

Falou…

Bien, nao sei como resolver teu problema em Assembly, mas se o que voce quer eh simplesmente deixar a maquna dedicada ao programa e nada mais (tipo PDV, p.ex.), recomendo que use um Linux com X abrindo o programa sem Window Manager… semelhante aos navegadores de quiosques… se sua aplicacao for Java, voce nao tera problemas em mudar de sistema operacional. E nem precisa se matar com Assembly (que varia de SO pra SO, processador pra processador, compilador pra compilador, etc :-)).

Marcio Kuchma

Olá

Continuo sem saber nada do seu problema e portanto siguo impossibilitado de fazer sugestões.

[]s
Luca

Na verdade preciso disso para windows, pois existe outras aplicações, feitas em vb e outras coisas esquisitas. Sabe quando a gente aperta a mardita tecla windows, pois é o desgraçado do menu iniciar abre e deixa o usuário fuçar a vontade, tambem preciso evitar o tal do ctrl alt del, pois tenho existe uma misera de um microsiga rodando em umas 30 estações e se um dos viado dos usuário chamar ctrl alt del, o usuário fica preso no sistema, não sei porque, e ele nao consegue logar de novo, (no microsiga), e para liberar o infeliz tenho que pedir que todos os usuário saiam do microsiga para reiniciar os serviços que estavam rodando, todos os usuários estão cientes disto mas sempre tem um engraçadinho que faz isso e liga pra nois dizendo que ele não consegue processar a porra do relatório. É só isso que quero, se o usuário digitar a tecla windows, o suposto programa pega a tecla do buffer e coloca o codigo ASCII da barra de espaço (por exemplo), no lugar da tecla digitada, é só isso: substituição de teclas. Espero que tenha ficado claro agora.

Obrigado.

ps: desculpe as palavras colocadas, mas foram as unicas que podem descrever com detalhes para que possam compreender o problema

Hmm… nao tenho certeza disso, mas voce teria que escrever um driver alternativo pro teclado pra poder bloquear uma tecla ANTES dela chegar ao Windows. Acho que compensa mais (ja que sao so 30 estacoes) remover a tecla do Windows e o Alt dos teclados (nao literalmente, mas tirar aquela borrachinha que dá o contato na tecla), nao? :smiley:

cv e suas idéias macabras AHuhauHAUhauAUhua

Olá

Diego, a idéia do CV foi uma das idéias mais brilhantes dentre todas que vi nos últimos tempos. Nós desenvolvedores temos a tendência de querer resolver tudo por software que demoram para ficar prontos e ainda podem ter erros (ainda mais com [size=“24”][color=“red”]ASSEMBLER[/color][/size]). Com uma atividade de no máximo 15 minutos o problema fica resolvido.

PS: Estou respondendo a este tópico nem sei porque. Durante toda minha vida de desenvolvedor passei por vários hardwares e vários sistemas operacionais. Em quase todos pude programar em [size=“24”][color=“red”]ASSEMBLER[/color][/size] que é uma linguagem montadora mais próxima da linguagem de máquina. Agora tenho visto em alguns sites brasileiros a tradução do nome da linguagem [size=“24”][color=“red”]ASSEMBLER[/color][/size] para assembly. Se for para ficar inventando novo nome para linguagem antiga proponho os seguintes novos nomes:
Cê, Deufi, Paithon, Peur, Xéu, Cê-xarpe, VeBe, Gruvi, etc.

[]s
Luca

Realmente a idéia é muito boa…original e que soluciona o problema…
Mas ja to até pensando…vai ter teclados com meia duzia de teclas se for assim :twisted:

:lol:

Realmente a idéia é muito boa…original e que soluciona o problema…
Mas ja to até pensando…vai ter teclados com meia duzia de teclas se for assim :twisted:

:lol:[/quote]

Em muitas LANs House eles fazem isso de remover a tecla do windows, não por motivos de segurança, mas porque atrapalha mesmo… se você apertar sem querer abre o menu iniciar e o jogo pode travar

Se ainda quiser resolver por software, se não me engano, procure por Windows Hooks que é o recurso que vc está precisando e pode resolver satisfatoriamente em C. Dá uma olha em
http://www.beesknees.freeserve.co.uk/articles/hooks.html

Quando se analisa a resolucao de um problema via software e comeca a parecer malabarismo e/ou o 13o trabalho de Hercules, creio que em 99% das vezes existe uma solucao melhor e mais simples, ainda nao visualizada.

A respeito do “Assembler”, ate hoje os “termos” que vi informavam que “Assembly” eh a linguagem em si, e “Assembler” eh o montador - e, claro, uma coisa eh diferente da outra. Mas como nao tenho decadas de informatica nao coloco minha mao no fogo por essas definicoes.

Marcio Kuchma

Olá

  1. Sobre a questão da nomenclatura andei vendo pela web e admito que fui radical demais. Tem muita gente usando o termo assembly. Meu ranço vem dos próprios nomes das linguagens: MASM = M.Assembler, TASM = Turbo Assembler, idem com o produto da IBM para mainframes, etc.
    Melhor deixar como está e usar os 2 nomes. Mas NÃO usar Assembler ou Assembly a menos que conheça muito e saiba todos os inconvenientes.

  2. Sobre usar C. Boa sugestão, geralmente o que se consegue com Asm também pode ser feito com C e fica bem mais fácil de fazer manutenção.

[]s
Luca

A forma mais fácil e usar a própria API do windows.

você pode desabilitar o ctrl+alt+del, o menu iniciar a barra de tarefas, o mouse, o teclado e tudo mais que você quiser…

Basta usar a api… e você pode fazer isso com VB, Delphi C++, java…

Por mim, assembler sempre foi o software, o ‘montador’, e assembly era a linguagem que ele recebe como entrada… mas essa discussao nao acaba nunca se for por aih :smiley:

Tb achava que era assim(Aprendi assim na facul)…mas como o Luca programa desde o Collossus,achei melhor deixar quieto… :lol:

Eu entrei no site http://www.beesknees.freeserve.co.uk/articles/hooks.html mas ele só mostra alguns aplicativos sobre como usar a api do windows. Tenho o Delphi 7 instalado em casa mas não sei programar nele, até olhei o help mas aquilo não ajuda a fazer nada, vi os métodos relacionados mas não sai do lugar. Vou ver se consigo pegar o visual studio com meu professor para programar em C, tô meio enfurrajado mas dá pro gasto. Se alguém tiver mais alguma sugestão…