Jak wykonać z zewnętrznego programu zrzut wartości?
Strona [ 1 ] z 1
| TomekMus |
07-02-2010 18:10 |
|
Użytkownik Status: Offline Dołączył: 23-10-2006 |
Witam, Piszę sobie aplikację i potrzebuję wykorzystać taki manewr jak kiedyś widziałem podczas kiedy zapomniałem hasła do gg i ściągłem sobie z neta taki programik co po najechaniu na pole z hasłem automatycznie pokazywał mi ukryte znaki pod nim. A ja potrzebuej coś prościejszego a mianowicie w aplikacji zewnętrzej mam dane typu Integer czyli jakąś liczbę od 0 do 999999 i chcę zrobić w mojej aplikacji że jak najadę myszką na inną aplikację i nacisnę jakiś klawisz skrutu myślę tu o CTRL+Q skopiuje mi wartość z formularza do mojej aplikacji. Jednym słowem potrzemuje robić zrzut wartości liczbowych z innej aplikacji do mojej poprzez wywołanie klawisza skrutu. Jak to zrobić? |
|
|
| cimak |
07-02-2010 18:20 |
|
Użytkownik Status: Offline Dołączył: 01-12-2002 Skąd: Chatka na środku lasu |
jak zrobic skroty klawiszowe? znajdziesz w googlach. jak odczytac zawartosc edita..? - znajdziesz w googlach (tu chyba wystarczy potraktowac edita jak zwykle okno i GetWindowText() ) Ostatnio zmodyfikowany: 07-02-2010 18:22 przez cimak |
|
|
| TomekMus |
07-02-2010 19:05 |
|
Użytkownik Status: Offline Dołączył: 23-10-2006 |
Z tego co wyczytałem to GetWindowText() pobiera tylko dane z mojej aplikacji. A ja chcę skopiować zawartość z innej aplikacji poprzez wywołanie skrutu klawiszowego będącego przypisanym do mojej aplikacji. Schematycznie wygląda tak: - odpalam moją aplikację - minimalizuję ją (działa sobie w tle) - korzystam z innej aplikacji - w tym czasie jak korzystam z innej aplikacji chcę by daną wartość liczbową xxxxxx skopiować poprzez najechanie na pole myszką a następnie skrót CTRL+Q (obsługiwany przez moją aplikację) odbiera wartość liczbową i wykonuje dalsze czynności np zapisuje do pliku ale to szczegół. Ostatnio zmodyfikowany: 08-02-2010 09:31 przez TomekMus |
|
|
| olesio |
07-02-2010 19:37 |
|
Użytkownik Status: Online Dołączył: 04-04-2008 |
Po pierwsze to jak cokolwiek piszesz używaj www.so.pwn.pl bo się nóż w kieszeni otwiera jak widzę "skrut". Po drugie zgodnie z poniższym linkiem zrób sobie taki program jak poniżej, pokaże Ci się w labelu tekst, ale tylko ze standardowych kontrolek edycyjnych. Na przykład pod Operą nie zobaczysz tekstów z pół edycyjnych. http://www.delphitricks.com/source-code/windows/get_handle_and_class_name_from_the_current_mouse_pos.html I jak zrobić sobie globalny HotKey po którego wciśnięciu masz wykonywaną jakiś kod, masz opisane na wielu stronach w googlach. Na przykład tutaj masz: http://www.swissdelphicenter.ch/torry/showcode.php?id=147 //... public procedure ShowHwndAndClassName(CrPos : TPoint); end; var Form1 : TForm1; implementation {$R *.dfm} procedure TForm1.ShowHwndAndClassName(CrPos : TPoint); var hWnd : THandle; aName, Text : array[0..255] of char; begin hWnd := WindowFromPoint(CrPos); Label1.Caption := 'Handle : ' + IntToStr(hWnd); if boolean(GetClassName(hWnd, aName, 256)) then Label2.Caption := 'ClassName : ' + string(aName) else Label2.Caption := 'ClassName : not found'; SendMessage(hWnd, WM_GETTEXT, SizeOf(Text), integer(@Text)); Label3.Caption := 'Text :' + Text; end; procedure TForm1.FormCreate(Sender : TObject); begin Form1.FormStyle := fsStayOnTop; Timer1.Interval := 50; end; procedure TForm1.Timer1Timer(Sender : TObject); var rPos : TPoint; begin if boolean(GetCursorPos(rPos)) then ShowHwndAndClassName(rPos); end; Pozdrawiam: olesio |
|
|
| toyman |
07-02-2010 20:11 |
|
Użytkownik Status: Offline Dołączył: 10-05-2005 Skąd: Katowice/Rzeszów |
Dobre. Szkoda, że nie działa na kontrolki formularzy strony WWW
|
|
|
| cimak |
07-02-2010 21:59 |
|
Użytkownik Status: Offline Dołączył: 01-12-2002 Skąd: Chatka na środku lasu |
TomekMus napisał: Z tego co wyczytałem to GetWindowText() pobiera tylko dane z mojej aplikacji. A ja chcę skopiować zawartość z innej aplikacji poprzez wywołanie skrutu klawiszowego będącego przypisanym do mojej aplikacji. a no dobrze wyczytales... tylko ze za szybko sie poddajesz. gdybys czytal dalej doszedłbyś do: To retrieve the text of a control in another process, send a WM_GETTEXT message directly instead of calling GetWindowText.
|
|
|
| zbynio_k |
11-02-2010 08:04 |
|
Użytkownik Status: Offline Dołączył: 10-02-2010 Skąd: Katowice |
olesio napisał: Po pierwsze to jak cokolwiek piszesz używaj www.so.pwn.pl bo się nóż w kieszeni otwiera jak widzę "skrut". bez wględu na wagę problemu, jaki zaprezentował @TomekMus trudno sobie wyobrazić wykształcone społeczeństwo bez umiejętności pisania w ojczystym języku dobrze, że środowiska programistyczne wskazują na błędną składnię jeśli program, który właśnie mozolnie napisałeś ruszył od pierwszego "kopa" to znaczy, że ..... na pewno gdzieś popełniłeś błąd |
|
|
|
|
|
Strona [ 1 ] z 1
| 1 użytkownik(ów) przegląda ten temat (1 gości) |
|---|
| (żadnych zarejestrowanych użytkowników) |









