AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Button in anderer Anwendung

Ein Thema von Delphi-Checker · begonnen am 13. Feb 2011 · letzter Beitrag vom 19. Feb 2011
Antwort Antwort
Seite 2 von 2     12   
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Button in anderer Anwendung

  Alt 15. Feb 2011, 15:44
Lustig..
BN_CLICKED kommt erst an wenn der Button losgelassen wird

Kein wunder das dein ergebnis immer 0 ist.

gruss
  Mit Zitat antworten Zitat
Delphi-Checker

Registriert seit: 4. Dez 2007
Ort: Im Osten
18 Beiträge
 
Delphi 10.1 Berlin Starter
 
#12

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 05:46
Habe jetzt 2 Nächte über der Sache gehockt, und bin zu der Erkenntniss gekommen
das WM_Close da schon eine Ahnung hatte.
Das Control ist zwar ein Button, doch ihm fehlen einige Eigenschaften,
so das man es zwar ansprechen kann aber von Ihm keine Informationen über de Status zurück bekommt.
Ich habe im Anhang mal ein Paar Screenshots von Spy++, vieleicht hat ja jemand noch eine Idee
wie man an den Status eines solchen Buttons herankommt.
Miniaturansicht angehängter Grafiken
rufe.jpg   screenshot1.jpg   screenshot2.jpg   screenshot3.jpg  
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#13

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 08:08
Es wäre wichtiger, wenn du uns den Unterschied zwischen Enabled und disabled zeigst.
Ich habe aber die Vermutung, dass das so etwas wie ein SpeedButton ist, der nicht die Windows Version von Enabled/Disabled benutzt, sondern nur jeweils ein anderes Bitmap drüber blendet. Damit kann mann z.B. ungewünschte Effekte unter anderen OS-Versionen vermeiden und das Programm sieht überall gleich aus. Das Programm das ich oben verlinkt habe zeigt das normalerweise zuverlässig an. (Ist das normal, dass sich WinSpy++ aufhängt??).

Vielleicht ist es auch einfacher (QAD) einfach nur das Fenster in den Vordergrund zu holen und dann die Farbe an der Position des Buttons zu merken.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#14

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 09:55
Vill. macht ihr euch das zu schwer und das Programm hat eine Programierer-Schnittstelle.
Dann könnte man an dieser Stelle ansetzen.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#15

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 10:04
turboPASCAL hat Recht:
solange wir nicht wissen, wie das Programm aufgbaut ist, bzw was das für ein Programm ist können wir relativ wenig helfen.

Eine Dll oder so würde das ganze stark vereinfachen

PS:Ist das Programm u.U in einer .Net-Sprache entwickelt?
  Mit Zitat antworten Zitat
Delphi-Checker

Registriert seit: 4. Dez 2007
Ort: Im Osten
18 Beiträge
 
Delphi 10.1 Berlin Starter
 
#16

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 21:24
Ich habe gerade noch einmal mit PropEdit die Anwendung gecheckt,
da wird mir über den Compiler oder die Sprache nichts mitgeteilt.
Ich glaube da weiter zumachen hat wenig Sinn allerdings würde ich gerne die Idee
von WM_CLOSE aufgreifen und über die Farbe im Button den Status zu ermitteln.
Leider habe ich absolut keinen Plan.
Wie ermittle ich die Position des Buttons und wie komme ich an die Farbe?

Gruß Jörg
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#17

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 22:19
Delphi-Quellcode:
var
  hButton :THandle;
  ButtonRect :_Rect;//das ist ein c-Typ //evtl auch nur Rect
  Farbe : TColor;//????
  bit : TBitmap;//TODO: schauen, ob Graphics.TBitmap oder Windows.Bitmap
  can : TCanvas;
begin
  res:=GetWindowRect(hButton, @ButtonRect);//vllt ohne @
  posx := (ButtonRect.Left + ButtonRect.Right) div 2;
  posy := (ButtonRect.Top + ButtonRect.Bottom) div 2;
  can.Handle := GetWindowDC(0);
  try
    bit := TBitmap.Create;
    try
      bit.Width := Screen.DesktopWidth;
      bit.Height:= Screen.DesktopHeight;
      bit.PixelFormat := pfDevice;
      BitBlt(bit.Canvas.Handle,
             0,
             0,
             Pred(Screen.DesktopWidth),
             Pred(Screen.DesktopHeight),
             can.Handle,
             Screen.DesktopLeft,
             Screen.DesktopTop,
             bit.Canvas.CopyMode);
      Farbe:=bit.Canvas.Pixels[posx,posy]//<--geändert
    finally
      bit.Free;
    end;
  finally
    ReleaseDC(0, can.Handle);
  end;
end;
k.A ob das funktioniert. im Zweifelsfall nach jedem API aufruf ein GetLastError.

PS: bei dem Ansatz wirst du Probleme mit mehreren Monitoren kriegen

Geändert von WM_CLOSE (18. Feb 2011 um 07:13 Uhr)
  Mit Zitat antworten Zitat
Delphi-Checker

Registriert seit: 4. Dez 2007
Ort: Im Osten
18 Beiträge
 
Delphi 10.1 Berlin Starter
 
#18

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 22:50
Dank für die schnelle Hilfe. Anwendung läuft nur auf einem Bildschirm,
deshalb könnte diese Variante funktionieren.
Bekomme leider einen Fehler bei: bit.Pixels!
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#19

AW: Button in anderer Anwendung

  Alt 17. Feb 2011, 23:03
das sollte heißen: Bit.Canvas.Pixels[] Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Delphi-Checker

Registriert seit: 4. Dez 2007
Ort: Im Osten
18 Beiträge
 
Delphi 10.1 Berlin Starter
 
#20

AW: Button in anderer Anwendung

  Alt 19. Feb 2011, 01:24
Habe erstmal die Variante mit der Abfrage der Farbe des Buttons gewählt,
funktioniert einwandfrei. Danke für Eure Hilfe!

Gruss Jörg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:59 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