Autor Beitrag
BenBB
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Sa 29.08.09 09:18 
Hallo!

Ja, auch ich bin neu hier. Nicht nur im Foru, sondern auch bei C#. Weiterhin gebe ich zu, dass mein Projekt für den Anfang ein wenig hochgegriffen ist, doch man wächst an den Aufgaben.
Ich möchte gerne eine anpassbare Bildschirmtastatur realisieren, doch mir fehlt der Ansatz.
Problemstellen:
-Wie kann ich ein Prozess identifizieren? Momentan habe ich nur eine Möglichkeit ein Fenster per Titel anzusprechen und mit SendKeys Daten zu schicken.
-Wie schaffe ich es, dass mein Fenster, ähnlich wie bei dem Microsoft OnScreen Keyboard, anderen Fenstern das Überlappen verbietet?

Vielen Dank!

P.S.: Anders als bei anderen SendKeys Fragen möchte ich nicht ein Gamecheat schreiben, sondern mit meinem TabletPC von der aus meiner Sicht nervigen Microsoft Bildschirmtastatur wegkommen...
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mo 31.08.09 07:43 
Hi und willkommen,

wie sieht es mit einem BringToFront und TopMost = true; aus?

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
studiol
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 26.08.10 10:17 
Hallo,
ich arbeite momentan ebenfalls an einer Bildschirmtastatur, welche für einen Touchscreen eingesetzt werden soll. Zum programmieren nutze ich VS2008 Prof.
Meine Tastatur ist immer im Vordergrund (TopMost) und zudem kann sie nicht aktiviert werden. So weit so gut.
Der Rechner auf dem Windows 7 installiert ist (Sprache Englisch) führt das Programm auch einwandfrei aus, wenn ich das aktivieren zulasse und über

SendKeys.Send("+`")

einen Text in eine RichTextBox auf der selben Windows.Form einfüge. -> Ergebnis : ~ so ist es auch gewünscht.
Wenn ich jedoch das aktivieren verhindere und in ein beliebiges Dokument einfüge, dann erhalte ich für den gleichen Aufruf : }

Hat jemand eine Idee woran das liegt?
Vllt noch zum deaktivieren, das mache ich folgendermaßen:

const int WS_EX_NOACTIVATE = 0x08000000;

protected override CreateParams CreateParams //Fenster wird durch anklicken nicht aktiviert
{
get
{
CreateParams param = base.CreateParams;
param.ExStyle |= WS_EX_NOACTIVATE;
return param;
}
}

Das Grundgerüst für die Tastatur stammt übrigens von diesem Link
www.codeproject.com/...hscreenkeyboard.aspx

Hat jemand eine Idee woran es liegt, dass ich die falsche Ausgabe bekomme?
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 27.08.10 12:04 
user profile iconBenBB hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann ich ein Prozess identifizieren? Momentan habe ich nur eine Möglichkeit ein Fenster per Titel anzusprechen und mit SendKeys Daten zu schicken.

Musst du den Prozess überhaupt identifizieren? Es ist auch möglich, hierdas eigene Fenster einfach deaktiviert zu lassen, wenn daraufgeklickt wird[/url], wodurch die SendKeys-Anfragen einfach an das vom Benutzer zuvor ausgewählte Fenster geschickt werden.

user profile iconstudiol hat folgendes geschrieben Zum zitierten Posting springen:
SendKeys.Send("+`")

Ich habe gerade ein bisschen damit gespielt, und herausgefunden, dass es sicherer ist, das tatsächliche Zeichen anzugeben, in deinem Fall also "{~}". Vielleicht legst du dir eine Liste an, in der steht, welche Tastenkombination welches Zeichen hervorruft, und übergibst dieses an SendKeys.Send.
studiol
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 27.08.10 14:42 
Danke für deine Antwort, ja das wäre auch die letzte Möglichkeit. Jedoch müsste ich dann eine große Abfrage machen und ich finde das nicht so schön. aber falls ich keine andere Möglichkeit finde werde ich es wohl so machen müssen. Also falls jemand weiß wie ich diese Fehler verhindern kann bitte melden ;)

ich habe mir inzwischen noch eine andere hübsche virtuelle Tastatur (auf WPF basierend) angeschaut. Dort klappt es auch ohne diese Tabelle mir ist jedoch noch nicht so klar wie genau die Tasten übermittelt werden. Jedenfalls werden dort Keys erstellt mit Konstanten für die jeweiligen Tasten. Wer sich dafür interessiert kann es sich unter wpfkb.codeplex.com/ anschauen.