Hej! >Kan du förklara vad du vill uträtta? > det angår ifs inte oss direkt... Det jag antar han vill ha hjälp med är att hur man gör så ens program känner av vilken tangent som trycks ner.. Själva sparningen fixar han säkerligen själv.. Hej! Hur tänker du dig om man t.ex. har tryckt på backspace? Shift-tangenten? Håller inne control och trycker på några knappar? Bara trycker in alt-tangenten en gång? Hur vill du spara? Keycodes? Som en textsträng? Samtliga knappar? Om man håller in shift och trycker på knappen "7" en gång, ska du lagra "nedtryck på shift, nedtryck på 7, upptryck på 7, upptryck på shift" eller "/"? Osv? Jag har väl mest tänkt det som en text sträng, till att börja med, jag vill som sagt mest lära mig nu. Hittade en artikel som beskriver detta, har inte analyserat om det går att göra på något smidigare sätt... Varför inte bara söka på keylogger? Då hittar du massor av exempel. Jag har googlat på det men jag tyckte inte dom var så bra, kanske har fel men... Jag har nu konverterat mitt VB-program till VB.NET så du kan se hur man kan göra en Keylogger på enkelt sätt. Tack så jätte mycket för den! GetAsyncKeyState() är ett Windows-API som frågar Windows om en knapp, t.ex. om den är nedtryckt. Här är 2 till du kan lägga till: Tack så mycket för hjälpen. Det finns inget enkelt sätt att dölja det. Windows gör allt för att visa alla processer som kör.Program i bakgrunden!
Om jag vill i VB.NET göra så att ett program körs i bakgrunden skriver jag väl bara såhär i "onload":
Me.visible = false
Då syns det väl bara i akivitetshanteraren?
Men om jag nu vill att varje gång man trycker på en knapp så ska det sparas, vilken knapp man tryckte på, hur kan man lösa det?
Tack på förhand :)Sv:Program i bakgrunden!
det angår ifs inte oss direkt...
googla, hook keyboard vb.net.
det går även koda så prog. inte syns i akivitetshanteraren...Sv: Program i bakgrunden!
Mjo, i allra högsta grad.
"så ska det sparas, vilken knapp man tryckte på" säger inte särskilt mycket om sättet det ska sparas på. Och varför? Ska det "sparas" en textsträng med alla knappar utskrivna "fonetiskt"? En array med keycodes? Ska det skrivas en fil kanske?
Det kan rentav vara så att det finns ett annat sätt att lösa problemet på som han inte tänkt på, därav frågan.
Att försöka ge ett bra svar på den här frågan är i stort sett omöjligt, det enda man kan svara på är sin egen högst tveksamma tolkning av frågeställningen, och det är ganska stor risk att man svarar på en helt annan fråga än vad frågeställaren hade tänkt sig. Slöseri med tid för alla parter med andra ord.Sv:Program i bakgrunden!
Sv: Program i bakgrunden!
Jo, detta är mest för att lära mig. Försöker hitta på lite olika projekt som samtidig tär roliga, det blir lättare att lära sig då.
Jag vill alltså att ett program inte ska synas, helst inte i aktivitetshanteraren heller men jag vill gärna veta båda sätten.
Programmet ska sen varje gång någon trycker på en tangent t.ex. k då ska k sparas trycker han sen a och sen ,l,l,e då ska det sparas.
Sen vet man att han har skrivit kalle :)
Tack!Sv:Program i bakgrunden!
Att få fram nertryckta tangenter är inte så svårt, det som däremot börjar bli krångligt är när du säger att du vill "spara" dem. Vad menar du med det?Sv: Program i bakgrunden!
Men jag har faktiskt ingen aning hur :/
Uppskattar hjälp tack :)Sv:Program i bakgrunden!
http://www.codeproject.com/KB/system/globalsystemhook.aspx
/JohanSv: Program i bakgrunden!
Jag har gjort några själv men det är så länge sen så det är i gamla VB.Sv:Program i bakgrunden!
Men i alla fall, det min fråga egentligen är, tror jag är:
Att gömma programmet i aktivitetshanteraren och även göra så att den kan fånga upp varje tangent tryckning. För frågan är hur den ska fånga tangenttryckningarna om programmet inte har fokus... alltså att man är i programmet...Sv: Program i bakgrunden!
Programarkivet:Keylogger VB.NETSv:Program i bakgrunden!
Jag såg koden, och har redan lärt mig nya grejer dock så har jag några frågor som jag hoppas det går bra om jag ställer här :)
For KeyLoop = 0 To 255
KeyResult = GetAsyncKeyState(KeyLoop)
If KeyResult = -32767 Then
Dessa raderna förstår jag inte riktigt vad dom är till för + denna:
FoundKeys += Chr(KeyLoop)
En grej till, Timern körs var 10 millisekund, finns det inte risk att den missar då eller?
Skulle uppskattat det jätte mycket om någon tog sig tid och förklarade, tack :)Sv: Program i bakgrunden!
Den frågar först om knapp 0, sen knapp 1 och ända upp till nr 255 i loopen. Det innefattar alla knappar på tangentbordet.
-32767 betyder att den är nedtryckt.
FoundKeys += Chr(KeyLoop)
lägger till vad den hittade. Chr() omvandlar knappsiffran till en char, alltså en bokstav (oftast).
Jo, det finns risk att den missar. Du kan minska till 1 ms, men ju oftare loopen körs, destå mer cpu tar det. Den körs ju redan 256 gånger varje hundradels sekund.Sv:Program i bakgrunden!
Case Keys.LButton
FoundKeys += "<LeftMouse>"
Case Keys.RButton
FoundKeys += "<RightMouse>"
Sv: Program i bakgrunden!
Har redan lärt mig riktigt mycket :)
Vet någon hur man döljer det i aktivitetshanteraren också?
PS. Jag vet att det är olagligt att installera på andras datorer och kommer inte att göra det, är bara i lärningsstadiet :)Sv:Program i bakgrunden!
Anledningen är att virus, trojaner, keyloggers etc. inte ska kunna köras utan användarens medgivande.
I äldre Windows-versioner (innan Vista), kunde man köra sin app som en service, och då syntes den inte.
Det finns några fulsätt som vissa använder sig av, där ett enkelt är att byta namn på sin process som liknar något annat som brukar finnas i task managern och ett annat mer avancerat är att använda Win32-API:er som SendMessage, för att leta upp och ändra textsträngarna i task managern.