AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tastencodes in Case-Anweisung

Ein Thema von dangerfreak · begonnen am 12. Dez 2006 · letzter Beitrag vom 13. Dez 2006
Thema geschlossen
dangerfreak
(Gast)

n/a Beiträge
 
#1

Tastencodes in Case-Anweisung

  Alt 12. Dez 2006, 18:54
Hallo ich will grad ein Programm schreiben was Tastencodes abfängt, und da wollte ich eine Case-Anweisung schreiben aner bekomm das nicht hin. Habt Ihr da eine Idee?
Hier meine IF-Anweisung zu dem Thema:
Delphi-Quellcode:
function Tasten2: Integer;
begin
for i:=0 to high(keys) do keys[i]:=GetAsyncKeyState(i)=0;
if keys[VK_Space]=false then result:=VK_Space else if
keys[VK_DOWN]=false then result:=VK_DOWN else if
keys[ord( 'M' )]=false then result:=ord( 'M' ) else result:=i;
end;
mfg Dangerfreak
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Tastencodes in Case-Anweisung

  Alt 12. Dez 2006, 21:51
Hi,
was genau möchtest du denn machen? Soll dein Programm wenn es den Fokus hat alle Tastendrücke empfangen oder möchtest du wirklich alle Tasten abfangen?

An sich gilt für case, dass du hier die Belegung einer einzelnen Variable aus mehreren Möglichkeiten auswählst. Diese Variable muss zudem noch von einem ordinalen Typ sein, aber das ist hier eher unwichtig.
In deinem Fall gibt es schon keine solche Variable, du überprüfst hier verschiedene Elemente in einem Array, jedes dieser Elemente ist dabei eine eigene Variable. Hier könntest du natürlich für eine bestimmte Position durch ein Case unterscheiden, ob die Taste noch gedrückt ist oder nur gedrückt wurde (das sind zwei verschiedene Belegungen der gleichen Variable).

Der Übersichthalber solltest du den Code auch etwas strukturierter aufschreiben, so dass die Zuordnung von Bedingung und Auswirkung deutlicher ist.

Delphi-Quellcode:
function Tasten2: Integer;
var i : Integer;
begin
  for i := 0 to high(keys) do
  begin
    keys[i] := (GetAsyncKeyState(i) = 0);
  end;

  if keys[VK_Space] = false then
  begin
    result:=VK_Space
  end
  else if keys[VK_DOWN] = false then
  begin
    result:=VK_DOWN
  end
  else if keys[ord( 'M' )] = false then
  begin
    result:=ord( 'M' )
  end
  else
  begin
    result:=i;
  end;
end;
Die Begin und Ends mögen keine Auswirkungen auf die Korrektheit des Codes haben, aber doch auf die Lesbarkeit. An sich solltest du auch mit deinem letzten else Fall aufpassen, eine Variable, die in einer Zählschleife verwendet wird, hat nach dem durchlaufen der Schleife keinen definierten Wert mehr. Du solltest hier lieber high(keys) zuweisen oder i in einer while-Schleife erhöhen.

Gruß Der Unwissende
 
StarFire

Registriert seit: 16. Feb 2003
11 Beiträge
 
#3

Re: Tastencodes in Case-Anweisung

  Alt 12. Dez 2006, 23:10
http://forum.dsdt.info/viewtopic.php?t=31782

Für diejenigen welche es interessiert, was es wirklich werden soll.
2. Versuch an Infos für einen Virus zu kommen.

http://forum.dsdt.info/viewtopic.php?t=31712

Wie ihr damit umgeht, müsst ihr selbst wissen.
 
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Tastencodes in Case-Anweisung

  Alt 13. Dez 2006, 14:03
Nun ja, eigentlich müssen wir das nicht selbst wissen, nicht zuletzt dafür gibt es die Forenregeln und die Moderatoren, die u.A. für die Einhaltung der Regeln da sind.

Aber unabhängig davon was hier (wie in so ziemlich allen Foren) vorgeschrieben wird oder nicht, was genau hätte ich denn davon, dich beim Bau eines Virus zu unterstützen? Wäre es da nicht leichter, wenn ich dir meine Logins+Passwörter zu schicke? Musst du dann schließlich nicht filtern. Wer also denkst du will dir helfen, dass du (vermeintlich) an seine Daten kommst? Ob du überhaupt an einem Firewall, Proxy oder Ähnlichem vorbei kommst, das lasse ich hier mal so dahingestellt sein.

Jedenfalls ist das nicht all zu kreativ, gab es imho schon oft genug, abhalten davon kann (und möchte dich keiner), also viel Spaß beim Virenschreiben.

Mein ernst gemeinter Tipp ist aber, versuch erstmal die Funktionen die du da benutzt richtig zu verstehen (wenn ich die Beiträge lese denke ich fehlt da noch ein wenig Wissen) und beschäftige dich lieber mit der anderen Seite, der Abwehr solcher Programme. Da gehört dann deutlich mehr dazu, denn Daten heimlich zu lesen und raus zu schmuggeln, hm, kann jeder, wirklich! Aber das zu erkennen, viel interessanter! Und damit kannst du dann später auch mal Geld verdienen.

Gruß Der Unwissende
 
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#5

Re: Tastencodes in Case-Anweisung

  Alt 13. Dez 2006, 14:58
1.) Wenn es ein identisches Thema in einem anderen Forum gibt wäre es zumindest nett, im beitrag darauf hinzuweisen. So kann man ggf. dort schon gucken ob es eine Antwort gibt bevor man sich selber die Mühe macht zu antworten. (Link zu DSDT war ja oben schon).

2.) Jupp, Keylogger / Trojaner, Viren etc. werden auch hier nicht unterstützt.

=== CLOSED ===
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
 
Thema geschlossen


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz