[c++\Qt4] rozszerzanie powłoki Windowsa

0

Hej Bracia w bitach

pomóżcie w potrzebie-mianowicie chcę napisać proste rozszerzenie powłoki windowsa-ma odtąd w standardowym menu kontekstowym dla linni edycyjnej pojawić nowa opcja,skojarzona z pewnym moim programem (dla ułatwienia nazwijmy go c:\program.exe).
jJak to zrobić?grzebałem w googlach,w SDK,ale edyne co znalazłem to to iż trzeba zmodyfikować rejestr.W was Bracia nadzieja!

pozdrawiam

0

Albo IContexMenu (i nie patrz sie na dopiski w stylu nie moge znalezc to juz kompletna bzdura bo przyklad jest w katalogu delphi).

Albo zwykly rejestr np popatrz jak ma to zrobione zwykly notatnik.
1)HKEY_CLASSES_ROOT - > .txt
2).txt - > txtfile
3)txtfile - > shell - > open -> command
4) dodaj klucz do shell np. blabla(wartosc menu blabla), command (wartosc c:\program.exe ...)

Ja tu napisalem dla pliku, natomiast opisz co to jest linia edycyjna ??? Jesli chodzi ci o pudeleczko z editem (klasa EDIT) to sprawa ciezka. Raczej hooki na ta klase (i tak coraz wiecej programow ma swoje klasy linni edycyjnych i swoje wlasne menu kontekstowe wiec nie bedzie to proste.

0

ta chodzi Bracie reichel właśnie o klasę EDIT,nie o plik.
Albo może być jeszcze innaczej,olać tam konkretny obiekt,po prostu niech w KAŻDYM menu kontekstowym dojdzie nowa linia-choć ta droga pewnie wymagałaby w piizdu roboty z edytowaniem istniejących podkluczy shell :/

0

Tu widze niezrozumienie ideii powloki windows a klasy okien gotowych (w tym edit). Pomysl, ze mozesz Ty napisac program i tam wstawic jakies niestandardowe menu.

Ale jesli chcemy aby w kazdym edicie pojawila sie nowa pozycja (na koncu dla uproszczenia to trzeba:

  1. zlapac hooka na klika lewego dla okienek z klasy EDIT
  2. pobrac menu
  3. dodac swoje, i koniec :)
0

wiem że mogę,ale tu chodzi o to,iż jest sobie program QuickLader dla aukcji allegro.Posiada on opcję dodawania zdjęć przedmiotu,tyle że trzeba samodzielnie mielić dysior w ich poszukiwaniu.Więc kumpel poprosił mnie o programik,którym będzie mógł sobie szybko ścieżki do zdjęć znaleźć.
Wymyśliłem coś takiego:
1.ten program szukający będzie się odpalał z menu kontekstowego,do którego dodam nową opcję(stąd ten temat)
2.wyświetli prosty dialog z pytaniem o szukane zdjęcie
3.znalezioną ścieżkę wrzucać do schowka,tak aby była dostępna spod menu 'wklej' albo ctrl+v

a i btw-jeśli już to chyba hook na prawy klawisz myszy,co Bracie?;P

0

Prawy - lewy :)

Jak to konkretna aplikacja to mozna umiejscowic dokladnie (np jak guzik start) o ktorego edita chodzi i wtedy lapac tylko dla niego hooka. Wszystko jak pisales w tym, ze mozna Od razu wywolac settext pomijajac schowek.

0

Bracie reichel,jak wszedłem na stronkę znalazłem twój artykuł :
http://4programmers.net/Delphi/Artyku%C5%82y/Rozszerzenia_Pow%C5%82oki_Windows_(Windows_Shell_Extension)#id-Inne-artyku%C5%82y-powi%C4%85zane-z-pow%C5%82ok%C4%85-windows
a tam,nieopisane niestety,IContextMenu i IPersistFile.Chyba to się przyda w rozwiązaniu mojego kłopotu?Zara zresztą sdk pod tym kątem obaczę

Natomiast jeśli chodzi o hak w konkretną aplikację,jak to zrobić?Bo identyfikatorów lineeditów o które mi chodzi raczej nie wydobędę

schowek jest min dlatego,że może być po 1 kilka wyników,a po 2 aby była możliwość wklejenia w pasek adresu eksploratora.Lecz fakt,mając hak,z tego co pamiętam będący swoistym wskaźnikiem do obiektu,mogę użyć settexta

0
MasterBLB napisał(a)

a tam,nieopisane niestety,IContextMenu i IPersistFile.Chyba to się przyda w rozwiązaniu mojego kłopotu?Zara zresztą sdk pod tym kątem obaczę

Dopisalem (wspomialem tez wczesniej)

Przykład w katalogu Demos\ActiveX\ShellExt (delphi 6 i 7)

0

to Bracie poproszę o link,bo coś tego katalogu demos zlokalizować nie mogę

0

np tu (problemy z google ?)

http://www.delphi3000.com/articles/article_2926.asp?SK=

ale tobie to nic nie pomoze, patrz raczej SetWindowsHookEx

0

hmmm to jesli dobrze zrozumiałem to idzie tak:
1.zdefiniować procedurę haka
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam);
to wewnątrz niej będzie wywołanie mojego programu szukającego
2.wywołać SetWindowsHookEx(idHaka=?,tu_procedura_z_pkt1,NULL?,NULL?)
jako id haka jako tako pasujące znalazłem WH_MOUSE,WH_CALLWNDPROC i WH_CALLWNDPROCRET
3.ten programik trzeba uruchamiać razem z systemem,najlepiej chyba będzie w kluczu run

0

mniej wiecej tak (wystarczy jeden hak na procedury dochodzace do haka, przed dojsciem do okna - WH_CALLWNDPROC)

0

Dzięki za informacje Bracie reichel :)
W razie jakby kłopoty były,mogę cię na pm łapać?

0

email na stronie

0

Bzudra, nie wiem czemu ale 4p dziwnie dziala pod opera 9.5 logowanie kieruje do starych watkow ?!

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