![]() |
away-Programm
Hi,
der Titel is vielleicht nen bissl doof, aber ich möchte nen Programm schreiben, dass wenn ich es gestartet habe alle 5 Minuten "Bin weg" oder so in den Chat schreibt. Is halt gedacht um den anderen mitzuteilen, dass ich kurz weg bin. Der Chat ist also im IE geöffnet, und dass eingabe-feld des Chats sollte dann alle paar minuten mit "Bin weg" gefüllt werden, und gesendet werden. Am einfachsten wäre es glaub ich ne tastatureingabe zu simulieren, die alle paar minuten was in das aktuell ausgewählte Feld schreibt. Danke für jede Hilfe! |
Re: away-Programm
hi,
mach es doch mit dem Timer.
Delphi-Quellcode:
Chat ist ein MemoFeld und der Timer ist auf 5min eingestellt (Inteval).
Chat.lines.add('Bin weg');
-homer- ps.: Oder willst du das so machen, dass der Text nur geschrieben wird, wenn du seit 5min nichts mehr an dem PC, oder deinem Chat getan hast? |
Re: away-Programm
Ähm du solltest mal richtig lesen Homer!
Er will das wenn er chattet im IE, also nicht selber geproggter Chat, das dort reingeschrieben das er weg ist! |
Re: away-Programm
|
Re: away-Programm
Die Suche half mir nich weiter, da die Themen dort auf selbstgeschriebene Browser bezogen sind.
Von mir aus schreib ich auch einen selber, aber das Problem ist ja, dass sich das Feld, dass ausgefüllt werden soll auf ner Homepage befindet. somit kann ich das ja nicht direckt ansteuern. Kann man nicht eine Eingabe auf der Tastatur simulieren, die etwas in das ausgewählte Feld eingibt??? |
Re: away-Programm
Hi!
Ich glaube, die Schlüsselwörter waren etwas unglücklich. Aber schau mal hier: ![]() Ciao fkerber |
Re: away-Programm
hi,
schuldigung, muss mal lesen lernen :mrgreen: . -homer- ps.: Was heißt denn IE? |
Re: away-Programm
Hi!
Zitat:
Ciao fkerber |
Re: away-Programm
Zitat:
Wusstest du das echt nicht? |
Re: away-Programm
hi,
nice direkt zwei, die mir geantwortet haben. Sorry, nein ich wusste das echt nicht. Gehört das etwa zur Allgemeinbildung? @neuni: Ich würde sagen, dass das nicht so ohne weiteres geht, da wenn du das zum Beispiel mit onKeyDown realisieren möchtest, dann musst du ja wissen, wie der das TextFeld heißt (in das du schrieben möchtest). -homer- |
Re: away-Programm
Kmisch, wenn man das nich weiß :roll:
Egal, der Link zu dem Code, hat mir nich gerade geholfen, da ich 'n ziemlicher newbie bin und nich genau weiß wie ich das nu umsetzen soll. :gruebel: Wär nett wenn mir das mal einer etwas genauer erklären könnte, da halt noch nich so viel erfahrung mit delphi hab :wall: . Also Sorry falls ichs mal wieder etwas genauer will... |
Re: away-Programm
Du könntest auch dein Programm im Hintergrund laufen lassen und das drücken der Dasten, also für "Bin weg" + Enter-Taste simulieren:
![]() |
Re: away-Programm
@ homer: Stimmt, und das is ja nen Java-Applett wo der chat drinne is... :cry:
Aber gibts nich ne möglichkeit dass der das da eingibt, wo der courser gerade is??? also dieses blickende Teil im Edit? |
Re: away-Programm
Schau Dir mein Post an ... das ist recht einfach bei den Schweizern beschrieben und funzt 100 pro. Auch bei Java Applet!
|
Re: away-Programm
Der is echt gut der Schweizer, aber ich kann delphi noch nicht sehr gut, sodass ich das nich alles verstehe :wall: :wall: :wall: ...
Kann mir vielleicht jemand helfen, oder nen Beispiel Proggi schicken, weil bei mir kommen da ständig fehler und brauch das ganze dringend! :cry: Bitte helft mir! :| |
Re: away-Programm
Hi!
Dann sag uns deine Fehler, dann büglen wir das schon aus :mrgreen: Ciao fkerber |
Re: away-Programm
Das nich so das Problem, vielmehr, dass da irgendwelche Komponenten nicht gefunden werden & co.
Muss ich da noch Komponenten einfügen ins formular?? |
Re: away-Programm
HI!
Was kommen denn für Fehlermeldungen? So lässt sich nur sehr schwer etwas sagen Ciao fkerber |
Re: away-Programm
Ich empfehle für das simulieren von Tastendrücken die Funktion SendKeys aus den SRUtils, eine Unit von
![]()
Delphi-Quellcode:
sendkeys('Bin weg!');
|
Re: away-Programm
Das is mein Code, der voll mit Fehlern ist :cry: :
Delphi-Quellcode:
@ Kinimod8: "SRUtils" was ist das denn, bzw. wo finde ich das auf der Homepage, die du angegeben hast?
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) Button1: TButton; TShiftKeyInfo = record shift: Byte; vkey: Byte; byteset = set of 0..7; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; 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 Form1: TForm1; flag: DWORD; bShift: ByteSet absolute shift; i: Integer; implementation {$R *.dfm} 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; { For } 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; procedure TForm1.FormCreate(Sender: TObject); begin end; procedure TForm1.Button1Click(Sender: TObject); begin PostKeyEx32(Ord('D'), [], False); end; end. |
Re: away-Programm
Eintragung der Procedure zum versenden der simulierten Tasten:
Delphi-Quellcode:
Procedure für das versenden ! (unter implementation einfügen)type TForm1 = class(TForm) private { Private-Deklarationen } procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean); public { Public-Deklarationen } end;
Delphi-Quellcode:
Beispiel zum versenden:
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; { For } 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;
Delphi-Quellcode:
Ist das von Swiss ich hoffe so hilft es dir mehr...
procedure TForm1.Button1Click(Sender: TObject);
begin // Simuliert die Linke Windows taste PostKeyEx32(VK_LWIN, [], False); // Simuliert den Buchstaben D PostKeyEx32(Ord('D'), [], False); // Simuliert die Tastenkombination Strg-Alt-C PostKeyEx32(Ord('C'), [ssctrl, ssAlt], False); end; |
Re: away-Programm
Uuups..einmal zu viel
[gelöscht] |
Re: away-Programm
|
Re: away-Programm
@ hOnkibOnk: Bei mir kommen diese Fehler wenn ich das Programm strten will:
[Fehler] Unit1.pas(15): Ungenügende Forward- oder External-Deklaration: 'TForm1.PostKeyEx32' [Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden Mein Code:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean); public { Public-Deklarationen } end; var Form1: TForm1; implementation 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; { For } 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; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin PostKeyEx32(Ord('D'), [], False); end; end. |
Re: away-Programm
Wie wäre es mit meiner Lösung???
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, SRUtils, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin SendKeys('Bin weg!'); end; end. |
Re: away-Programm
is ja hammer, das geht !!! :hello: :hello: :hello: :hello: :hello: :hello:
Und wie mache ich die Eingabe Enter, also zum abschicken? Danke @ Kinimod8 |
Re: away-Programm
HI!
Probier mal hinter den String noch zu schreiben:
Delphi-Quellcode:
Ciao fkerber
+#13#10
|
Re: away-Programm
Cool, geht vielen Dank...nun is mein Proggi fast fertig!!! :dancer: Juhuuuuuu :spin2: *freu*
Danke nochmal euch allen |
Re: away-Programm
Zitat:
|
Re: away-Programm
SendKeys(#13);
Damitt würdest Du das drücken der Taste Enter senden... |
Re: away-Programm
Hi, wie kann ich die SOUtils.pas dauerhaft in meine Units integrieren?
Sodass sie bei jedem neuen Programm gleich drinstehen :) |
Re: away-Programm
Hi!
Ich denke, dass ist einen neuen Thread wert, wie man sowas fest integriert. Ist ja nicht nur auf die eine Unit zu beziehen :wink: Ciao fkerber |
Re: away-Programm
Moinmoin,
wie kann ich mit Sendkeys einen Backslash senden? Bei mir wird aus \ in der Übertragung immer ß :twisted: Und kann ich auch Befehle wie Strg + A oder Entf senden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz