AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ClipBord

Ein Thema von oldmann · begonnen am 27. Nov 2018 · letzter Beitrag vom 30. Nov 2018
Antwort Antwort
Seite 3 von 4     123 4   
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
48 Beiträge
 
#21

AW: ClipBord

  Alt 29. Nov 2018, 11:44
Hallo,
erst mal wieder ein großes Danke für die rege Teilname.
Aber wie ich aus den Hinweisen ersehen kann, ist noch nicht allen klar worum es genau geht.
Wahrscheinlich drücke ich mich zu ungenau aus.
Daher nochmal,
der Anwender öffnet ein Textformular und der Cursor steht im Textfeld.
Er drückt jetzt "Strg+T" und es öffnet sich ein Listfeld mit verschiedenen Texten die der Anwender erstellt hat.
Er klickt eine Textdatei an.
Die Datei wird gelesen und der Text wird in die Zwischenablage von Windows kopiert und das Listfeld schließt sich.
Natürlich könnte der Anwender den Text jetzt per "Shift+Einf" in sein Textdokument einfügen, aber genau das möchte ich vermeiden.
Der Text soll nach drücken von "Strg+T" sofort in das Textdokument eingefügt werden.
Der Ansatz von CodeZwerg scheint ein guter Weg zu sein.
Ich gehe davon aus, dass 's' den Text aus der Zwischenablage übernehmen soll. Leider werden im Textfeld aber nur ein paar Zahlen ausgegeben.
Aber zumindest wird schon mal was ausgegeben.
Gleichzeitig öffnet sich ein Suchfeld, in dem auch einige Zahlen stehen.
Ich denke, dass mit der Lösung dieses Problems auch vielen anderen geholfen wird die ein ähnliches Problem haben.

Gruss Oldmann
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.263 Beiträge
 
Delphi 2010 Professional
 
#22

AW: ClipBord

  Alt 29. Nov 2018, 12:24
Wie wäre es wenn Du uns einfach mal Dein Projekt zeigst?
Das was Du wolltest macht der Schnippsel den ich gab, wie Du den benutzt kann ich nicht beurteilen da ich kein Code sehe.
Du hast ein Talent Dich so auszudrücken das nicht nur ein Result bei rauskommen kann und bei jeder Aussage kommt was anderes hinzu wo noch mehr ??? auftauchen da wieder irgendwas verschleiert bleibt.

Vielleicht hat ja jemand ne stärkere Glaskugel, mir geht der Saft aus
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Langeneichstädt
1.083 Beiträge
 
Delphi 10.3 Rio
 
#23

AW: ClipBord

  Alt 29. Nov 2018, 12:26
Das Clipboard arbeitet immer mit dem aktiven Fenster (hat den Fokus). Dies habe ich schon im Beitrag #18 versucht, deutlich zu machen.
Wenn du also über die Zwischenablage gehen willst, dann musst du dein Zielprogramm zum aktiven Fenster machen. Sonst wird das nichts.
Beiträge über "aktives Fenster" gibt es zuhauf im Forum.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
48 Beiträge
 
#24

AW: ClipBord

  Alt 29. Nov 2018, 12:30
Hallo CodeZwerg,

Hier ist das Listing:

Delphi-Quellcode:
procedure TForm4.FileListBox1Click(Sender: TObject);
var s,d_name:string;
    i:integer;
begin
  If FileListBox1.ItemIndex >= 0 Then
  begin
    Clipboard.clear;
    d_name:=ExtractFileName(filelistbox1.filename);
    Try
    Assignfile(f,lpf+'\Mustertexte\'+d_name);
    Reset(f);
    while not eof (f) do
    begin
      readln(f,s);
      Clipboard.AsText:=Clipboard.AsText+s+#13#10;
    end;
    Closefile(f);
    Except
    Closefile(f);
    end;
    Form4.Close;
  end;
[COLOR="Blue"]// Hier habe ich Deinen Text eingefügt.[/COLOR]
  for i := 1 to Length(s) do
  begin
    keybd_event(Ord(s[i]), 0, 0, 0);
    Sleep(10);
    keybd_event(Ord(s[i]), 0, 0 or KEYEVENTF_KEYUP, 0);
    Sleep(10);
  end;
end;
Gruss Oldmann
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.263 Beiträge
 
Delphi 2010 Professional
 
#25

AW: ClipBord

  Alt 29. Nov 2018, 12:38
Wenn Form4.Close aufgerufen wurde, was hat dann den Focus? Deine ListBox1 ? (so klappt mein Code nicht)
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
48 Beiträge
 
#26

AW: ClipBord

  Alt 29. Nov 2018, 12:44
Hallo KodeZwerg,

Form4 wird ja nicht mehr gebraucht, da der Text ja in der Zwischenablage von Windows ist.

Oldmann
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.263 Beiträge
 
Delphi 2010 Professional
 
#27

AW: ClipBord

  Alt 29. Nov 2018, 12:47
Damit es präziser arbeitet solltest Du per MSDN-Library durchsuchenGetForegroundWindow() Dir das aktive Handle sichern bevor Deine Form/Dein Code sich einmischt und bevor Du meinen Schnippsel aufrufst per MSDN-Library durchsuchenSetForegroundWindow() wieder dahin zurückschalten.

Ps: Die Zwischenablage/Clipboard benötigst Du nicht um ans Ziel zu kommen.
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...

Geändert von KodeZwerg (29. Nov 2018 um 12:51 Uhr)
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
48 Beiträge
 
#28

AW: ClipBord

  Alt 29. Nov 2018, 12:51
Hallo KodeZwerg,

Diesen Befehl kenne ich nicht.
Wie und wo mus ich den in meinem Code einsetzen.

Oldmann
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
2.263 Beiträge
 
Delphi 2010 Professional
 
#29

AW: ClipBord

  Alt 29. Nov 2018, 12:59
GetForegroundWindow() im Hotkey-Event. Gleich als erstest bevor Du Deinen Kram anzeigen lässt.
SetForegroundWindow() vor meinem Schnippsel mit dem Result vom obigen GetForegroundWindow().
Wenn Du da mehr Hilfe brauchst müsste man mehr Code von Dir sehen.
Wenn es nicht gerade ein Geheimprojekt ist, häng es doch einfach mal ran.
Gruß vom KodeZwerg
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
48 Beiträge
 
#30

AW: ClipBord

  Alt 29. Nov 2018, 13:14
Hallo KodeZwerg,

Hier ist mehr Code:

Delphi-Quellcode:
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
var fNameBMP, fNameJPG, verz_name:string;
    pic : TImage;
begin
  if Msg.HotKey = id1 then
  begin
    Form4.Filelistbox1.Mask:=Lpf+'Mustertexte\*.txt';
    Form4.Show;
  end;

  if Msg.HotKey = id2 then
  begin
    Clipboard.clear;
    Clipboard.AsText:=Clipboard.AsText+'ews@eberhard-werner.de';
// Form1.PasteFromClipBoard;
  end;
end;

procedure TForm1.WMTASKBAREVENT(var message: TMessage);
var point : TPoint;
begin
    case message.LParamLo of
         WM_LBUTTONDBLCLK : begin
                                 form2.show;
                            end;
         WM_RBUTTONDOWN : begin
                                 GetCursorPos(point);
                                 popupmenu1.popup(point.x,point.y);
                            end;
    end;
end;


procedure TaskBarAddIcon;
var tnid : TNOTIFYICONDATA ;
begin
    tnid.cbSize := sizeof(TNOTIFYICONDATA); // Größenangabe der Struktur
    tnid.Wnd := Form1.handle; // Handle des Message-Empfängers
    tnid.uID := 1; // ID beliebig
    tnid.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; // siehe Tabelle
    tnid.uCallbackMessage := WM_TASKBAREVENT; // Message# für Form1
    tnid.hIcon := form1.image2.picture.icon.handle; // Iconhandle
    strcopy(tnid.szTip,'Textdateien'); // Tooltiptext
    Shell_NotifyIcon(NIM_ADD, @tnid); // Registrieren ...
end;

procedure TaskBarRemoveIcon;
var tnid : TNOTIFYICONDATA ;
begin
    tnid.cbSize := sizeof(TNOTIFYICONDATA);
    tnid.Wnd := Form1.handle;
    tnid.uID := 1;
    Shell_NotifyIcon(NIM_DELETE, @tnid);
end;


procedure TForm1.FormCreate(Sender: TObject);
const
  MOD_ALT = 1;
  MOD_CONTROL = 2;
  MOD_SHIFT = 4;
  MOD_WIN = 8;
  VK_A = $41;
  VK_R = $52;
  VK_F4 = $73;
  VK_T = $54;
  VK_E = $45;
  VK_0 = $30;
  VK_1 = $31;
  VK_2 = $32;
  VK_3 = $33;
  VK_4 = $34;
  VK_5 = $35;
  VK_6 = $36;
  VK_7 = $37;
  VK_8 = $38;
  VK_9 = $39;
begin
  // Register Hotkey Ctrl + T
  id1 := GlobalAddAtom('Hotkey1');
  RegisterHotKey(Handle, id1, MOD_CONTROL, VK_T);
  ShowWindow(GetWindow(handle,GW_OWNER),SW_HIDE);

  id2 := GlobalAddAtom('Hotkey2');
  RegisterHotKey(Handle, id2, MOD_CONTROL, VK_E);

 end;
oldmann
  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 11:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf