AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi etwas in nem fremden Fenster anklicken
Thema durchsuchen
Ansicht
Themen-Optionen

etwas in nem fremden Fenster anklicken

Ein Thema von tabbi · begonnen am 28. Sep 2007 · letzter Beitrag vom 28. Sep 2007
Antwort Antwort
tabbi

Registriert seit: 28. Sep 2007
9 Beiträge
 
#1

etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 19:34
Hallo,

kann mir evtl jemand helfen ?

Ich möchte von meinem Programm aus ein fremdes Element (z.B. Button oder Kontrolkästchen) in einem anderen Programm anklicken.
Kann mir da jemand evtl mit einem code snippet helfen ? Ich hab schonmal gesucht und den Code von Lucky gefunden, bin mir aber nicht sicher wie ich das auf meine Sache anzuwenden habe, da dies ja für messageboxen da ist. An Delphi hab ich nur: Delphi für Win32 (2007)

Ich bedanke mich für jede Hilfe.

mfg
tabbi
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 19:51
na klar, du musst nur das handle das Buttons rausfinden und ihm eine botschaft schicken... dazu findest du hier im forum genügend...
such mal nach Hier im Forum suchenFindWindow und Hier im Forum suchensendmessage

edit:
schau dir mal das beispiel an
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Carlo91

Registriert seit: 3. Jun 2006
Ort: Bremen
107 Beiträge
 
Delphi 2006 Architect
 
#3

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 19:54
Hi,
ich hab glaub ich was für dich...

Delphi-Quellcode:
var
  hBtnWnd: HWND;
begin
  hBtnWnd :=FindWindow('TForm1'{klassenname},'Form1'{Fenster caption}); //in hBtnWnd wird hier das Handle des fensters auf dem der button ist gespeichert...
  hBtnWnd :=FindWindowEx(hBtnWnd, 0, 'TButton'{Klassenname}, 'Button1'{Caption der klasse(TButton)}); //in hBtnWnd wird hier das Handle des buttons gespeichert...
  if hBtnWnd <> 0 then // hier wird überprüft ob das handle nicht 0 ist...
  begin
    SendMessage(hBtnWnd, BM_CLICK, 0, 0); // die message für einen buttonklick wird gesendet...
  end;
end;
viel spaß damit!

P.S. ich hoffe die codekommentare sind zuverstehn da ich normalerweise meinen code nicht kommentiere

MfG Carlo
Thorben
  Mit Zitat antworten Zitat
tabbi

Registriert seit: 28. Sep 2007
9 Beiträge
 
#4

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 20:02
hi, danke.

Ich bin jetzt erstmal dabei mittels WinSPY das Handle etc. zu finden, da gibts nur ein Problem.

In dem Programm, in dem ich etwas anklicken will ist das wie folgt gelöst:

Das programm hat links sone Outlook Leiste, wo dann wie bei Outlook untereinander sone art Textlinks sind.

Jedoch finde ich nur das Handle von der OutlookLeiste, nicht aber von dem einzelnen Textlink.

Wie kann ich das lösen ?

mfg
tabbi
  Mit Zitat antworten Zitat
Carlo91

Registriert seit: 3. Jun 2006
Ort: Bremen
107 Beiträge
 
Delphi 2006 Architect
 
#5

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 20:06
das ist eine gute frage... ich GLAUBE selbst wenn du das handle hast würden die nicht auf SendMessage reagieren!
du könntest aber die position des Textlinks herausfinden und dann an der stelle einen mausklick simulieren.

MfG Carlo
Thorben
  Mit Zitat antworten Zitat
tabbi

Registriert seit: 28. Sep 2007
9 Beiträge
 
#6

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 20:13
hi,

ok, das wäre dann wohl möglich.
Am besten verschiebe ich das Fenster aber vorher nach top,left 0,0 da sich ja sonst die koordinaten ändern oder ?

eine andere Frage wäre noch. Wenn ich eine ComboBox habe, wie kann ich da einen Eintrag wechseln ?
  Mit Zitat antworten Zitat
Carlo91

Registriert seit: 3. Jun 2006
Ort: Bremen
107 Beiträge
 
Delphi 2006 Architect
 
#7

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 20:15
falls du eine combobox aus einem anderen programm meinst würde ich sagen selecten(anklicken die combobox) und dann mit pfeil tasten nach oben/unten geht vileicht aber auch anders musst mal die SuFu benutzen...

MfG Carlo
Thorben
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#8

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 20:45
Hallo,

nur zur Info: Nur von TWinControl abgeleitete Komponenten besitzen ein Handle!

Dazu gehören bspw. TEdit, TPanel, TButton, TCheckBox und auch TJvOutlookBar (ein OutlookBar-Derivat der Jedis).
Dazu gehören aber nicht TLabel, TImage und auch nicht TJvOutlookBarPage, welches die einzelnen Seiten einer TJvOutlookBar darstellt.
  Mit Zitat antworten Zitat
tabbi

Registriert seit: 28. Sep 2007
9 Beiträge
 
#9

Re: etwas in nem fremden Fenster anklicken

  Alt 28. Sep 2007, 22:11
ok danke.

ich habs jetzt halt immer mit mouse_event(...) gelöst.
  Mit Zitat antworten Zitat
Antwort Antwort


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:11 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