Ustawianie tekstu przez SB_SETTEXT dla elementu innego niż o indeksie 0 w obcym programie.

0

Cześć.

Ponownie mam problem z pozornie łatwą rzeczą, ale tylko kiedy operujemy na standardowej kontrolce VCL w Delphi lub w ramach własnej aplikacji. Najpierw męczyłem się ze 4 godziny, aby przepisać znaleziony kod TProcessMemMgr do możliwego późniejszego użycia w czystym WinAPI, kopiując masę kodu modułów ze źródeł VCL. i okazało się, że w końcu mogę odczytać etykietę jednego z paneli na statusbarze w Hex WorkSnop 6.7 w wersji 64 bitowej.

Jednak niestety, nie umiem już z użyciem TProcessMemMgr ustawić jemu etykiety. Kombinowałem różnie i bez TProcessMemMgr da się przez SB_SETTEXT czy SB_GETTEXT uzyskać etykietę tylko w ramach własnej aplikacji. Dla obcej zaczynają się schody. I tutaj prośba do kogoś ogarniętego w tym temacie. Skoro dołaczony do tego postu kod, pobiera mi etykiety ok. To jak zrobić aby je również prawidłowo ustawiał? Bo teraz kod jaki jest pod Buttonem9, powoduje że tekst z danego elementu StatusBara po prostu znika i nijak nie umiem tego inaczej ogarnąc. Z góry dziękuję za wszelką, pomoc, bo google pomogło tylko z pobieraniem tekstów. A nie z ustawianiem.

1

@olesio lepiej w nocy śpij bo później pewnie ze zmęczenia robisz babole, bo dobrze kombinowałeś tylko w tym wykomentowanym kodzie pomyliłeś kolejność parametrów:

        if Len > 0 then
        begin
          PrcBuf := PMM.AllocMem(Len + 1);
          PMM.Write(NewText[1], PrcBuf, Len); //<-- tu miałeś byka
          SendMessage(HStatusBarHandle, SB_SETTEXT, PanelNumber, Longint(PrcBuf));
          PMM.FreeMem(PrcBuf);
        end;
0

@kAzek: dziekuję Ci bardzo dobry człowieku. Oczywiście działa, jak należy. Ech, te kolejności w "asmowym" stylu, jak cel / źródlo, a nie źródło / cel :) Chyba faktycznie muszę więcej pospać zanim coś zakodzę. Anyway, mam nadzieję, że teraz uda się mi łatwo zrobić dllkę do spoofnięcia dla Hex WorkShopa i sprawić aby zaznaczenie pokazywało się również jako liczba w systemie dzieśiętnym, a nie tylko szesnastkowym. Najgorze już za mną czyli wyodrębnianie kodu VCL ze źródeł dołączonych do wersji Enterprise, po to by wszystko korzystało tylko z modułów odnoszących się do Windows.

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