Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Tastaturdruck simulieren und unter Windows weiter verwenden

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
LostTime



Anmeldungsdatum: 23.04.2005
Beiträge: 13
Wohnort: Hannover

BeitragVerfasst am: 03.06.2007, 12:05    Titel: Tastaturdruck simulieren und unter Windows weiter verwenden Antworten mit Zitat

Moin

Zu aller erst:
[x] Ich habe die Suchfunktion genutzt
[x] Ich habe das FAQ genutzt
[ ] Ich bin mir sicher, alle Möglichkeiten ausprobiert zu haben grinsen

Ich möchte mit einem QB-Programm die Cursor-Tasten simulieren, um z.B. eine PowerPoint-Folie weiter zuschalten.

Dazu hab ich die Tastatur-Simulations-Routine aus dem Monster-FAQ in KOmbination mit den Scancodes für "Links" und "Rechts"ausprobiert - ohne Erfolg.
Bzw. teilweisem Erfolg, es mag sein, dass in dem Programm die die Tastatureingabe simuliert wird, aber ich möchte sie auch unter Windows nutzen können, so dass Windows etwas damit anzufangen weiss.
Ich hatte hier irgendwo gelesen, dass In-den-Keybuffer-Schreiben und Taste-Drücken ein Unterschied besteht, doch irgendwei muss es doch gehen zwinkern

Vielen Dank und schönen Sonntag,
LostTime
_________________
Datensalat enthält Vitamin C++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 03.06.2007, 12:27    Titel: Antworten mit Zitat

Dafür musst du Freebasic verwenden, denn unter QuickBasic kannst du nicht auf den Tastaturpuffer von Windows zugreifen zwinkern
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LostTime



Anmeldungsdatum: 23.04.2005
Beiträge: 13
Wohnort: Hannover

BeitragVerfasst am: 03.06.2007, 12:46    Titel: Antworten mit Zitat

Hm.. eigentlich doof, aber ich probiers mal..
Jetzt muss ich nur noch rausfinden
- Wie ich unter FB mit dem COM-Port umgehe
- Wie ich unter FB auf den Windows-Tastaturpuffer zugreifen kann

wünscht mir Glück zwinkern
_________________
Datensalat enthält Vitamin C++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.06.2007, 12:50    Titel: Antworten mit Zitat

Hallo,

in FreeBasic kannst du den COM-Port mit den gleichen Befehlen (INP/OUT) ansprechen wie in QB. Für das Simulieren des Tastendrucks schau dir mal folgende Seite an: http://www.vbarchiv.net/vbapi/SendMessage.php

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 03.06.2007, 13:06    Titel: Antworten mit Zitat

Ich hatte letztes Jahr für einen Vereinsanlass, wo es darum ging, in PowerPoint Inhalte dynamisch zu erzeugen. Konkret war dies eine Anzeigetafel wie in Fernseh-Ratespielsendungen für die Punkte.

Lösung war die Verwendung der ActiveX-Automatisierungsschnittstelle, wie sie alle Microsoft Office-Produkte bieten mit einem .vbs für den Windows Script Host.

Da Du ins QB-Forum postet, lautet die Lösung sonst, dieses .vbs dynamisch zu erzeugen und mit SHELL aufzurufen.

Mein Fall war letztes Jahr so, dass die Folienpräsentation ganz normal bedient wurde und der Script im Hintergrund jeweils genau definierte Foliennummern abgewartet hat, worauf dann eine spezielle kleine auf InputBox() basierende Bedienoberfläche (Begriffe mussten erraten und aufgedeckt werden, Reihefolge nicht vorausbestimmbar) erschienen ist. Sobald die Raterunde fertig war, liess ich per Script eine Folie weiterschalten und der Script "parkierte" wieder in die Warteschleife bir zur nächsten Raterunde.

Alternativ könnte man auch mit SendKeys() arbeiten.

Script müsste ich allerdings erst wieder auffindbar machen, dann erst könnte ich einen Beispielcode dazu geben.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LostTime



Anmeldungsdatum: 23.04.2005
Beiträge: 13
Wohnort: Hannover

BeitragVerfasst am: 03.06.2007, 13:36    Titel: Antworten mit Zitat

Naja, so kompliziert solls garnicht werden zwinkern

Konkret mein Plan:
Ich hab ne Alte Maus umgebaut, die je nach Tastendruck CTS oder DCD Hi schaltet. Und wenn man eine Taste drückt, soll "auf der Tastatur" => oder <= "gedrückt" werden, um die Folien zu wechseln. Das sollte aber nciht nur in PowerPoint, sondern auch in z.B. Diashows funktionieren zwinkern

Hab jetzt mal etwas mit FB rumgebastelt und den Teil zum COM abfragen übernommen.. aber das funktioniert noch nicht ganz.. eigentlich gar nicht

Code:

cwahl: CLS
PRINT "COM-Port ausw„hlen:"
PRINT "1:", "COM1"
PRINT "2:", "COM2"
PRINT "3:", "COM3"
PRINT "4:", "COM4"
INPUT cport
IF cport = 1 THEN
        ba = &H3F8
END IF
IF cport = 2 THEN
        ba = &H2F8
END IF
IF cport = 3 THEN
        ba = &H3E8
END IF
IF cport = 4 THEN
        ba = &H2E8
END IF

IF (cport < 1) OR (cport > 4) THEN GOTO cwahl

CLS
    OUT (ba + 4), 1
warten:
IF (INP(ba + 6) AND 16) = 16 THEN
    PRINT "CTS: <="
        Do
        Loop until INP(ba + 6) AND 16 = 0
Endif
IF (INP(ba + 6) AND 128) = 128 THEN
    PRINT "DCD: =>"
        Do
        Loop until INP(ba + 6) AND 128 = 0
Endif
goto warten


Sobald ich einen COM-Port gewählt habe, zeigt er nur einmal "CTS: <=" und das wars dann...

Die Tastatur-Simulation hab ich erstmal weggelassen, um die verusch ich mich zu kümmern, wenn das obige läuft

Vielen Dank lächeln zwinkern
_________________
Datensalat enthält Vitamin C++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.06.2007, 13:47    Titel: Antworten mit Zitat

Schreib an den Anfang mal Folgendes und probier es dann noch mal:
Code:
DIM AS INTEGER cport, ba

Du solltest außerdem sicherstellen, dass du mindestens FreeBasic 0.17 und nicht irgendeine veraltete Version von freebasic.de verwendest.
Welche Version du hast, kannst du ermitteln, indem du in der Eingabeaufforderung Folgendes eingibst:
Code:
X:\PfadZuFreeBasic\fbc -version<enter>

_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LostTime



Anmeldungsdatum: 23.04.2005
Beiträge: 13
Wohnort: Hannover

BeitragVerfasst am: 03.06.2007, 13:50    Titel: Antworten mit Zitat

Klappt immer noch nicht verwundert

Laut dem About-Fenster hab ich Version 0.4.4

So langsam gehört das vllt. in das FreeBasic-Forum zwinkern

edit:
Nein ich hab Compiler 0.15 mit dem Kopf durch die Mauer wollen
_________________
Datensalat enthält Vitamin C++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.06.2007, 13:56    Titel: Antworten mit Zitat

Das ist die Version der FBIDE, also des Editors, mit dem du deine Programme tippst. Der Compiler ist wieder was anderes. Da du aber eine veraltete FBIDE (0.4.6 ist das aktuellste und 0.4.4 ist mittlerweile ziemlich überholt) benutzt, wird auch dein eigentlicher Compiler veraltet sein.

Lad dir mal hier den aktuellen Compiler runter: http://prdownloads.sourceforge.net/fbc/FreeBASIC-v0.17b-win32.exe?download

... und hier die neuste FBIDE: http://prdownloads.sourceforge.net/fbide/FBIde_0.4.6.exe?download

Wenn du die beiden Sachen installiert und eingerichtet hast, probier's damit noch mal. Bei FB sind nämlich alte Versionen ganz schön schnell ziemlich überholt. zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LostTime



Anmeldungsdatum: 23.04.2005
Beiträge: 13
Wohnort: Hannover

BeitragVerfasst am: 03.06.2007, 14:06    Titel: Antworten mit Zitat

So, hab jetzt beides installiert, IDE ist auf 0.4.6 und Compiler 0.17, aber es gibt keine Veränderung missbilligen
_________________
Datensalat enthält Vitamin C++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 03.06.2007, 15:07    Titel: Antworten mit Zitat

verwende inpout32.dll, ( www.franksteinberg.de => windows programmiereung, rapidq lässt sich mehr oder minder leicht zu fb übertragen...) die wird genauso gesteuert wie INP und OUT und funktioniert auf allen windowssen ab 98
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LostTime



Anmeldungsdatum: 23.04.2005
Beiträge: 13
Wohnort: Hannover

BeitragVerfasst am: 03.06.2007, 17:49    Titel: Antworten mit Zitat

Öhm.. dadurch wirds auch nicht einfacher..

Ich wollt grad mal wieder Delphi installieren, aber da funktioniert das Update 2 nicht peinlich

Ich gebs auf
_________________
Datensalat enthält Vitamin C++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 12.08.2007, 19:32    Titel: PowerPoint aus QB heraus ansteuern Antworten mit Zitat

Ferienzeit sei Dank, konnte inzwischen ein einfaches Beispiel erstellen, wie man PowerPoint grundsätzlich aus QB heraus ansteuern kann:

http://beilagen.dreael.ch/QB/POWERPNT.BAS

In diesem Beispiel ist der Code ganz einfach gehalten: Jede Folie für 3 Sekunden anzeigen, wofür mit einem kleinen Trick die Anzahl Folien ermittelt wird. Ansonsten sind von der Methodik her überhaupt keine simulierte Tastendrücke notwendig, sondern die Ansteuerung erfolgt professionell über die VBA-Methoden, wie sie auch für Makros verwendet werden.

Der VBS-Teil wird synchron aufgerufen, d.h. das QB-Programm "schläft" solange, bis nach Beendigung der Präsentation ihm die Kontrolle wieder zurückgegeben wird!

Falls QB im Hintergrund aktiv sein sollte, müsste man den VBS-Prozess als Hintergrundtask starten und auf Basis von kleinen Dateien eine primitive Kommunikation entwickeln.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 956
Wohnort: Austria

BeitragVerfasst am: 20.08.2007, 12:27    Titel: Antworten mit Zitat

@HerbertSoftware: Das ist nur der Tastaturpuffer von DOS, der von Windows ist (meinem Wissen nach) davon unabhängig.
Oder irre ich mich da... happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 20.08.2007, 12:57    Titel: Antworten mit Zitat

Mit dieser Methode hat man volle Kontrolle und kann alles machen, was man will, unabhängig vom Betriebssystem zwinkern
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz