Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

Problem z ControlGetText


KamilPolska1111

Pytanie

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

Opublikowano

Problem jest w tym, że w Notepad++ właściwa kontrolka z tekstem jest "wewnątrz" kontrolki, którą jest belka z nazwami otwartych plików.

Z tego też powodu program "Autoit Window Info" nie potrafi odczytać prawidłowego identyfikatora kontrolki z tekstem. Odczytuje tylko ten od belki z nazwami otwartych plików (SysTabControl32).

Dlatego polecam używać zamiast powyższego programu, program "Control Viewer", posiadający znacznie większe możliwości.

Program można ściągnąć z forum Autoit'a: https://www.autoitscript.com/forum/files/file/478-control-viewer-mod/

Po jego uruchomieniu na dole okna programu mamy listę z kontrolkami, w której możemy je włączać i wyłączać. Wystarczy więc tylko wyłączyć tą nadrzędną kontrolkę (SysTabControl32), która nam zasłania właściwe pole tekstowe i odczytać jego właściwy identyfikator (Scintilla).

Zapomniałeś też o "CLASS" i o nawiasach kwadratowych!

Kod powinien wyglądać więc tak:

$sTxt = ControlGetText("[CLASS:Notepad++]", "", "[CLASS:Scintilla]")

A jeszcze lepiej, żeby nie było żadnych przekłamań, użyć pełnej identyfikacji:

$sTxt = ControlGetText("[CLASS:Notepad++]", "", "[CLASS:Scintilla; INSTANCE:1]")

Pozdrawiam

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...