Tastendruck simulieren

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

m a j o r

Betreff: Tastendruck simulieren

BeitragSa, Jul 31, 2004 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Gibt es eine Funktion oder Userlib-Funktion mit der ich einen Tastendruck eingeben kann, der dann von einem anderen programm(z.b. spiel) abgearbeitet wird?
Ich versüche nämlich eine simple Sprachsteuerung mit Hilfe der Microsoft Speech Engine(oder so ähnlich) zu machen. Spracheingabe funktioniert bereits (fast) perfekt Smile Allerdings muss ich nun z.b. den Sprachbefehl "Right" auf das Spiel umleiten. Das ginge also am Besten in dem mein Programm einen Tastendruck simuliert.
Ach ja: Kennt einer eine kostenlose Erweiterung für die Microsoft Speech Engine in Deutsch?

Hubsi

BeitragSa, Jul 31, 2004 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist daran so schwer?

Code: [AUSKLAPPEN]
keyright=KeyDown(205) Or speechengine()
If keyright Then bla
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

m a j o r

BeitragSa, Jul 31, 2004 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mich wohl nicht so verständlich ausgedrückt... Shocked
Ich sage "Right" und Blitzbasic lädt den Scandcode xxx in den Buffer (oder so;) und z.b. in Counterstrike bewegt sich die Spielfigur nach rechts.
Also eine Programmübergreifende Aktion.
Verstanden?
 

Mansoor

BeitragSa, Jul 31, 2004 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
AHA, du willst z.b.: per Headset etwas reinstrechen und das Programm soll sich dadürch DInge tun z.b.:

Du sagst "Right" und die Spielfigur bewegt sich nach Rechts!
User posted image

Hubsi

BeitragSa, Jul 31, 2004 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahso! Aber viele Spiele werden doch mit der KeyDown()-Variante arbeiten? Ist ja lästig ständig Right-Right-Right-Right-Right... ins Mikro brüllen zu müssen Very Happy Oder arbeitet das Speech-System mit einer ganz anderen Methode?
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Mansoor

BeitragSa, Jul 31, 2004 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hubsi hat Folgendes geschrieben:
Ahso! Aber viele Spiele werden doch mit der KeyDown()-Variante arbeiten? Ist ja lästig ständig Right-Right-Right-Right-Right... ins Mikro brüllen zu müssen Very Happy Oder arbeitet das Speech-System mit einer ganz anderen Methode?


Naja für Blinde Menschen ist das ein Spiel! An sowas arbeite ich auch, aber ohne das man in Mircofon etwas sagen soll, sondern die Software sprechen soll! Aber was ich mich frage, wie soll sowas möglich sein mit BB? In Microfon zusprechen und dann die Töne in Befehle zuverarbeiten? Jedenfall geht sowas mit C++ und Java, aber BB naja!
User posted image
 

m a j o r

BeitragSa, Jul 31, 2004 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
@Hubsi
Ne, das Spiel heißt Clonk. Wen man einmal Rechts drückt bewegt der sich die ganze Zeit nach rechts.

@Mansoor
Hab ich letztens in nem Forum bei Blitzbasic.com gefunden.
http://www.blitzbasic.com/code...p?code=951
Mithilfe der Speech Engine von Microsoft und einer Userlib kann man die Spracherkennung zumindest auf English SEHR einfach machen:

VoiceInit()
VoiceSay("Hello!")
VoiceshutDown()

@All
Kennt denn nun jemand ne Funktion mit der ich nen Tastendruck simulieren kann?

Abrexxes

BeitragSa, Jul 31, 2004 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

rechts=0;Variable

;Hauptschleife
If KeyDown(205)=1 or rechts=1 then Rechtscommando



;unterprogramm

.Rechtscommando

blabalablaabalba

rechts=0
Return
 

m a j o r

BeitragSa, Jul 31, 2004 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
@Linux
Lese bitte 2. Kommentar von mir

Abrexxes

BeitragSa, Jul 31, 2004 20:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür must du Zugriff auf die Speicheradresse haben in der die aktuelle gedrückte Taste abgelegt ist,mit BB geht das so nicht. Hier müste eine DLL ran (Wie du schon sagtest C++).

cu Linux
 

m a j o r

BeitragSa, Jul 31, 2004 20:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Deshalb ja meine Frage:
Gibt es eine Userlib die das erledigt?
 

m a j o r

BeitragSo, Aug 01, 2004 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe eine Userlib gefunden, die die Funktionen der User32.dll verwendet. Dabei ist mir folgendes aufgefallen:
Code: [AUSKLAPPEN]

.lib "user32.dll"

api_SendMessage% (hwnd%, wMsg%, wParam%, lParam*) : "SendMessageA"

api_GetActiveWindow% () : "GetActiveWindow"



Nun habe ich versucht, api_SendMessage (api_GetActiveWindow(),0, 35, 0) auszuführen, aber es gibt keine Reaktion. Hat einer ne Ahnung wie ich das benutzen kann?
http://msdn.microsoft.com/libr...essage.asp

Vertex

BeitragSo, Aug 01, 2004 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
SetKeyboardState oder keybd_event
mfg olli
vertex.dreamfall.at | GitHub
 

m a j o r

BeitragSo, Aug 01, 2004 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke das funktioniert!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group