[GELÖST] Auf Keyevents reagieren auch ohne Fokus?
Übersicht

CO2ehemals "SirMO"Betreff: [GELÖST] Auf Keyevents reagieren auch ohne Fokus? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe da ein Problemchen: Ich schreibe momentan eine Anwendung, das auf benutzte Hotkeys reagieren soll (Strg + C, Strg + V, etc.). Dieses Programm hat nicht unbedingt den Fokus. Das Problem dabei ist, wenn es den Fokus verliert, reagiert das Programm auch nicht mehr auf die Hotkeys. Die Frage ist jetzt: Kann man das irgendwie machen, dass das Programm auch bei Verlust des Fokuses weiterhin auf Hotkeys reagiert? Wenn ja, wie? Edit: Noch eine kurze Frage, das betrifft aber eher Windows: Wenn ich eine Datei rechtsklicke und dann im Kontextmenü "kopieren" oder "ausschneiden" auswähle, wie kann ich das in BMax erfassen? Geht das überhaupt? Oder gibt es eine Möglichkeit durch "analysieren" des RAMs einen solchen Klick zu ermitteln (weil die Datei dann ja im RAM steht...)? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am Mi, Jan 29, 2014 19:46, insgesamt einmal bearbeitet
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
zu ersterem solltest du dir GetKeyState und GetAsyncKeyState von der Winapi mal anschauen das gibts per pub.Win32 auch in Blitzmax und damit kannst du Systemweit alle Tasten abfragen. Einfach mal das Pub.Win32 Modul und die Msdn befragen. Ungefähr: BlitzMax: [AUSKLAPPEN] Extern "Win32" Gibt dann 1 zurück, wenn die Taste i gedrückt wurde. lg, Count-Doku |
||
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, auf welches Event muss ich dann bei der MaxGUI warten? Wenn ich es mit EVENT_KEYDOWN oder EVENT_KEYHIT probiere, funktioniert es nicht... | ||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
MaxGUI hat damit nichts mehr am Hut - du benutzt die WinAPI um die Tastenabfrage zu machen. Mit den Funktionen die count-doku nannte.
Edit: Du könntest auf ein Timer-Event lauschen, um die Tasten zu prüfen, falls das die Frage beantwortet. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu deiner zweiten Frage: Siehe die Clipboard Operations Dokumentation. Ich habe einen Code ausgegraben, der einen in der Zwischenablage befindlichen Text ausliest; für Dateien müsstest du wahrscheinlich einiges ändern:
BlitzMax: [AUSKLAPPEN] Extern "Win32" Zu beiden Fragen: Ich finde es allgemein beängstigend, wenn ein im Hintergrund laufendes Programm die kopierten Dateien auswertet oder - schlimmer noch - die Tastatur überwacht (die benutze ich z.B. dazu, meine Passwörter einzugeben). Meines Erachtens reicht die Hotkey-Funktion Alt-Tab völlig aus, um schnell auf nicht fokussierte Fenster zu wechseln. ZEVS |
||
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ ZEVS Bedenken:
Stimme dir zwar zu, es gibt aber einige Fälle wo ich es verwende: - Auto AFK Modus für einen Chat - Mediacontroller, also Musikplayer auf anderen Programmen per Hotkey steuern - TaskKiller, ein Programm, welches das aktive Fenster per Hotkey schließt. Somit dürfte jedes Programm, welches windowsweit Tasten abfragen kann ein potentieller Keylogger sein, leider ;( lg, Count-Doku |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
count-doku hat Folgendes geschrieben: Somit dürfte jedes Programm, welches windowsweit Tasten abfragen kann ein potentieller Keylogger sein, leider ;(
Da es unter Windows kein ausgereiftes Berechtigungssystem gibt kann jedes Programm unter Windows windowsweit Tasten abfragen. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zunächst vielen Dank für die bisherigen Antworten!
Ich habe es jetzt soweit hinbekommen mit dem Erkennen der Tastenanschläge (Dank der Funktion von ZEVS ![]() @ ZEVS: Keine Sorge ![]() Ich habe mich auch mal bei http://msdn.microsoft.com/en-u...85%29.aspx schlaugemacht, welche möglichen Formate es für die Funktion GetClipboardData() gibt. Erstaunlicherweise trifft ja keins von den angegeben richtig zu: Das eine ist nur für Bilder, das andere nur für Ton-Dateien und ein drittes ist (so wie ich es verstanden habe) nur dann "aktiv", wenn ein Programm Drag-and-Drop benutzt... Ich frage mich, warum es nicht DAS Format für Dateien gibt? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
CO2 hat Folgendes geschrieben: Oder gibt es eine Möglichkeit durch "analysieren" des RAMs einen solchen Klick zu ermitteln (weil die Datei dann ja im RAM steht...)?
CO2 hat Folgendes geschrieben: Ich habe mich auch mal bei http://msdn.microsoft.com/en-u...85%29.aspx schlaugemacht, welche möglichen Formate es für die Funktion GetClipboardData() gibt. Erstaunlicherweise trifft ja keins von den angegeben richtig zu: Das eine ist nur für Bilder, das andere nur für Ton-Dateien und ein drittes ist (so wie ich es verstanden habe) nur dann "aktiv", wenn ein Programm Drag-and-Drop benutzt... Ich frage mich, warum es nicht DAS Format für Dateien gibt?
Nun, wenn ich das richtig verstanden habe, findest du deswegen nichts, weil Windows bei einem Klick auf Kopieren oder Ausschneiden nicht die ganze Datei in den RAM lädt ![]() Nein, wie ich das jetzt ergoogelt habe, wird ein Datei-Handle ins Clipboard kopiert (ich hatte vermutet, es ist der Pfad). http://stackoverflow.com/quest...-clipboard http://www.autohotkey.com/boar...clipboard/ Der ganze Vorgang beschrieben auf msdn (Dateien kopieren zählt also laut msdn zu Drag'n'Drop) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group