AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Systemweite Textausgabe

Ein Thema von CrashMan · begonnen am 15. Sep 2003 · letzter Beitrag vom 19. Sep 2003
Antwort Antwort
Benutzerbild von CrashMan
CrashMan

Registriert seit: 1. Aug 2003
Ort: //127.0.0.1/
65 Beiträge
 
Delphi 6 Personal
 
#1

Systemweite Textausgabe

  Alt 15. Sep 2003, 20:50
Ich hab eine Routine gefunden:
Delphi-Quellcode:
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
type
  TShiftKeyInfo = record
    shift: Byte;
    vkey: Byte;
  end;
  byteset = set of 0..7;
const
  shiftkeys: array [1..3] of TShiftKeyInfo =
    ((shift: Ord(ssCtrl); vkey: VK_CONTROL),
    (shift: Ord(ssShift); vkey: VK_SHIFT),
    (shift: Ord(ssAlt); vkey: VK_MENU));
var
  flag: DWORD;
  bShift: ByteSet absolute shift;
  i: Integer;
begin
  for i := 1 to 3 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
  end;
  if specialkey then
    flag := KEYEVENTF_EXTENDEDKEY
  else
    flag := 0;
  keybd_event(key, MapvirtualKey(key, 0), flag, 0);
  flag := flag or KEYEVENTF_KEYUP;
  keybd_event(key, MapvirtualKey(key, 0), flag, 0);

  for i := 3 downto 1 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0),
        KEYEVENTF_KEYUP, 0);
  end;
end;
Quelle: http://www.delphi-forum.de/

Aufgerufen wird die mit
Delphi-Quellcode:
PostKeyEx32(ord('A'), [ssShift], false) {Großschreibung}
PostKeyEx32(ord('A'), [], false); {Kleinschreibung}
Soweit sogut, aber meine Probleme:
1) Wie bekomm ich ein AnsiChar (string geht ja net bei ord()) in Uppercase?
2) Wie kann ich zeichen wie z.B. # § % ( & < > und so schreiben?
3) Oder kennt jemand eine einfachere/ besser Routine?

CrashMan
  Mit Zitat antworten Zitat
Benutzerbild von CrashMan
CrashMan

Registriert seit: 1. Aug 2003
Ort: //127.0.0.1/
65 Beiträge
 
Delphi 6 Personal
 
#2

Re: Systemweite Textausgabe

  Alt 16. Sep 2003, 14:11
*wiedernachobenholt*
Keiner weiß antwort?

Problem 1 ist schon gelöst ^^

CrashMan
  Mit Zitat antworten Zitat
Benutzerbild von CrashMan
CrashMan

Registriert seit: 1. Aug 2003
Ort: //127.0.0.1/
65 Beiträge
 
Delphi 6 Personal
 
#3

Re: Systemweite Textausgabe

  Alt 16. Sep 2003, 15:35
Ok soweit sogut.

Groß-Kleinschreibung und so funktioniert alles.
Nur ein Problem hab ich immernoch:
Ich kann keine Zeichen ausgeben...

Falls ihr net wisst was ich meine kann ich nachher schon eine Version hochladen...

CrashMan
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Systemweite Textausgabe

  Alt 16. Sep 2003, 19:22
Hallo CrashMan,
entschuldige, dass ich dir leider auch nicht weiterhelfen kann, ich wollte nur mal fragen, was der Quelltext, den du da oben gepostet hast bewirkt. "Systemweite Textausgabe", soll das heißen, dass ich egal wo ich mich gerade befinde Text ausgegeben bekomme? Was ich nämlich mal programmieren wollte war nen Programm, welches, während ich mich in einem Vollbildmodus befinde, Änderungen in meinem Winamp (Liedtitel) über der derzeitigen Anwendung ausgibt ohne dass die Anwendung minimiert oder inaktiv wird. Wenn das sowas ist könntest du mir da vielleicht mal grad ein paar erklärende worte zum Qtext geben, damit ich das umsetzen kann.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von CrashMan
CrashMan

Registriert seit: 1. Aug 2003
Ort: //127.0.0.1/
65 Beiträge
 
Delphi 6 Personal
 
#5

Re: Systemweite Textausgabe

  Alt 16. Sep 2003, 19:50
Also bei dem QT mach ich das folgend:
Ich bin irgentwo, z.B. im NotePad oder sonstwo. Dort drück ich F5 und der schreibt an die Position wo ich gerade bin das Wort, welches ich auf F5 gespeichert hab. Also z.B. "Hallo, ich bin der CrashMan"

Falls du WinAmp steuern möchtest hab ich auch noch eine Idee:
1) Für CS und HL gibts/gabs HLamp
2) Allgemein geh mal in den Thread auf DelphiForum.de den ich oben gepostet habe. Dort ist ein Link zu Torry. Auf der Seite lädst du dir den HotKeyManager.
Danach kannst du im OnCreate reinschreiben
HKM.AddHotKey(116); HKM.AddHotKey(117); HKM.AddHotKey(118); HKM.AddHotKey(119); HKM.AddHotKey(120); HKM.AddHotKey(121); HKM.AddHotKey(122); Das addet F5-F11 zum HotKeymanager (Name HKM).
Dann bei dem HKM gehst du auf events. dort kannst du dann per
If HotKey = 116 then Den HotKey abfragen und mit der WinAmpApi oder so Winamp steuern (Boardsuche)

CrashMan
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Systemweite Textausgabe

  Alt 19. Sep 2003, 16:26
Hallo Crashman, leider hast du mich nicht ganz verstanden. Was ich brauchte war einfach ne Textausgabe, die sich VOR alles andere schiebt, ohne dass ich irgendwas klicke.
Wie ich Winamp steuere weiss ich schon, aber trotzdem danke für die Erklärung :]
es ist halt nur das problem der ausgabe, halt wie ich text vor ne d3d anwendung z.b. schmeisse, oder ne ogl anwendung.
Naja, vielleicht weiss ja noch wer anders weiter.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz