Kod AddHandler Me.KeyPress, AddressOf KeyPresmi javlja error Name 'KeyPress' is not declared.
Visual Basic 2008 Programiranje
- poruka: 151
- |
- čitano: 41.808
- |
- moderatori:
Lazarus Long, XXX-Man, vincimus
Pa jesi li napisao
private sub KeyPress(byval sender as object, byval e as keypresEventArgs)
end sub
ovako sam stavio:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler Me.KeyPress, AddressOf KeyPres
End Subi
Private Sub KeyPresss(ByVal sender As Object, ByVal e As KeyPressEventArgs)
'ovdije ćeš vršiti provjeru da li je pritisnuta tipka = traženoj - to ti je već objašnjeno
End Sub
ta dva su odvojena
jel to valja?
Ovo bi ti trebalo radit
ovako sam stavio:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler Me.KeyPress, AddressOf KeyPres
End Subi
Private Sub KeyPresss(ByVal sender As Object, ByVal e As KeyPressEventArgs)
'ovdije ćeš vršiti provjeru da li je pritisnuta tipka = traženoj - to ti je već objašnjeno
End Sub
ta dva su odvojena
jel to valja?
U C# se KeyPress event aktivira samo kod kontrle koja trenutno ima fokus. Trebao bi isti slucaj biti i s VB-om. To bi ti moglo raditi eventualno ako nemas ni jednu kontrolu na formu, ili barem ni jednu kontrolu koja moze primiti fokus. Ako imas, onda i tim kontrolama dodaj taj Handler, znaci ako imas ne znam nekiu Button1, onda u Form1_Load dodaj
ovako sam stavio:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler Me.KeyPress, AddressOf KeyPres
End Subi
Private Sub KeyPresss(ByVal sender As Object, ByVal e As KeyPressEventArgs)
'ovdije ćeš vršiti provjeru da li je pritisnuta tipka = traženoj - to ti je već objašnjeno
End Sub
ta dva su odvojena
jel to valja?
U C# se KeyPress event aktivira samo kod kontrle koja trenutno ima fokus. Trebao bi isti slucaj biti i s VB-om. To bi ti moglo raditi eventualno ako nemas ni jednu kontrolu na formu, ili barem ni jednu kontrolu koja moze primiti fokus. Ako imas, onda i tim kontrolama dodaj taj Handler, znaci ako imas ne znam nekiu Button1, onda u Form1_Load dodaj:
AddHandler Button1.KeyPress, AddressOf KeyPres
I ubuduce ne trebas pitati jel to valja i cekati da ti netko kaze jel to valja ili ne. Probaj sam! Pa ako ne valja, onda probaj popraviti. Ako ne mozes popraviti, javi se.
AddHandler Me.KeyPress, AddressOf KeyPres
KeyPress u tom kodu treba deklaraciju a neznam koju bi stavio
probao sam:
Dim KeyPres As KeyPressEventArgs
Dim KeyPres As EventArgs
Dim KeyPres As Keys
i nijedna neradi.
našao sam u čemu je problem
stavio sam
AddHandler Me.KeyPress, AddressOf KeyPresss
umjesto
AddHandler Me.KeyPress, AddressOf KeyPres
AddHandler Me.KeyPress, AddressOf KeyPres
KeyPress u tom kodu treba deklaraciju a neznam koju bi stavio
probao sam:
Dim KeyPres As KeyPressEventArgs
Dim KeyPres As EventArgs
Dim KeyPres As Keys
i nijedna neradi.
Normalno da ne radi, kad je event tipa KeyPress.
Edit: pretekao si me.
Nisam razumio skroz pitanje pa sam napisao nepotpun odgovor, kod izmijeni tako da umjesto:
AddHandler Me.KeyPress, addressOf KeyPress
upišeš
Add Handler WebB.KeyPress, addressOp KeyPress
WebB je ime tog tvog web browsera
A da bi to sve funkcioniralo i da bi on imao fokus koristiš metodu WebB.Focus()
krivo ste me vi izgreda razumjeli ja ocu da kad bilogdje u bilokojem programu/igrici kliknem da mi otkrije koja je tipka pritisnuta
čak i ako nema otvorenih programa osim ovog u kojem je to
krivo ste me vi izgreda razumjeli ja ocu da kad bilogdje u bilokojem programu/igrici kliknem da mi otkrije koja je tipka pritisnuta
čak i ako nema otvorenih programa osim ovog u kojem je to
Nista te mi nismo krivo razumjeli. Odakle da mi znamo da ti ne govoris o VB programu kao takvom (otkrivanje tipke koja je pritisnuta dok ti je otvoren prozor tvog programa), nego o programu koji ce otkrivati koja se tipka pritiska u Windowsima? Ne mozemo ti citati misli. Sljedeci put budi precizniji.
http://sim0n.wordpress.com/2009/03/28/vbnet-keyboard-hook-class/
Puno hvala, ovo je pomoglo
jel znate kako izvuci substring iz variable ako se ima samo delimiter i broj predmeta
naprimjer:variabla je 58-59-32-47-52-68
delimiter je -
a kad upisem 4 kao broj predmeta da mi pokaze 47
ili 2 kao broj predmeta da mi pokaze 59
ja sam napravio svoj ali neradi ne pokazuje mi rezultate dobro
Pa imaš funkciju String.Split()
jel znate kako izvuci substring iz variable ako se ima samo delimiter i broj predmeta
naprimjer:variabla je 58-59-32-47-52-68
delimiter je -
a kad upisem 4 kao broj predmeta da mi pokaze 47
ili 2 kao broj predmeta da mi pokaze 59
ja sam napravio svoj ali neradi ne pokazuje mi rezultate dobro
Staviš sve u polje ili array i indexiraš sve i koji index tražiš (ili 4 li 1 kao index) ono što si spremio u polje to ti se i ispiše kad zatražiš....
Tu varijablu kako je već netko napisao splitaš i spremiš u niz i radiš samo ispis koji želiš.To je sva filozofija a kod sam napiši ,malo se pomuči ...
Možda je mali off top. ali zašto ne počinjete sa C#-om nego sa ružnim VB-om ,malo sam subjektivan ali eto....ne mogu si pomoći ,kad vidim VB naježim se ...
Pa šta ima veze s kojim jezikom započinju, bitno je naučiti logiku a sve šta možeš sa VB-om možeš i s C#-om, stvar je u tome čija ti se sintaksa više sviđa.
Ja osobno sam počeo s VB-om i učio sam ga 2-3 mjeseca i onda sam prešao na c# jer mi jednostavno ima nekako logičniju sintaksu a i draže mi je na kraju svakog statementa stavljat ;
Sad si na svom primjeru sam objasnio da ima veze s kojim jezikom pocinju. Zasto se zamarati s VB.NET-om ako nije nista (znacajno) jednostavniji od C#-a, a C# ujedno ima (po mnogima) bolju, "logicniju" sintaksu. I, osim toga, sintaksa mu ima veze s drugim vrlo popularnim jezicima, poput C++-a, Jave, JavaScripta, a donekle i PHP-a. Dakle, jednostavno nema razloga da netko danas ide uciti programirati na VB.NET-u - samo si radi stetu, jer je to isto vrijeme mogao potrositi na C#. A vremena nikad dosta.
Oznaka za novi red? http://en.wikipedia.org/wiki/Newline
Pod Windowsima radi se o znakovima CR+LF (ti znakovi imaju ASCII vrijednosti 13 i 10).
A to, da bi ti zapisao neki tekst u odredjeni red u datoteci, ti logicki bas i ne sljaka - barem ne ako su ti linije razlicite duljine (a ako su ti iste duljine, onda te oznake za sljedeci red ne bi ni trebale opterecivati). Sto ces ako je neki red dugacak tri znaka, a ti hoces na njegovo mjesto zapisati red dugacak 10 znakova? Ako zapises red od deset znakova na mjesto reda od tri znaka, prebrisat ces redove koji dolaze iza njega! Dakle, ako nemas strukturiranu datoteku, onda je ili cijelu odjednom zapises na disk ili eventualno dodajes tekst na njen kraj.
Razmisli si sto zapravo hoces napraviti. Takodjer ti preporucam i da nekim heksadeciimalnim editorom (recimo ovim: http://frhed.sourceforge.net/) otvoris tekstualnu datoteku, da vidis kako ona zaista izgleda.
ja ocu u visual basic-u 2008 zapisati ovo u file tjekom pokretanja
naprimjer:
početak:4545
kraj:78768
sve
da sve tako izgleda a ne ovako:
početak:4545 kraj:78768 sve
i to sa naredbom
My.Computer.FileSystem.WriteAllText()
"početak:4545" + Chr(13) + Chr(10) + "kraj:78768" + Chr(13) + Chr(10) + sve
hvala
ili umjesto ' Chr(13) + Chr(10) ' možeš koristit vbNewLine
Jel zna kako encrypt i descrypt neki tekst ako se samo ima taj tekst i kod/lozinku?
primjer:
tekst = "primjer"
kod = "952844"
encrypt = #gd#98 'neki znakovi uglavnom
i isto tako da se descrypt-ira sa
primjer:
tekst = "#gd#98"
kod = "952844"
descrypt = primjer
ako se tako što uopće može napravit
Imas operator Xor: http://msdn.microsoft.com/en-us/library/csw1x2a6%28VS.80%29.aspx
Znaci, ides znak po znak stringa, konvertiras ga u cjelobrojnu vrijednost velicine jednog bajta (nemam pojma sto ti je to u VB-u) i Xor-as ga s nekim brojem. Kad rezultat Xor-as s tim istim brojem, dobit ces pocetnu vrijednost.
Znaci, 1 Xor 2 Xor 1 je 1.
Znaci, 3 Xor 4 Xor 3 je 3.
Naravno, da zakompliciras situaciju, lozinku neces Xorati samo s jednim brojem, nego ces na isti znak napraviti vise Xor-ova - dakle, u osnovi imas lozinku i kljuc, koji su stringovi, i onda lozinku zakodiras kljucem - svaki znak lozinke Xor-as sa svim znakovima kljuca. Naravno, kljuc moras cuvati kao oko u glavi posto bilo tko tko ima kljuc napravljen po ovoj jednostavnoj metodi, moze dekriptirati lozinku.
Inace, glede lozinki, tendencija je da se lozinke zakodiraju tako da se ne mogu otkodirati - znaci, da ti iz zakodirane lozinke ("#gd#98") vise ne mozes dobiti originalnu ("primjer"). I onda kad provjeravas je li korisnik upisao ispravnu lozinku ("primjer"), upisanu lozinku zakodiras ("#gd#98") i provjeravas je li takva jednaka onoj koju si prije spremio kao zakodiranu lozinku ("#gd#98"). A ne da ides otkodirati ("#gd#98") u ("primjer") i onda gledati je li otkodirana lozinka jednaka onoj koju je korisnik upisao. Inace, ovdje imas primjer i klasu za danas vrlo cesto koristenu MD5 enkripciju: http://www.bullzip.com/md5/vb/md5-visual-basic.htm
Našao sam
kako mogu otkriti koja je tipka na mišu pritisnuta u bilokojem programu prozoru,bilogdje?
mozes koristit ovu funkciju GetAsyncKeyState
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As UInteger) As Short
Private Const VK_MOUSE_L = &H1 'ljeva tipka misa
primjer:
If (GetAsyncKeyState(VK_MOUSE_L) And &H1) Then Label1.Text = "Pritisnuli ste ljevu tipku"
If (GetAsyncKeyState(VK_MOUSE_L) And &H8000) Then Label1.Text = "Držite ljevu tipku pritisnutu"
eto
jel zna tko kako nacrtati pravokutnik na desktopu i da je iznad svega da ga ništa ne prekriva(primjer:prozori)
i kasnije ga izbrisat