Como a programação pressionar o checkbox dentro Sysheader32 em outra aplicação?

Há alguém a aplicação de uma das janelas que se parece com isso:

ad909a6b2fa411c46ac7e4c77d092841.png


Eu preciso programaticamente para remover a marca de checkbox's dentro desta lista.

O Handle da janela e o handle de uma lista já recebeu, e o que fazer a seguir? Como chegar a esses checkbox's?


O programa é escrito em Delphi.

// ищем окно с заголовком &quot;Select Tools&quot;<br/>
SelectToolsHandle:=GetWindowHandle('Select Tools');<br/>
if (SelectToolsHandle &lt;&gt; 0) then begin<br/>
 // ищем список<br/>
 SysListHandle:=FindWindowEx(SelectToolsHandle, 0, 'SysListView32', nil);<br/>
 if (SysListHandle &lt;&gt; 0) then begin<br/>
 showmessage(IntToStr(SysListHandle)); // handle списка получен<br/>
 // Что же дальше делать?(<br/>
 end;<br/>
end;<br/>


Answers 3:

Share:


l love little mix and Fifth Harmony
Answer 1

Opção dois:

1. Quer simular o pressionamento de teclas\mouse, o que há de ruim.

2. Ou com a ajuda de хуков arrancar no espaço de endereço do processo e comprar tranquilamente. LVM_SETITEMSTATE, o que não é bom, mas é difícil.


Moo oo
Answer 2

Acho que é o que você está procurando:


isaac pereira
Answer 3

Obrigado a todos, um pouco ignorado o problema, notei que a marca de seleção está desmarcada se dedicado parágrafo pressionar a barra de Espaço. Assim que recebi o texto de cada item é nabitiya partir de uma lista, isso ajudou o seguinte artigo:
http://www.ddsoft.hoha.ru/notes/lvmgetitem/
E depois disso, basta destacou o item desejado e эмулировал pressionar a barra de espaço, neste ajudou o seguinte código:
http://www.delphisources.ru/forum/showthread.php?t=8592