Fórum Root.cz
Hlavní témata => Software => Téma založeno: Tatka 03. 06. 2015, 15:11:17
-
Ahoj,
nemate typ na program, ktery vezme vsechny vstupy z klavesnice a na zaklade nich pise text nebo cokoliv jineho zobrazuje na klavesnici?
Duvod - muj sedmi mesicni syn strasne rad pise na klavesnici. Samozrejme pritom macka i funkcni klavesy a pravidelne se trefuje do ruznych klavesovych zkratek. Potrebuju nebo co mu nedovoli prepnout program ani nic jineho zaskodnickeho. Proste, aby program vsechny vstupy zpracoval jen sam + jednu slozitou kterou se program vypne.
(idealne aby to bezelo na Raspberry)
Diky
-
No... já to vyřešil druhou klávesnicí, která není zapojená. Děti se zabavily zhruba stejně. Jinak to moc hrotíš v tomto věku (toho dítěte, samozřejmě).
-
Já vytáhl ze skříně starýho della, kopl na něj linux a dal jsem ho dceři, když jí byl asi rok. Pokud něco dělám, dělá si taky, pokud si něco dodrbe, skriptem přehodím home za pár vteřin a je to. Jinak si zamykat vlastní PC, protože kdyby měla svých 10, stejně když jdu jenom na záchod, už sedí u mýho :D (už jsou jí 2,5 roku)
-
Nestačilo by mu přepnout to do konzole a pustit třeba nano? :)
-
Taky bych rek, ze v sedmi mesicich mu bude bohate stacit odpojena klavesnice ... ;D.
-
Taky bych rek, ze v sedmi mesicich mu bude bohate stacit odpojena klavesnice ... ;D.
To pozor - pri mlaceni do klavesnice kouka, jsetli se neco deje na monitoru. Rikal jsem si, ze se mi tu vali nepouzivane Raspberry Pi, tak mu tam prepojim obcas klavesnici.
Stejne tak ma svuj (nefunkcni) ovladac na televizi, ale ten ho nebavi. Radsi macka nas a kouka, co to dela.
-
No... já to vyřešil druhou klávesnicí, která není zapojená. Děti se zabavily zhruba stejně. Jinak to moc hrotíš v tomto věku (toho dítěte, samozřejmě).
Ja delam z domova a on me vidi u pocitace psat na klavesnici. Cas od casu ho dostanu na klin na hlidani. Zatim mu poustim notepad a mysi hlidam, co dela. Zacina to byt ale docela tezke - drive nebo pozdeji mi neco smaze nebo nekam presune.
-
Co i3lock? Nebo screensaver s heslem a zkratkou na jeho spuštění?
-
Co i3lock? Nebo screensaver s heslem a zkratkou na jeho spuštění?
To ochrani pocitac, ale nesplni pozadavek, aby si maly mohl hrat s klavesnici beze skod. (Tedy aby pocitac i reagoval nejak na stisky. Bez toho ho to nebude bavit.)
-
Taky bych rek, ze v sedmi mesicich mu bude bohate stacit odpojena klavesnice ... ;D.
To pozor - pri mlaceni do klavesnice kouka, jsetli se neco deje na monitoru. Rikal jsem si, ze se mi tu vali nepouzivane Raspberry Pi, tak mu tam prepojim obcas klavesnici.
Stejne tak ma svuj (nefunkcni) ovladac na televizi, ale ten ho nebavi. Radsi macka nas a kouka, co to dela.
Tak mu na ten display posli random vystup?
-
i3lock má unlock indicator - kolečko, jehož část zezelená, když uživatel zmáčkne klávesu. Pro začínající uživatele by to mohl být dostatečný feeback :)
-
Zatim mu poustim notepad a mysi hlidam, co dela. Zacina to byt ale docela tezke - drive nebo pozdeji mi neco smaze nebo nekam presune.
Si děláš srandu? Na hraní snad může mít vlastní účet s nějakými nulovými právy -- ne že mi bude mlátit do klávesnice třeba ve sprráci souborů, kde mám práci za X let.
:o :o :o
-
Co takhle virtualizovat? Přes virtual box tam nahodit nějaký linux, a když si bude chtít hrát, tak to jen zapneš a bude
-
Čistě teoreticky by sis to mohl napsat sám. Stačil by jednoduchej program s hookem, kam by sis nějakou tu složitou zkratku, nebo sekvenci na ukončení napsal sám. A ostatní znaky by to pouštělo na konzoli.
-
Já fakt nevidím důvod proč ne nano třeba v tty2 puštěné v nekonečné smyčce (aby znova naběhlo i když ho čirou náhodou sestřelí)
while :; do nano; done
-
Něco takového jsem tuhle psal. Tu je lehce upravená verze.
V tty1 to pude přerušit jenom Ctrl+\, přepnutím tty a (rozumě pomalým) napsáním obsahu proměnné pass ("ayy lmao").
Kdyby někdo věděl, proč to po napsání pass ještě před vypnutím znovu vyplivne poslední řádku, rád se nechám poučit.
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <time.h>
#include <unistd.h>
void sig_exit(int sig)
{
/*
sigflag_exit = 1;
fprintf (stderr, "received signal %d: exiting\n", sig);
return;
*/
}
int main(int argc, char **argv) {
signal(SIGHUP, &sig_exit);
signal(SIGINT, &sig_exit);
signal(SIGPIPE, &sig_exit);
signal(SIGTERM, &sig_exit);
signal(SIGCHLD, &sig_exit);
size_t wa;
struct termios tms;
tcgetattr(0, &tms);
tms.c_cc[VMIN] = 0;
tms.c_cc[VTIME] = 0;
tms.c_lflag = tms.c_lflag & ~ICANON;
tcsetattr(0, TCSANOW, &tms);
char *buf = calloc(20, sizeof(char));
int m,n;
m = 0;
char *pass = "ayy lmao";
while ((n = read(0, buf, 20)) != -1){
if (!n){
nanosleep(&(struct timespec) {0,100}, NULL);
continue;
}
buf[n] = '\0';
printf("%c", *buf);
if (*buf == pass[m]) ++m;
else m = 0;
if (m == strlen(pass)) break;
}
return 0;
}
-
Tohle by mohlo zabrat, a bude si připadat jak těžkej hacker :D
http://hackertyper.com/
-
viem presne co potrebujes. potrebujes sledovat stisknutia klaves z evdev. zariadenia su /dev/input/... a na citanie program potrebuje root opravnenia.
stisky klavesov mozes citat a zapisovat alebo hocico ine napr odosielat cez siet.
-
Ahoj,
nemate typ na program, ktery vezme vsechny vstupy z klavesnice a na zaklade nich pise text nebo cokoliv jineho zobrazuje na klavesnici?
Duvod - muj sedmi mesicni syn strasne rad pise na klavesnici. Samozrejme pritom macka i funkcni klavesy a pravidelne se trefuje do ruznych klavesovych zkratek. Potrebuju nebo co mu nedovoli prepnout program ani nic jineho zaskodnickeho. Proste, aby program vsechny vstupy zpracoval jen sam + jednu slozitou kterou se program vypne.
(idealne aby to bezelo na Raspberry)
Diky
Ahoj,
me se osvedcila odpojena klavesnice, ale pozor. Musi byt velmi podobna klavesnici, kterou pouzivam ja, jinak syn (2 roky) nemel zajem a chtel porad k pocitaci.
Nastesti mam Thinkpad a kdysi davno jsem si poridil externi IBM Thnikpad klavesnici.
Ma svoji s cervenym puntikem, obcas mu to pripojim k televizi (android krabicka) a jsme oba spokojeni.
-
Já fakt nevidím důvod proč ne nano třeba v tty2 puštěné v nekonečné smyčce (aby znova naběhlo i když ho čirou náhodou sestřelí)
while :; do nano; done
Tohle je vyborny napad. Navic kdyz to pobezi v konzoli, tak tak nepujde Alt-Tab a dalsi zkratky z desktopu.
Diky moc i ostatnim za napady. Vidim, ze v tom nejsem sam :-)
-
sedmimesicni kluk co Ti boucha do klavesnice?
snad to neni ten samy, co me :D
hele, ale primelo me to na jednu malou aplikaci, pres vikend nakodim :-)
-
Tomáš Marný, minimálně z dlouhodobějšího hlediska: takhle malé dítě chce v prvé řadě napodobovat, co dělá rodič; potom bude chtít i tu zpětnou vazbu od hračky (kurzor); a nakonec bude chtít mlátit právě a pouze jen do té klávesnice, kterou používá rodič. Primárně mu stejně jde jen o pozornost rodiče, což chápu, že je drobet v rozkolu s potřebou rodiče ;-)
Takže místo programování krátkodobé hračky si raději pohrajte.
-
Tomáš Marný, minimálně z dlouhodobějšího hlediska: takhle malé dítě chce v prvé řadě napodobovat, co dělá rodič; potom bude chtít i tu zpětnou vazbu od hračky (kurzor); a nakonec bude chtít mlátit právě a pouze jen do té klávesnice, kterou používá rodič. Primárně mu stejně jde jen o pozornost rodiče, což chápu, že je drobet v rozkolu s potřebou rodiče ;-)
Takže místo programování krátkodobé hračky si raději pohrajte.
Jasne, ze nechce mit svuj pocitac, ale chce muj. Monitor ma dva vstupy, USB hub s klavesnici prepichnu do raspberry, putim nano a muzeme chvili spolu busit do moji klavesnice. Casem treba spolu zvladneme ZX Spectrum emulator a stare hry :-)
-
Zdravím,
mě se osvědčil bambam (https://github.com/porridge/bambam (https://github.com/porridge/bambam)). Sice vypadá jinak, než můj editor, ale prcka zabaví.
Debian ho má v repu.
-
a co vim? můžu zaručit že to ti nevypne, ani já zatím nepřišel na to jak ten program vypnout, a to je mi o pár desítek let víc ;)
-
To je téma jak kdybych ho psal já. Mě do klávesnice mlátí 10ti měsíční dcera. Párkrát už vypnula na notebooku wifi a já jak debil desítky minut řešil, co je zase špatně... ;D
Je to jak píšou ostatní:
nepřipojená klávesnice - špatný
jinak vypadající klávesnice - špatný
dálkový ovládání jiný, než používají rodiče - špatný
Ty děti jsou hrozně chytrý už zamlada... ;)
-
Bambam ukončení? Normálně napiš quit a hotovo ;)
-
A čo tak spraviť virtuálny systém ktorý by po vypnutí neukladal zmeny ? (Videl som to v jednej škole)
A možno čo tak zohnať niekde písací stroj ? Ja ked som bol malý(15-20 rokov dozadu), tak som sa s tým pravidelne hral.
-
A čo tak spraviť virtuálny systém ktorý by po vypnutí neukladal zmeny ? (Videl som to v jednej škole)
A možno čo tak zohnať niekde písací stroj ? Ja ked som bol malý(15-20 rokov dozadu), tak som sa s tým pravidelne hral.
mne sa tiez par krat zasekli prsty medzi klavesy pisacieho stroja :-)
-
No mojim staci login prompt v konzoli ;-) Pokial nepridu na alt+f1 je to OK
-
A čo tak spraviť virtuálny systém ktorý by po vypnutí neukladal zmeny ? (Videl som to v jednej škole)
Bohové proč? To je jak dělat důlek na kuličky bagrem. Mnou zmíněné nano v cyklu, pro jistotu možná spuštěné pod separátním uživatelem (aby děcko náhodou neukládalo texťáky do domovského adresáře rodiče) bohatě stačí. Nebo snad vidíte nějakou šanci že děcko náhodným bušením vytvoří root exploit a smaže rodičovy dokumenty?
-
Nebo snad vidíte nějakou šanci že děcko náhodným bušením vytvoří root exploit
No... když vidím počiny MS... ;D
-
a co vim? můžu zaručit že to ti nevypne, ani já zatím nepřišel na to jak ten program vypnout, a to je mi o pár desítek let víc ;)
to asi ne, kdyz by zmacklo ESC tak aby "to zaclo" zase psat muselo by zmacknout INSERT(zapnuti editacniho rezimu)
jinak na vypnuti by se asi nestrefilo :)
ESC q! ENTER
-
Bohové proč? To je jak dělat důlek na kuličky bagrem. Mnou zmíněné nano v cyklu, pro jistotu možná spuštěné pod separátním uživatelem (aby děcko náhodou neukládalo texťáky do domovského adresáře rodiče) bohatě stačí. Nebo snad vidíte nějakou šanci že děcko náhodným bušením vytvoří root exploit a smaže rodičovy dokumenty?
Ked decko po čase prestane baviť písanie textu, tak sa virtualny system bez ukladania zmien može hodiť.
-
Skuste https://github.com/porridge/bambam (https://github.com/porridge/bambam).
-
Hlavně tě dítě naučí zálohovat a verzovat. :-)
-
Ked decko po čase prestane baviť písanie textu, tak sa virtualny system bez ukladania zmien može hodiť.
Což na tom Raspberry moc dobře stejně nepůjde. Tam stačí zálohovat SD kartu.
-
... tak jsem udelal takovou malou blbost, horsi bylo, ze jsem se snazil zakazat ruzne systemove klavesove kombinace a dospel jsem k zaveru, ze z aplikace je to nemozne, ze je potreba kiosk-mod celeho systemu.
Takze vysledek je livecd/usb iso, ktere rovnou nabootuje do "hry".
Zdrojak k dispozici je, nicmene smysl to ma podle mne hlavne jako bundle live-cd bez moznosti prepnout se a nadelat bordel na desktopu. z
http://uloz.to/xBwwXdX8/aja1-keyboard-2015-07-01-iso
Muzete vyzkouset, pripadne ohlasy si rad prectu.
-
... děcko náhodným bušením vytvoří root exploit a smaže rodičovy dokumenty?
kdyz vidim, co je mi schopne 7 mesicni dite udelat s mobilem ... ::)
-
http://uloz.to/xBwwXdX8/aja1-keyboard-2015-07-01-iso
Muzete vyzkouset, pripadne ohlasy si rad prectu.
300 mega! To je holt daň pokroku. Před pár lety by ti na to stačila disketa se speciálním bootsektorem, celých 512 bajtů :-D
-
http://uloz.to/xBwwXdX8/aja1-keyboard-2015-07-01-iso
Muzete vyzkouset, pripadne ohlasy si rad prectu.
300 mega! To je holt daň pokroku. Před pár lety by ti na to stačila disketa se speciálním bootsektorem, celých 512 bajtů :-D
fakt? tyjo. live cd s grafickou aplikaci do 512 bajtu!!! boreeeec!
-
to vis, 4k dema uz jsou moc velika takze frci 0.5k livefd :-D
-
http://uloz.to/xBwwXdX8/aja1-keyboard-2015-07-01-iso
Muzete vyzkouset, pripadne ohlasy si rad prectu.
300 mega! To je holt daň pokroku. Před pár lety by ti na to stačila disketa se speciálním bootsektorem, celých 512 bajtů :-D
fakt? tyjo. live cd s grafickou aplikaci do 512 bajtu!!! boreeeec!
Jestli ti jako grafická aplikace stačí Tetris v barvách a rozlišení 320x200, tak i takoví borci jsou:
; TetrOS
; version 1.01 (05-09-2004)
; coded by Privalov
; For your playing pleasure, it's a boot-sector Tetris game.
; The quick help on keys:
; Left - move left
; Right - move right
; Up - rotate
; Down - drop
; Esc - new game at any time
; Requires VGA and 386 or higher processor.
org 7C00h
ROWS = 23
DELAY = 4
virtual at 46Ch
clock dw ?
end virtual
virtual at bp
current dw ?
current_column db ?
current_row dw ?
last_tick dw ?
delay dw ?
random dw ?
score dw ?
end virtual
label well at 9000h
label pics at well-2*64
cli
xor ax,ax
mov ss,ax
mov ds,ax
mov es,ax
mov sp,0FFFEh
sti
push ax
push start
retf
start:
mov al,13h
int 10h
mov di,3*4
mov ax,int_3
stosw
xor ax,ax
stosw
mov bp,8000h
mov di,pics
mov cx,64
inc ax
rep stosb
mov ah,15
mov dx,7
@@:
mov al,15
stosb
mov al,ah
mov cl,6
rep stosb
mov al,8
stosb
mov ah,7
dec dx
jnz @b
mov cl,8
rep stosb
mov ax,[clock]
mov [last_tick],ax
mov [random],ax
mov byte [current_row+1],well shr 8
xor ax,ax
mov [score],ax
dec ax
stosw
stosw
stosw
mov cl,ROWS
new_piece:
mov ax,1100000000000011b
rep stosw
@@:
mov bx,[random]
mov ax,257
mul bx
inc ax
mov cx,43243
div cx
mov [random],dx
and bx,7
cmp bx,7
je @b
shl bx,1
mov ax,[pieces+bx]
mov [current],ax
mov word [current_column],6 + ((3+ROWS-4)*2) shl 8
xor ch,ch
mov ax,test_piece
int3
mov al,draw_piece and 0FFh
int3
or ch,ch
jz update_screen
xor bp,bp
process_key:
xor ah,ah
int 16h
mov al,ah
dec al
jz start
or bp,bp
jz process_key
mov si,rotate
cmp al,48h-1
je action
mov si,left
cmp al,4Bh-1
je action
mov si,right
cmp al,4Dh-1
je action
cmp al,50h-1
je drop_down
jmp main_loop
action:
call do_move
jmp update_screen
drop_down:
mov si,down
call do_move
jz drop_down
update_screen:
mov bx,7
mov dx,12h
mov ah,2
int 10h
mov cl,12
@@:
mov ax,[score]
shr ax,cl
and al,0Fh
cmp al,10
sbb al,69h
das
mov ah,0Eh
int 10h
sub cl,4
jnc @b
push es 0A000h
pop es
mov si,well+3*2
mov di,320*184+112
draw_well:
lodsw
push si
xchg bx,ax
shr bx,2
mov dl,12
draw_row:
shr bx,1
salc
and ax,64
mov si,pics
add si,ax
mov al,8
copy_line:
mov cx,8
rep movsb
add di,320-8
dec ax
jnz copy_line
sub di,320*8-8
dec dx
jnz draw_row
sub di,320*8+12*8
pop si
cmp si,well+(3+ROWS)*2
jb draw_well
pop es
main_loop:
mov ah,1
int 16h
jnz process_key
mov ax,[clock]
sub ax,[last_tick]
cmp al,DELAY
jb main_loop
add [last_tick],ax
mov si,down
call do_move
jz update_screen
lay_piece:
mov dx,1
mov si,well+3*2
mov di,si
mov cx,ROWS
check_row:
lodsw
cmp ax,1111111111111111b
je remove_row
stosw
dec cx
jmp check_next_row
remove_row:
shl dx,1
check_next_row:
cmp si,well+(3+ROWS)*2
jb check_row
add [score],dx
jmp new_piece
do_move:
mov ax,clear_piece
int3
push dword [current]
call si
xor ch,ch
mov al,test_piece and 0FFh
int3
mov al,draw_piece and 0FFh
pop edx
or ch,ch
jz @f
mov dword [current],edx
@@:
int3
no_move:
ret
down:
sub byte [current_row],2
ret
left:
dec [current_column]
ret
right:
inc [current_column]
ret
rotate:
mov cx,3
@@:
bt [current],cx
rcl dx,1
add cl,4
cmp cl,16
jb @b
sub cl,17
jnc @b
mov [current],dx
ret
int_3:
mov di,[current_row]
mov bx,4
on_piece_row:
mov dx,[current]
mov cl,bh
shr dx,cl
and dx,1111b
mov cl,[current_column]
add cl,4
shl edx,cl
shr edx,4
call ax
add bh,4
scasw
dec bl
jnz on_piece_row
iret
clear_piece:
not dx
and [di],dx
ret
test_piece:
test [di],dx
jz @f
or ch,1
@@:
ret
draw_piece:
or [di],dx
ret
pieces dw 0010001000100010b
dw 0010011000100000b
dw 0010001001100000b
dw 0100010001100000b
dw 0000011001100000b
dw 0100011000100000b
dw 0010011001000000b
rb 7C00h+510-$
dw 0AA55h
Zkompilovat si to musíš sám, poslal bych ti IMG který běží v DOSBoxu, ale nejde sem vložit příloha :P
Náhodou, není to tak že CD při bootování emuluje disketu? Takže by to mělo jít vypálit i na kolečko a spustit z něj, akorát by tam zůstalo 99.9999993% nevyužitého místa!
nobody: Znáš tohle? http://js1k.com/