AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Delphi lightshow auf der Tastatur :)

lightshow auf der Tastatur :)

Ein Thema von smallsmoker · begonnen am 10. Okt 2008 · letzter Beitrag vom 13. Okt 2008
Antwort Antwort
Seite 2 von 4     12 34   
Benutzerbild von smallsmoker
smallsmoker
Registriert seit: 12. Nov 2007
Hi ich habe mir eine prozedure gebastelt die eine kleine lightshow auf den Leds auf der Tastatur veranstaltet:

Delphi-Quellcode:
procedure lightshow();

  procedure dokeybdInput(vkcode: integer);
  begin
    keybd_event(vkcode,KEYEVENTF_EXTENDEDKEY or 0,0,0);
    keybd_event(vkcode,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
  end;

  procedure mylightshow();
  var
    i: integer;
  begin
    for I := 0 to 3 - 1 do
    begin
      dokeybdInput(VK_NUMLOCK);
      dokeybdInput(VK_CAPITAL);
      dokeybdInput(VK_SCROLL);
      sleep(200);
      dokeybdInput(VK_NUMLOCK);
      dokeybdInput(VK_CAPITAL);
      dokeybdInput(VK_SCROLL);
      sleep(200);
    end;

    for I := 0 to 3 - 1 do
    begin
      dokeybdInput(VK_NUMLOCK);
      sleep(125);
      dokeybdInput(VK_NUMLOCK);
      sleep(125);
      dokeybdInput(VK_CAPITAL);
      sleep(125);
      dokeybdInput(VK_CAPITAL);
      sleep(125);
      dokeybdInput(VK_SCROLL);
      sleep(125);
      dokeybdInput(VK_SCROLL);
      sleep(125);
    end;

    for I := 0 to 3 - 1 do
    begin
      dokeybdInput(VK_NUMLOCK);
      sleep(125);
      dokeybdInput(VK_NUMLOCK);
      sleep(125);
      dokeybdInput(VK_CAPITAL);
      sleep(125);
      dokeybdInput(VK_CAPITAL);
      sleep(125);
      dokeybdInput(VK_SCROLL);
      sleep(125);
      dokeybdInput(VK_SCROLL);
      sleep(125);
      dokeybdInput(VK_CAPITAL);
      sleep(125);
      dokeybdInput(VK_CAPITAL);
      sleep(125);
    end;
  end;

var
  KeyState: TKeyboardState;
  isNum, isCAP, isScroll: boolean;
begin
  isNum := false;
  isCAP := false;
  isScroll := false;

  GetKeyboardState(KeyState);

  if not (KeyState[VK_NUMLOCK] = 0) then
  begin
    isNum := true;
    dokeybdInput(VK_NUMLOCK);
  end;

  if not (KeyState[VK_CAPITAL] = 0) then
  begin
    isCAP := true;
    dokeybdInput(VK_CAPITAL);
  end;

  if not (KeyState[VK_SCROLL] = 0) then
  begin

    isScroll := true;
    dokeybdInput(VK_SCROLL);
  end;

  mylightshow();

  if isNum then
    dokeybdInput(VK_NUMLOCK);

  if isCAP then
    dokeybdInput(VK_CAPITAL);

  if isScroll then
    dokeybdInput(VK_SCROLL);
end;
erst werden alle leds ausgeschaltet dann kommt die lightshow.
Nach dem abspielen werden die alten zustände von num etc wiederhergestellt

ich wollte euch nach weiteren netten (amüsanten) "kompositionen" fragen, vieleicht fällt jemanden ja was ein

ich glaube nicht das das stoff für die codelib ist oder ? wenn doch dann kann den thread ja ein mod verschieben. (danke im voraus)

mfg smallsmoker

edit: licht- und ligth- in lightshow verbessert
 
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

 
Delphi 7 Personal
 
#11
  Alt 10. Okt 2008, 21:45
super coole Idee, ich bedanke mich recht herzlich für den Code, den werde ich in meinem Programm einbauen, immer wenn man gewonnen hat gibts ne Lightshow
  Mit Zitat antworten Zitat
Benutzerbild von smallsmoker
smallsmoker
 
#12
  Alt 10. Okt 2008, 22:01
wenn man nicht will daß die application einfriert sollte man statt sleep Delay einsetzen oder in nen thread packen.

mfg smallsmoker
  Mit Zitat antworten Zitat
Reinhard Kern
 
#13
  Alt 11. Okt 2008, 09:11
Zitat von smallsmoker:

du zitierst da ziemlich genau den delphi-treff :)

Zitat:
Da die LEDs nicht als Lichtorgel ausgelegt wurden, sollten man deren Status nicht zu häufig ändern, da es sonst zu Beschädigungen an der Tastatur kommen kann.
Hallo,

Egal woher das kommt, das ist reiner totaler Blödsinn. LEDs macht es überhaupt nichts aus, hunderte Male pro Sekunde geschaltet zu werden, z.B. in allen Multiplexanzeigen. Da wollte wohl jemand einen anderen verarschen, der nicht die geringste Ahnung hat.

Gruss Reinhard

[edit=fkerber]Defektes Quote repariert, Mfg, fkerber[/edit]
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#14
  Alt 11. Okt 2008, 10:47
Die Leute beziehen sich auch eher auf die Tastaturelektronik. Heutzutage sollte sich da aber so oder so niemand mehr Sorgen machen müssen. Vor allem wenn das, wie hier, Schaltungen im 200ms-Takt sind.
Wenn überhaupt, dann wäre ein Stroboskop (Interval 5ms oder so) schädlich, aber selbst das sollte in dem Ausmaß von jeder halbwegs modernen Tastatur verkraftet werden können.

Ist also nurmehr Panikmache oder ne kleine urban Legend .. hab jedenfalls noch nie von jemandem gehört, bei dem wirklich was kaputt ging
Florian Heft
  Mit Zitat antworten Zitat
11. Okt 2008, 18:54
Dieses Thema wurde von "MrSpock" von "Windows API / MS.NET Framework API" nach "Open-Source" verschoben.
Ist keine Frage.
Andreas L.
 
#16
  Alt 11. Okt 2008, 19:22
Tolle Sache. Jetzt müsste die Tastatur nur 50 Leds haben um eine ordentliche Progressbar hinzubekommen

Zitat von Florian H:
...kleine urban Legend ..
Da hat aber jemand das heutige TV-Programm studiert
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

 
Delphi 6 Personal
 
#17
  Alt 11. Okt 2008, 19:43
Nettes Sielzeug, solange man nichts tippen muss.

( Mal von der "Rollen"-Taste abgesehen die warscheinlich keiner braucht
und deren Function ich schon vor langer, langer langer Zeit vergessen habe. )
Matti
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#18
  Alt 11. Okt 2008, 19:47
Zitat von turboPASCAL:
( Mal von der "Rollen"-Taste abgesehen die warscheinlich keiner braucht
und deren Function ich schon vor langer, langer langer Zeit vergessen habe. )
Man kann den Effekt in Excel begutachten!

Ohne Scroll-Lock verschibst du mit den Cursortasten sie Selektierung,
mit Scroll-Lock verschibstt du nur den Bildschirmausschnitt, die Selektierung bleibt erhalten.
(Umschalten mit Rollen = Die Taste über Pos1 zwischen Druck und Pause)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 11 Alexandria
 
#19
  Alt 11. Okt 2008, 21:50
"Die LEDs der Tastatur sind _NICHT_ als Lichtorgel konzipiert. Ich würde solche Spielereien nicht auf Dauer machen, wenn sie dir lieb sind."
da gab's hier doch vor langem schonmal sowas, nur ich glaub da wurden die LEDs, bzw. der Treiber irgendwie direkt angesprochen, was (vermutlich) zu Problemen fürhen könne wenn man es lange macht .... oder so
(und war es da nicht so, daß die Tastatureingaben nicht beeinflußt wurden?)

Ja und was die Elektronik und LEDs betrifft, da sollte eigentlich nichts so schnell kaputt gehn ... wenn ich z.B. ganz oft und schnell die Scroll-Taste betätige, dann würde die Taste wohl viel eher versagen, also der Rest.
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

 
Delphi 2009 Professional
 
#20
  Alt 11. Okt 2008, 22:45
Zumal es ja noch die HDD-Led gibt, die auch schonmal so schnell an und wieder aus geht, dass man glaubt sie würde einfach mit halber Kraft leuchten
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf