Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: jak przeczytac zawartosc StatusBar
anonim




Typ: Nie zarejestrowany
jak przeczytac zawartosc StatusBar

No wlasnie jak? GetWindowText pozwala czytac Caption obiektu, a wszelkie napisy w StatusBar (np. w internet explorerze) zwracaja pusty Caption. Czyli text widoczny na tym obiekcie przechowuje inna cecha. Juz sobie troche pomoglem za pomoca zmienna_textowa=statusbar1.SimpleText, ale w ten sposob moge odczytac zawartosc StatusBar aplikacji, ktora sam napisalem, a ja chce czytac dowolny StatusBar. Prosze o sugestie, porady, pomoc.

Pozdrawiam serdecznie uzytkownikow Forum.
Radek

04-02-2005 17:25
  
anonim




Typ: Nie zarejestrowany
dopowiem, co dokladnie mnie interesuje

chcialbym otoz miec w schowku skopiowany link, nad ktorym wlasnie znajduje sie kursor. Latam sobie myszka po oknie przelgadarki, i jak tylko trafie kursorem na jakis link (nawet znajdujacy sie "pod obrazkiem" chce moc go skopiowac do schowka. A rzecz w tym, ze pokazuje sie on w StatusBar Internet Explorera...co super latwo dalo by sie zastosowac. Pomocy!

Pozdrawiam serdecznie,
Radek

04-02-2005 19:15
  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

StatuBar nie jes jednolistą klasą - każdy program może ją sobie zrobić jak chce. Natomiast w przypadku InternetExplorera (IE6) statusbar, który prawopodobnie pobierasz jest albo dzieckiem, ale rodzicem tego, który powinien zostać pobrany. Musisz ekperymentalnie sprawdzić, czy potrzebujesz pobierać Caption z potomka czy rodzica.

Poza tym polecam program WinDowse - świetnie nadaje się do eksploracji okienek na skalę większą niż przewidział to Microsoft i często pomaga przy takich problemach. Pozwala na zdobycie większości porządanych danych o okienku, jego powiązaniach z innymi oknami, właściwościach, a nawet modyfikację kilku cech na bierząco.

[Post edytowany dnia 04-02-2005 19:44 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

04-02-2005 19:43
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
anonim




Typ: Nie zarejestrowany

Witam serdecznie,
Twoja odpowiedz byla pouczajaca i przydatna odpowiedz. Niemniej jednak wciaz pozostaje z tym samym problemem.Skorzystalem z WinDowse-cos niesamowitego, wspanialy program. On, jak sie okazalo, potrafil odczytac zawartosc StatusBar, a nawet zmodyfikowac jego tresc. Mi sie to nie udalo. Oczywiscie solidnie poeksperymentowalem, na wiele sposobow. Robilem tak:

Dim dana As String * 256
On Error Resume Next
GetWindowText 721940, dana, 256 'dziesietnie wyrazone hWnd jest prawdziwe-WinDowse je dal, sam tez wczesniej je zdobylem, z ta liczba troche kombinowalem
Text1.Text = dana 'zeby sobie wyswietlic (oczywiscie na polu StatusBar byl widoczny link w tym czasie)

robilem tez tak:

Dim dana As String * 256 'oczywiscie tekst w polu byl krotszy na 100%
Open App.Path + "\aaa.txt" For Output As #10
For n = 1 To 200 'tu zmienialem nawet na 100000, oczywiscie dbajac, by podana przez WinDowse wartosc hWnd wypadala w srodku tej petli
'dana = ""
GetWindowText (721900 + n), dana, 256
Print #10, Str$(n) + " " + dana
Next n
Close #10
MsgBox "juz"

zeby tylko odszukac pod jakim hWnd kryje sie ten statusbar.

Zamieszam tez zawartosc pol z WinDowse:

*** Window Information *********************************************************

Text
Process ID 2076
App instance 1978990592
Handle 721940
Parent handle 721938
Control ID 1
Function 0
Menu handle 0
Coords in parent left:692, top:4, right:692, bottom:18
Coords in screen left:692, top:724, right:692, bottom:738
Window size width, height:14
Client area size width, height:14
Style 1140850689
Extended style 0
ws_overlapped | ws_child | ws_clipsiblings | ws_ex_left | ws_ex_ltrreading |
ws_ex_rightscrollbar


*** Class Information **********************************************************

Name msctls_progress32 <---------interesuje mnie to...
Function -64985
Icon 0
Small icon 0
Cursor 65553
Bkg brush 16
Module handle 2000420864
Style 16387
cs_vredraw | cs_hredraw | cs_globalclass


*** Parents ********************************************************************

# Handle Class name Text

001 721938 msctls_statusbar32 ,,,,,,,,,,,,,,,,, <---------a raczej to, poniewaz te przecinki umiescilem tam za pomoca WinDowse
002 328632 IEFrame onet.pl ...


*** Children *******************************************************************

# Handle Class name Text



*** Digger *********************************************************************

# Handle Class name Text

001 721938 msctls_statusbar32
002 328632 IEFrame onet.pl
003 262524 MozillaWindowClass
004 262538 MozillaWindowClass VB4all forum - Mozilla Firefox
005 131298 MozillaWindowClass
006 327968 MozillaWindowClass [VB Zone.prv.pl] Strefa progr...
007 262896 ScrollBar
008 328402 VbaWindow Immediate
009 1835342 wndclass_desked_gsk hWndHider - Microsoft Visual ...
010 66006 Edit
011 66002 TComboBox
012 65990 TMyPanel
013 197034 TTOTAL_CMD Total Commander 6.03a - NOT R...
014 65670 SysListView32 FolderView
015 65668 SHELLDLL_DefView
016 65658 Progman Program Manager


*** Executable Information *****************************************************

File path C:\Program Files\Internet Explorer\
File name IEXPLORE.EXE
Original file name IEXPLORE.EXE
File description Internet Explorer
File version 6.00.2900.2180 (xpsp_sp2_rtm.040803-2158)
Product name System operacyjny Microsoft&#174; Windows&#174;
Internal name iexplore
Legal copyright &#169; Microsoft Corporation. Wszelkie prawa zastrzeżone.
Legal trademarks
Product version 6.00.2900.2180
Company name Microsoft Corporation
Comments


*** Modules ********************************************************************

File Path
---to jest zbedne---

Powiedz, ktore hWnd powinienem uzyc z tego, co tu podsylam (oczywiscie probowalem wszystkich, ale moze cos przeoczylem). A moze zle pisze program do odczytywania? Moze powinienem uzyc WM_GETTETXT? I jak?

Pozdrawiam,
Radek

05-02-2005 14:19
  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Witam. Przepraszam, że tyle to trwało, ale próbowałem znaleźć jakieś rozwiązanie. Niestety - nie znalazłem żadnego . GetWindowText nie będzie działało ze status-barami dopuki nie będą one w trybie simple (a ten w IE do takich nie należy). Można je natomiast obsłużyć wysyłajać bezopśrednio do okna wiadomość SB_GETTEXT. Jednak nią z kolei nie można obsłużyć okien spoza aplikacji, która ją wyśle. Tzn. dociera ona do IE, ale on i tak nic nie zwróci (ewentualnie nawet się wykolei, jeśli podało się niewłaściwy numer panelu w wiadomości).

Ciekawi mnie tylko w jaki sposób WinDowse sobie z tym radzi, tym bardziej, że - co dziwniejsze - nawet Spy++ samego Microsoftu nie potrafi tego zrobić (a przecież mają znają wszystkie nieudokumentowane funkcje)...

[Post edytowany dnia 06-02-2005 06:16 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

06-02-2005 06:15
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
anonim




Typ: Nie zarejestrowany

Nic sie nie stalo. Twoje sugestie byly wielce pomocne  i daly mi odpowiedzi na kilka innych pytan. Co do problemu: trudno, swiat sie od tego nie zawali. Pozdrawiam

07-02-2005 20:35
  
Wszystkich odpowiedzi: 5 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1