Odkrywacz *** (gwiazdek)

0

Chmmm, zabieram się do pisania programu który będzie odkrywał zagwiazdkowane Edity pokazując w to miejsce hasło.

Macie pomysł jak się do tego zabrać i co będzie potrzebne?

0

WindowFromPoint + SendMessage

0

W jednym z ostatnich tematów (układ okresowy??) drugi post (przperaszam i nie pamiętam autora) był kod dotyczący GET_TEXT okna będocego w miejscu myszki. Od tego zacznij. Ale ni daje to pełnej satysfakcji, bo na zasadniczą część Editów systemowych nie działa. Ale zawsze jakiś punkt odniesienia.

PS> jeżeli ci się uda, to opisz jak, jestem bardzo zainteresowany...

0

Coś mi się zdaje że będę musiał poczytać o punktorach i o uchwytach

0

a moshe nie ... ;)

nakierowujesz sobie kursorek na pole z hasłem i enter

var
P:TPoint;
EH:HWND;
DL:integer;
Haslo:String;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetCursorPos(P);
EH:=WindowFromPoint(P);
DL:=SendMessage(EH,WM_GETTEXTLENGTH,0,0);
inc(DL);
SetLength(Haslo,DL);
SendMessage(EH,WM_GETTEXT,DL,longint(Haslo));
ShowMessage(Haslo);
end;
0

Ale to fajnie działa,
teraz tylko drobne modyfikacje...i program odkrywający gwiazdki gotowy

THX [browar]

0

W jednym z ostatnich tematów (układ okresowy??) drugi post (przperaszam i nie pamiętam autora) był kod dotyczący GET_TEXT okna będocego w miejscu myszki. Od tego zacznij. Ale ni daje to pełnej satysfakcji, bo na zasadniczą część Editów systemowych nie działa. Ale zawsze jakiś punkt odniesienia.

To co podał Rudy jest w przybliżeniu tym samym kodem... Teraz (Win98) PanelSterowania -> Hasła -> Zdalna administracja

Tak dla przykładu... Nie działa...

0

Projekt ukończony :)
Ma jeszcze kilka drobnych błedów ale to kwestia czasu.

Krecik, Ty chyba chciałeś źródła jak chcesz to mogę Ci je podesłać.

0

http://lofix.iglu.cz/programy/hawkeye.zip

ze zrodlami (chyba)..jak nie ma to pusty mail, to podesle

0

Chmm, znowy mi coś wpadło do głowy...

A gdyby tak troszkę zmodyfikować ten kod, tak aby starał się pobrać KOLOR w miejscu gdzie znajduje się aktualnie kursor.
Już gdzieś takie coś widziałem...

Pobrany kolor wyświetlał by się w komponencie...Shape.
Zaś kolor RGB w postaci liczbowej wyświetlał by się w Edit'ie.
Do tego niezbędny by był Timer podpięty do kursora

Macie jeszcze jakieś twórcze myśli?

0

masz cały komponencik:

{HColorPicker.pas

Color under cursor picker copyright (c) HAKGERSoft 2000 - 2003

This unit is owned by HAKGERSoft, any modifications without HAKGERSoft permision
is prohibited!

Author:
  Johnny_Bit [[email protected]]
================================================================================

Unit description:

Unit of component that helps to get color under cursor. Just assign OnTimer to
procedure, that uses Color property.

================================================================================

History:

27.03.2003 : ver 0.1 alpha 3
  -Color is not stored
  -Changed default interval
  -About property
  -HAKGERSoft Defs

12.02.2003 : ver 0.1 alpha 2
  -Corrected code for get color (now resource-save, non-thread-safe) 

31.01.2003 : ver 0.1 alpha
  -Completed
  -Color property (readonly!)
  -Started

================================================================================
}
unit HColorPicker;

interface

uses
  Windows, Messages, SysUtils, Classes, ExtCtrls, Graphics;

type
  THColorPicker = class(TTimer)
  private
    Function GetColor: TColor;
    function GetAbout: String;
    Procedure SetColor(AColor: TColor);
    Procedure SetAbout(AAbout: String);
  protected
    ScreenCanvas: TCanvas;
  public
    Constructor Create(AOwner: TComponent);Override;
    Destructor Destroy;Override;
  published
    property Enabled;
    property Color: TColor Read GetColor write SetColor stored False;
    property Interval default 5;
    Property OnTimer;
    property About: String Read GetAbout write SetAbout stored False;
  end;

{$I HAKGERSoftDefs.inc}
  UniName='ColorPicker component';
  Version='0.1 alpha 3';

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('HAKGERSoft Components', [THColorPicker]);
end;

{ THColorPicker }

constructor THColorPicker.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Interval:=5;
  ScreenCanvas:=TCanvas.Create;
  ScreenCanvas.Handle:=GetWindowDC(GetDesktopWindow);
end;

destructor THColorPicker.Destroy;
begin
  ReleaseDC(ScreenCanvas.Handle, GetWindowDC(GetDesktopWindow));
  ScreenCanvas.Free;
  inherited;
end;

function THColorPicker.GetAbout: String;
begin
  Result:=Format(AboutHAKGERSoft,[UniName, Version]);
end;

{$WARNINGS OFF}
function THColorPicker.GetColor: TColor;
var
  Point: TPoint;
begin
  If Enabled and not (csDesigning in ComponentState) then //Component _MUST_ be Enabled & _MUSN'T be @ desing to do work :-]
    begin
      GetCursorPos(Point);
      Result:=ScreenCanvas.Pixels[Point.X, Point.Y];
    end;
end;
{$WARNINGS ON}

procedure THColorPicker.SetAbout(AAbout: String);
begin

end;

procedure THColorPicker.SetColor(AColor: TColor);
begin

end;

end.

plik HAKGERSoftDefs.inc:

const
  AboutHAKGERSoft='HAKGERSoft''s %s version %s';
0

Można też tak?

var
Color: TColor;
Point: TPoint;
Canvas: TCanvas;
begin
Canvas:=TCanvas.Create;
Canvas.Handle:=GetDC(0);
GetCursorPos(Point);
Color:=Canvas.Pixels[Point.x,Point.y];
Form1.Color:=Color;
Canvas.Destroy;
end;

Źródło: http://noribo.w.interia.pl/faq/faq.html

0

Na co Ci SetAbout i SetColor? Przecież to są własności ReadOnly...

0

Rozumiem Wasze podejście programowe do tematu - jednak gdyby komuś coś nie wychodziło - proponuje poszukać w necie SnadBoy's Revelation - wersja 2 działa na wszystkie edity i nie tylko (checkbtny, radiobtny) - prawdziwa rewelacja

  • pozdrawiam [cya]

1 użytkowników online, w tym zalogowanych: 0, gości: 1