Hallo,
ich brauche für den Verein ein Programm, welches Abkürzungen als vollen Text schreibt.
Also wenn man "d" eintippt, soll das Programm daraus "des" machen, bei "-" "ein" usw.
Mein Programm selber soll im Hintergrund sein, weil das Hauptprogramm in dem geschrieben wird ist Word.
Kann man so etwas unter C# realisieren, denn wie ich bisher festgestellt habe, hat man nicht mehr so einfach Zugriff auf die API (hab davor hobbymäßig Delphi programmiert).
Gruß,
webby
Hallo webby
Mit Word kenne ich mich nicht so gut aus aber es gibt meiner Meinung nach dort doch
eine Liste in der du Abkürzungen deklarieren kannst die dann in ausgeschriebene
Wörter umgewandelt werden.
Mit openOffice geht das nämlich meiner Meinung nach auch.
Um was wirklich Neues zu erschaffen muss man das Rad neu erfinden
Hallo webby,
die von x-sharp genannte Liste von Abkürzungen läuft bei Word - glaube ich - unter dem Namen Autokorrektur.
Anwendungsübergreifend gibt es eine fertige Lösung: GhostTyperXML:
http://www.sc-data.de/ghosttyper/de/index.php3
Wenn du was programmieren willst, geht das über globale Hooks. Die Forumssuche sollte bei 'hook' was passendes zu Tage fördern.
herbivore
PS: Ich habe gerade gesehen, dass GhostTyperXML mittlerweile was kostet. Ich nutze noch eine ältere Freeware-Version.
Am Anfang war das ja mit der Autokorrektur von Word gedacht, nur ist das leider ungünstig, weil Word zum Beispiel bei den Abkürzungen "-" -> "ein" und "-j" -> "einer" Macken macht. Wenn ich dann "-" tippe schreibt er sofort "ein"... Außerdem ist es für mich nervig, wenn ich im "Alltag" was abtippe und dann er alles gleich so ausschreibt, ich brauch das nämlich nur für Wettschreiben.
GhostWriter hab ich damals mal gehabt, leider nie wieder gefunden, eben nur die Shareware...
Weißt du wo es noch die alte (völlig ausreichende) Version gibt?
Gruß,
webby
Habs schon gefunden. Danke an Google 😉
(für die, die es interessiert: mal nach "ghostwriter" und "freeware" suchen 🙂)
Danke allerseits!
Oh, wie man sieht hab ich mich gewaltig vertan, hab nach "GhostWriter" gesucht... 😕
Welche Version hast du? Denn anscheinend war die 1.0er auch schon Shareware... 😦
Leider wäre selbst der neuste GhostTyper nicht das passende Programm:*er ist zu langsam beim Eingeben (er macht so einen Tippeffekt und schreibt jeden Buchstaben "ganz langsam") *eine Abkürzung muss mindestens zwei Zeichen lang sein
Da scheint wirklich nur ein eigenes Programm was zu helfen... 😕
Leider finde ich auch nichts über Hooks im C#-Bereich im Forum.
Hallo webby,
das mit GhostWriter und GhostTyper war mir schon aufgefallen, aber dann habe ich mir die Beschreibung von GhostWriter angesehen und war der Meinung, dass der das auch tut, was du brauchst. Außerdem ist der GhostWriter ja wohl immer noch Freeware - auch für den nicht privaten Gebrauch.
GhostTyper hatte früher (und von Anfang an, glaube ich) eine geteilte Lizenz für privaten (freien) und geschäftlichen (kostenpflichtigen) Gebrauch. Wenn ich das richtig sehe, ist ab Version 3.0 auch der private Gebrauch kostenpflichtig und es gibt nur noch eine freie (zeitbeschänkte?) Testversion.
Die neueste Version mit der alten Lizenz, die ich im Netz noch zum Runterladen gefunden habe, war 2.02a (wobei an vielen Stellen zwar 2.02a steht, der Link aber auf 3.0 geht, also Achtung). Ich selbst habe Version 2.01.
Bei GhostTyper gab (und vermutlich gibt es) zwei Modi für das Einfügen des Langtextes: Per simulierter Tastatureingabe (langsam, aber man kann nicht nur Text eingeben, sondern auch z.B. Menü-Shortcuts verwenden) oder per Zwischenablage (schnell, aber nur für Texteingabe und die Zwischenablage wird überschrieben). Mit dem zweiten Modus sollte dein Geschwindigkeitsproblem zu lösen sein.
Das ist den mindestens zwei Zeichen scheint mir auf den ersten Blick eine sinnvolle Beschränkung.
Wenn du aber wirklich selbst programmieren willst, musst du Win32-Hooks verwenden. Da sollte sich aber auch im Netz massig zu finden lassen. Ich habe selber schon mal - allerdings unter OS/2 - mit Keyboard-Hooks programmiert und könnte dir - wenn ich nächste Woche wieder Zugriff auf den Code habe - auf Anforderung ein paar Zeilen C++ posten.
HTH
herbivore
Mh, selbst das mit der Zwischenablage bringt nicht viel, das sind ja wieder mehr Anschläge und sogar mehr als das eigentliche Wort hätte... 😕
OS/2 machen wir erst nächtes Jahr in der Schule... 🙂
Aber C++ hilft mir überhaupt nichts, weil ich so richtig nur Delphi (nicht .NET), PHP und C# kann... Aber das wollte ich in C# realisieren...
Inzwischen hab ich was gefunden, wie man Hooks realisiert, doch hab ich jetzt gleich die nächste Frage: Wie schicke ich einen Tastendruck?
Gruß,
webby
Hallo webby,
den Einwand bezüglich der Zwischenablage verstehe ich nicht. Es werden in diesem Modus ja eben keine Anschläge geschickt, sondern die Zwischenablage per API genutzt; das geht verzögerungsfrei.
Den Einwand mit OS/2 und C++ verstehe ich ebenfalls nicht, weil es hier ja um den Aufruf von Win32-APIs geht und die sind in fast jeder Programmiersprache (und zwischen OS/2 und Windows) fast gleich bzw. zumindest leicht übersetzbar. Aber wenn du schon eine Lösung gefunden hast, gut.
Das Thema 'Tastendruck schicken' wurde hier (für den Fall Ctrl-Alt-Entf) besprochen: p/Invoke SendInput
HTH
herbivore
Zwischenablage: OK, dann hab ich das falsch verstanden...
API: Unter C# kann man nicht mehr so ohne weiteres auf die API zugreifen, soweit ich weiß...
Hallo webby,
doch, man kann in C# mit DllImport auf Win32 durchgreifen. Ob das "ohne weiteres" geht, mag jeder selbst beurteilen. Solange die benötigte Funktion nur Integer-Werte oder Strings als Parameter benötigt, ist es m.E. wirklich ziemlich einfach. Wenn Strukturen oder Win32-spezifische Datentypen ins Spiel kommen, wird es tatsächlich etwas aufwändiger. Die Forumssuche nach DllImport dürfte einiges zu Tage fördern.
HTH
herbivore
Mh gut in meinem Fall geht es nicht anders, aber man sollte doch bedenken, dass .NET plattformunabhängig sein soll!!!
Und das wird es natürlich nach zig DLLimports nicht.