ïýòðрь - Xakep Online
ïýòðрь - Xakep Online
ïýòðрь - Xakep Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ÊÎÄÈÍÃ ///// ISSUE<br />
DELPHI<br />
Ïîëíûé èñõîäíûé êîä è âñþ íåîáõîäèìóþ ê íåìó<br />
ëàáóäó òû ìîæåøü îáíàðóæèòü íà äèñêå.<br />
öèè äëÿ ðàáîòû ñ êîíòåêñòíûì ìåíþ. ×òî æ, ïîåõàëè ïî ïîðÿäêó.<br />
 ôóíêöèè QueryContextMenu ìû äîëæíû âñòàâèòü âñå æåëàåìûå<br />
ïóíêòû ìåíþ, à óæå â InvokeCommand îïðåäåëèòü, êàêîå êîëäîâñòâî<br />
áóäåò ïðîèñõîäèòü ïðè íàæàòèè íà êàæäûé ïóíêò. Ïîñìîòðè<br />
ñîðåö íà äèñêå, òàì âñå ïðîñòî ;).<br />
Âîò âðîäå áû è âñå, ÷òî íóæíî äëÿ ñîçäàíèÿ ýëåìåíòàðíîãî òóëáàðà,<br />
íî òàê êàê ìû áóäåì èñïîëüçîâàòü êîìïîíåíòû äëÿ ââîäà ñ êëàâèàòóðû<br />
(Memo, Edit è òä.), òî íàì íóæíî ðåàëèçîâàòü ôîêóñ, à òî<br />
ìû ïðîñòî-íàïðîñòî íå ñìîæåì ïîëó÷èòü â òóëáàðå íèêàêîé èíôû<br />
ñ êëàâû. Ìåòîäû äëÿ ðàáîòû ñ ôîêóñîì îáúÿâëåíû â èíòåðôåéñå<br />
IInputObject.<br />
UIActivateIO, êàê íàïèñàíî â MSDN, ýòà ôóíêöèÿ àêòèâèðóåò/äåàêòèâèðóåò<br />
îáúåêò, òî÷íåå îíà ìåíÿåò ôîêóñ â çàâèñèìîñòè îò ïåðåìåííîé<br />
fActivate. Ïðîñòî äåëàåì SetFocus, åñëè fActivate — èñòèíà, è íè÷åãî<br />
íå äåëàåì, åñëè fActivate — ëîæü.<br />
HasFocusIO îïðåäåëÿåò, ñóùåñòâóåò ëè êëàâèøíûé ôîêóñ, è íà îñíîâàíèè<br />
îòâåòà äåëàåò âûâîäû. Ðåàëèçóåòñÿ ëåãêî: ïðîñòî âîçâðàùàåì<br />
â íåå ôîêóñ ;).<br />
TranslateAcceleratorIO — çäåñü íóæíî îòëîâèòü íàæàòèå êëàâèøè <br />
è ïîñëàòü ôîêóñ â äàëåêîå ïóòåøåñòâèå ïî òóëáàðíûì ïðîñòîðàì.<br />
Ïîìèìî âñåãî ïðî÷åãî, íå ñòîèò çàáûâàòü: ÷òîáû COM-ñåðâåð ó íàñ<br />
çàðàáîòàë, íàì íóæíî ñîçäàòü åãî GUID. GUID — ýòî òàêîé ID ñåðâåðà,<br />
êîòîðûé îáåñïå÷èâàåò åãî óíèêàëüíîñòü âî Âñåëåííîé è âî âñåõ<br />
èçìåðåíèÿõ. Äîñòèãàåòñÿ ýòî ñ ïîìîùüþ ìàíèïóëÿöèé ñ äàòîé è âðåìåíåì,<br />
à òàêæå ïàðàìåòðàìè æåëåçà. Â ñðåäå Delphi ñäåëàíî âñå çà<br />
íàñ, è ïî íàæàòèþ â ïîçèöèþ êóðñîðà ïîìåùàåòñÿ<br />
ñãåíåðèðîâàííûé GUID. Áåç íåãî òåáå íå óäàñòñÿ çàðåãèñòðèðîâàòü<br />
òóëáàð. ×òîáû çàðåãèñòðèðîâàòü ëþáîé COM-ñåðâåð, íóæíî ñîçäàòü<br />
íåñêîëüêî êëþ÷åé â ðååñòðå. Âîò îíè:<br />
HKEY_CLASSES_ROOT\CLSID\[ÃÓÈÄ]\. Çäåñü ïèøåì íàçâàíèå COMñåðâåðà<br />
â çíà÷åíèè ïî óìîë÷àíèþ.  íàøåì ñëó÷àå — ProxyBar.<br />
HKEY_CLASSES_ROOT\CLSID\[ÃÓÈÄ]\InProcServer32. Íå áóäåì çàöèêëèâàòüñÿ<br />
íà ïîòî÷íîé ìîäåëè COM, è â êëþ÷ ThreadingModel çàïèøåì<br />
Apartment. Åñëè òåáÿ èíòåðåñóåò, ÷òî ýòî çà çâåðü, òî ëèòåðàòóðû ïî<br />
COM ñóùåñòâóåò îãðîìíîå êîëè÷åñòâî, è, äóìàþ, ñ ïîèñêîì ïðîáëåì<br />
âîçíèêíóòü íå äîëæíî.<br />
HKEY_CLASSES_ROOT\CLSID\[ÃÓÈÄ]\Implemented Categories\[Òèï òóëáàðà].<br />
 ýòîì êëþ÷å ïèñàòü íè÷åãî íå íàäî, åãî íóæíî ïðîñòî ñîçäàòü.<br />
Îí áóäåò äàâàòü õàðàêòåðèñòèêó íàøåìó COM-ñåðâåðó. Â íàøåì ñëó-<br />
÷àå òèï òóëáàðà — ýòî DeskBand, à åãî GUID ðàâåí {00021492-0000-<br />
0000-C000-000000000046}, ÷òî î÷åíü ëåãêî çàïîìíèòü :).<br />
È êóëüìèíàöèîííûì ìîìåíòîì ðåãèñòðàöèè ÿâëÿåòñÿ îáúÿâëåíèå íàøåãî<br />
COM-ñåðâåðà êàê òóëáàðà. Â HKEY_CURRENT_USER\Software\Microsoft\<br />
Internet Explorer\Toolbar\WebBrowser ñîçäàåì ïóñòîé êëþ÷ [ÃÓÈÄ] è íà÷èíàåì<br />
ðàñïå÷àòûâàòü ñëåäóþùóþ áóòûëêó ñîêà.<br />
Íî ÷òî äåëàòü ñ ýòèìè [ÃÓÈÄ]? Êàê æå îòêðûâàòü êëþ÷è ðååñòðà, îíè<br />
âåäü string, à ýòî TGUID? À ëåãêî! Ñóùåñòâóåò òàêàÿ ôóíêöèÿ, êàê<br />
GuidToString. Âîò è èñïîëüçóé åå ïî íàçíà÷åíèþ.<br />
Íå çàáûâ ñäåëàòü â ïðîöåäóðå àíðåãà óäàëåíèå ðàíåå ñîçäàííûõ êëþ÷åé,<br />
ìîæíî ñ÷èòàòü, ÷òî çâåðþãà ãîòîâà. È ÷òî ìîæíî íà÷èíàòü ó÷èòü åå æèçíè ;).<br />
ÏÐÎÊÑÈ<br />
ÎÁÚÅÇÆÀÅÌ<br />
Ôîðìà ãîòîâà, íî îíà ïóñòà è ïðîêó îò íåå íå áîëüøå, ÷åì îò áåçàëêîãîëüíîãî<br />
ñîêà. Ïðèäåòñÿ èñïðàâëÿòü. Íà ôîðìå ó íàñ ðàñïîëîæèòñÿ<br />
ComboBox è êíîïêà. Â ComboBox'å áóäåò íàõîäèòüñÿ ñàì ïðîêñè ëèñò, à<br />
êíîïêîé ìû áóäåì ìåíÿòü ïðîêñè íà âûáðàííûé íàìè âàðèàíò. ×òîáû<br />
ïðèöåïèòü ïðîêñèê ê IE îñîáîãî òðóäà íå òðåáóåòñÿ, âñåãî-íàâñåãî íóæíî<br />
ìåíÿòü çíà÷åíèå êëþ÷à HKEY_CURRENT_USER\Software\Microsoft\<br />
Windows\CurrentVersion\Internet Settings\ProxyServer íà çíà÷åíèå âèäà<br />
proxy:port, à òàêæå èçìåíèòü ñòîÿùèé ðÿäîì êëþ÷ ProxyEnable íà 1, è äåëî<br />
â øëÿïå. Ñ ýòèì ïðîáëåì âîçíèêíóòü íå äîëæíî. Òàê êàê â<br />
ComboBox'å áóäóò õðàíèòüñÿ âñå ïðîêñèêè, òî ìû äîëæíû ñîõðàíÿòü<br />
ýòîò ëèñò è çàãðóæàòü ïðè ñîçäàíèè òóëáàðà. Â ñîáûòèè FormCreate ïðîïèñûâàåøü<br />
Combobox1.Items.LoadFromFile('C:\Proxy.txt'), è ïðîêñè îêàçûâàþòñÿ<br />
â ëèñòå, à ñîõðàíÿòü èõ íàäî â ñîáûòèè FormDestroy<br />
Combobox1.Items.SaveToFile. Âîò è âñå, ÷åéíäæåð ïðîêñè çàêîí÷åí.<br />
Òåïåðü ó òåáÿ åñòü dll'êà, íî ïðåæäå ÷åì ðàäîâàòüñÿ æèçíè è äîïèâàòü<br />
ñëàáîàëêîãîëüíûå íàïèòêè, ìèðíî ñòîÿùèå ó òåáÿ íà ñòîëå, ñòîèò åå<br />
çàðåãèñòðèðîâàòü. Äåëàåòñÿ ýòî ñ ïîìîùüþ ñòàíäàðòíîé âèíäîâîé<br />
óòèëèòû regsvr32.<br />
âîò òàê ïîäãðóæàåì íàøó ïàíåëü<br />
regsvr32 C:\proxybar.dll<br />
à òàê âûãðóæàåì<br />
regsvr32 -u C:\proxybar.dll<br />
Òàê êàê ðåãèñòðàöèÿ ïðîõîäèò ÷åðåç ìåòîä UpdateRegistry, òî ìîæíî<br />
âñòàâèòü òóäà ÷òî-íèáóäü âðîäå ShowMessage('Ñïàñèáî òåáå çà ðåãèñòðàöèþ')<br />
èëè ñðàçó ðåäèðåêòèòü íà ñòðàíèöó ðàçðàáîò÷èêà. Êñòàòè, î<br />
ïòè÷êàõ. ×òîáû ïîëó÷èòü êîíòðîëü íàä áðàóçåðîì, áóäü òî ðåäèðåêò èëè<br />
ïîëó÷åíèå êîíòåíòà ñòðàíè÷êè, òåáå ïîòðåáóåòñÿ ðàçîáðàòüñÿ ñ èíòåðôåéñîì<br />
IWebBrowser2. Äóìàþ, ÷òî òû óæå ñòàëêèâàëñÿ ñ êîìïîíåíòîì<br />
TwebBrowser. Âñå ôóíêöèè, êîòîðûå â íåì åñòü, çàèìñòâîâàíû êàê ðàç<br />
èç IWebBrowser2. Òû ìîæåøü þçàòü ôóíêöèè Navigate, Stop, Refresh è<br />
áûòü ñ÷àñòëèâûì, íî ïîìíè, ÷òî íåëüçÿ äåëàòü òàê: IE.Navigate(Url, 0, 0,<br />
0, 0); íóæíî îáÿçàòåëüíî îáúÿâèòü ïåðåìåííóþ òèïà OleVariant è ïðèñâîèòü<br />
åé çíà÷åíèå: IE.Navigate(Url, X, X, X, X); Íèêàêèõ íóëåé!<br />
«ÒÅÏÅÐÜ ÌÍÅ ÑÓÕÎ È ÊÎÌÔÎÐÒÍλ(C)<br />
 ðåçóëüòàòå ìû ñ òîáîé ñîòâîðèëè îòëè÷íûé òóëáàð, ïî÷òè íå íàïðÿãàÿñü.<br />
Óâåðåí, ÷òî òû óæå ãîðèøü æåëàíèåì êàê-íèáóäü åãî äîðàáîòàòü, äîáàâèòü<br />
ìèíè proxy-÷åêåð, ïðîâåðêó íà âðåìÿ îòêëèêà è ïðî÷èå íóæíûå âåùè. Íî îäíîé<br />
ñìåíîé proxy-ñåðâåðîâ ðàçðàáîòêà òóëáàðîâ äëÿ IE, êàê òû ïîíèìàåøü,<br />
íå îãðàíè÷èâàåòñÿ!  IE ìîæíî ëåãêî ìåíÿòü àáñîëþòíî ëþáûå íàñòðîéêè,<br />
áëàãî õðàíÿòñÿ îíè â ðååñòðå. Ìîæíî, íàïðèìåð, ñîçäàòü Security Explorer<br />
Bar, ãäå îäíèì êëèêîì ìîæíî áóäåò èçìåíèòü ïàðàìåòðû ïðèåìà êóêèñîâ<br />
èëè î÷èùàòü õèñòîðè. Âñå, ÷òî òåáå íóæíî, — msdn, ýòà ñêðîìíàÿ ñòàòüÿ è,<br />
êîíå÷íî æå, íåìíîãî âîîáðàæåíèÿ. Íàäåþñü, ÿ òåáÿ çàèíòåðåñîâàë.<br />
BINARY YOUR’S z<br />
Äîáûâàòü ïðîêñè ìîæíî ðàçíûìè ïóòÿìè. Êòî-òî ñêàíèðóåò<br />
äèàïàçîíû íà îòêðûòûå ïîðòû 80, 3128, 8080,<br />
êòî-òî ïîêóïàåò äîñòóï ê áîëüøîìó è óäîáíîìó ëèñòó,<br />
êòî-òî ñ ãîðÿùèìè ãëàçàìè áåãàåò ïî ôîðóìàì, ãäå ìîãóò<br />
âûëîæèòü ïàðî÷êó àäðåñîâ (âðîäå asechka.ru). ß ïî<br />
ýòîìó ïîâîäó íå î÷åíü íàïðÿãàþñü, ïðîñòî ïîòðîøó ðåñóðñû<br />
ñ ïàáëèê-ïðîêñÿìè, ÷åêàþ èõ, ïîñëå ÷åãî î÷èùàþ<br />
ïîëó÷åííûé ëèñò îò ñåðâåðîâ íàøèõ òîâàðèùåé èç<br />
FBI è US Army ;).<br />
Ïóáëè÷íûå ëèñòû ïðîêñè-ñåðâåðîâ èùè ïî ñëåäóþùèì<br />
àäðåñàì:<br />
http://www.samair.ru/proxy/<br />
http://proxy.mazafaka.ru/<br />
http://nntime.com/proxy/<br />
http://proxy.asechka.ru/index.php?page=proxylist<br />
Îíëàéíîâûé proxy-÷åêåð:<br />
http://proxy.asechka.ru/index.php?page=proxychecker<br />
Îíëàéíîâûé proxy-ôèëüòð:<br />
http://proxy.asechka.ru/index.php?page=proxyfilter<br />
122 XÀÊÅÐ 01 /85/ 06