tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
626
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von ronaldo84
    ronaldo84 ronaldo84 ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Berlin / Rudow
    Beiträge
    453
    Hallo.

    Ich möchte gerne ein Makro schreiben, welches die Tastatureingaben überprüft und je nach Tasten ein Formular öffnet. Ich habe aber kein aktives Formular. Es soll so laufen wie bei F1 das dann die Hilfe kommt. Geht das überhaupt? Wie ich es in einem Formular über die Eigenschaften Key_down und Key_up mache weiß ich. Aber ich habe ja kein wirkliches event. Die Tastatur müsste dauerhaft geprüft werden. Geht das?

    Danke
     
    Bitte alle erledigten Themen abschliessen.

  2. #2
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Versuch es über die Windows HotKeys.
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  3. #3
    Avatar von ronaldo84
    ronaldo84 ronaldo84 ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Berlin / Rudow
    Beiträge
    453
    Und wie kann ich das machen? Hast du da mal ein Tutorial? Oder einen Link den ich mir durchlesen könnte?
     
    Bitte alle erledigten Themen abschliessen.

  4. #4
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Die (meines Wissens nach) einfachste und beste Variante ist die Nutzung der GetAsyncKeyState-API, damit kannst du ohne Form alle Tasten abfragen (auch die, die du über die Form-Events nicht kriegst).


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  5. #5
    Avatar von ronaldo84
    ronaldo84 ronaldo84 ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Berlin / Rudow
    Beiträge
    453
    Sorry das ich das Thema nochmal eröffne. Wenn ich es mit der obern genannten API mache brauche ich ja ein Zeitintervall indem die Tastatur geprüft werden soll. Da das dauerhaft von passieren soll habe ich mittels
    Code :
    1
    2
    3
    
    do while timer < timer +1 
    ..
    loop
    Eine endloschleife gebaut. So ist das aber nicht machbar. Wenn ich z.B. das Makro starte und will dann wieder in eine andere Anwendung wechseln steigt die Systemauslastung auf nahezu 100%. Weiß jemand eine bessere Methode?
    Habe meine Fragestellung nochmal überlegt. Das sind meine Vorraussetzungen:
    WIr haben eine DB mit weit über 50 verschiedenen Formularen. Das Ziel ist es mittels Tastendruck bestimmte Formuale zu öffnen. Das soll funktionieren, egal welches Formular offen ist. Das würed in eigentlich heíßen, dass ich bei jedem Formular das Ereignis On Keypressed ändern müsste. Das wäre aber zuviel Arbeit. Kann mir da jemand weiterhelfen?
    Danke
     
    Bitte alle erledigten Themen abschliessen.

  6. #6
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Ich hab erst jetzt gelesen, dass du Makro geschrieben hast, da hätte ich eine andere Lösung für dich.

    Du kannst in Office ganz einfach einer Tastenkombination ein Makro zuweisen, einfach unter Extras - Anpassen auf den Reiter Befehle gene und den Button Tastatur unten anklicken. Jetzt im neuen Fenster nur noch dein Dokument und das zu startende Makro wählen. Dann klickst du in das Textfeld unter Neue Tastenkombination und drückst die gewünschten Tasten. Office sagt die auch gleich, ob die Kombi noch frei ist oder du eine existierende überschreiben würdest.

    Das ganze ließe sich auch als Makro automatisieren, der Makrorecorder hat folgendes ausgespuckt:
    Code :
    1
    2
    3
    4
    5
    
    'Hier wird dem aktiven Dokument die Tastenkombi <Strg>+<Alt>+<F12> zugewiesen
    'und auf Drock der Kombination das Makro "Makroname" im aktiven Dokument ausgeführt.
     CustomizationContext = ActiveDocument
     KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyF12, wdKeyControl, wdKeyAlt), _
      KeyCategory:=wdKeyCategoryMacro, Command:="Makroname"

    Das ist die Office-Lösung. Wenn du in VB (also der Standalone-Anwendung) programmierst, schreib in deine Schleife einfach den Befehl DoEvents rein. Dann kann Windows zwischenzeitlich alle Systemtasks und anderen Programme aufsühren, ohne dass dein Programm die CPU blockiert.


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  7. #7
    Avatar von ronaldo84
    ronaldo84 ronaldo84 ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Ort
    Berlin / Rudow
    Beiträge
    453
    Wow. Danke das bringst.
     
    Bitte alle erledigten Themen abschliessen.

Ähnliche Themen

  1. Schreiben ohne Form?
    Von dr_pepper im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 12.02.09, 16:44
  2. Überprüfung von Handynummern ohne Anruf
    Von MS47475 im Forum Internetkommunikation
    Antworten: 5
    Letzter Beitrag: 31.07.08, 09:58
  3. Start eines Jobs ohne aktive Session via ssh
    Von usagi67 im Forum Linux & Unix
    Antworten: 5
    Letzter Beitrag: 19.08.06, 19:09
  4. Antworten: 2
    Letzter Beitrag: 19.07.05, 14:03
  5. Antworten: 1
    Letzter Beitrag: 26.05.04, 18:40