yuturueu Postado Junho 27, 2019 Denunciar Share Postado Junho 27, 2019 alguém pode me da uma força, como faço para obter um Handle de uma janela pela sua id? como na foto abaixo a id da dialog e 105, quero apenas para obter handle do dialog 105 por esse id ou alguma referencia Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 27, 2019 Denunciar Share Postado Junho 27, 2019 Exemplo nesse link: https://codeoncode.blogspot.com/2016/12/get-processid-by-programname-include.html abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 yuturueu Postado Junho 27, 2019 Autor Denunciar Share Postado Junho 27, 2019 4 horas atrás, Jhonas disse: Exemplo nesse link: https://codeoncode.blogspot.com/2016/12/get-processid-by-programname-include.html abraço Muito bom, mas eu não consigo obter ainda handle dialog por id, você sabe alguma maneira de eu lista todos os handle de um forms? como o cheat engine, tem a função de 'Dissect Windows' ele lista todos os handle do processo selecionado! (combox,button,textbox..etc). Quero fazer uma lista, e que liste todos os handle daquele processo, você sabe alguma solução para isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 27, 2019 Denunciar Share Postado Junho 27, 2019 Veja nesse link se é isso que voce quer https://www.blog.tyttosoft.com.br/post?pagina=6 abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 yuturueu Postado Junho 27, 2019 Autor Denunciar Share Postado Junho 27, 2019 21 minutos atrás, Jhonas disse: Veja nesse link se é isso que voce quer https://www.blog.tyttosoft.com.br/post?pagina=6 abraço VocÊ tem skpye? ou whatssap? para eu explicar melhor! e muito importante isto para min amigo obrigado pela atenção Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 27, 2019 Denunciar Share Postado Junho 27, 2019 explique aqui, o melhor que voce puder ... tentarei ajuda-lo o que exatamente voce está querendo fazer ? abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 yuturueu Postado Junho 28, 2019 Autor Denunciar Share Postado Junho 28, 2019 (editado) 48 minutos atrás, Jhonas disse: explique aqui, o melhor que voce puder ... tentarei ajuda-lo o que exatamente voce está querendo fazer ? abraço Eu estava certamente, movendo um dialog, usando MoveWindow, mais precisava do seu 'handle' enfin, eu depurei o aplicativo, e coloquei pra quando o valor do handle passar pelo edx+20 gravar em minha lista, consegui fazer isto para todos os meus dialogs Se e de ajuda para alguém, criei uma dll em delphi, que no endereço 00453D1D ( onde o forms chama GetWindowRect ) e localizado as 2 variaveis 'handle pointer de estrutura rect' fiz este endereço jumpear pra minha dll, e a dll tem 1 função de gravar o handle que passar por ela, e em seguida retorna o valor padrão necessario da função do forms jumpeando voltamente para 00453D22, 🙂 Abraços obrigado pela atenção Editado Junho 28, 2019 por yuturueu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 28, 2019 Denunciar Share Postado Junho 28, 2019 ok... vejamos se entendi o problema voce quer mover um dialog para uma posição especifica na tela, mas se a nova posição do dialog passar pelo edx+20 ( seria edit ? ou o que é isso ? ) voce grava a posição inicial, para que depois voce possa retornar o componente nessa posição ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 yuturueu Postado Junho 28, 2019 Autor Denunciar Share Postado Junho 28, 2019 (editado) 2 horas atrás, Jhonas disse: ok... vejamos se entendi o problema voce quer mover um dialog para uma posição especifica na tela, mas se a nova posição do dialog passar pelo edx+20 ( seria edit ? ou o que é isso ? ) voce grava a posição inicial, para que depois voce possa retornar o componente nessa posição ? siim eu já consegui fazer o desejado! não e a posição do dialog que passa em edx+20, é seu handle fica na memoria correspondente a edx + 20 (exp: edx = 0121400, 20 = 32, 121400 + 32 = 121432 or 1DA58) existe um jogo que sua tela maxima e de 1024x768, eu consigo fazer o game ficar ate 1920x1080 mas suas dialogs ficam bugadas, quero dizer que butoes fica no meio da tela, text box no meio tambem, fica tudo bugado! mas com isto eu posso ajetar todos os dialogs que estao em cordenadas da tela erradas! eu depurei o jogo entendi a funcao que posiciona as dialogs, e vamos dizer que fiz 'engenharia reversa' para que handle das dialogs sejam gravadas, em minha dll injectada ( essa dll foi criada em delphi 7, ela e injectada automaticamente quando o jogo e aberto pelo seu launcher!) Editado Junho 28, 2019 por yuturueu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Junho 28, 2019 Denunciar Share Postado Junho 28, 2019 ok... acho que estes exemplos vão te ajudar https://www.devmedia.com.br/artigo-clube-delphi-edicao-11-um-pequeno-ladrao/14933 outro unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Timer1: TTimer; Label1: TLabel; OpenDialog1: TOpenDialog; Button2: TButton; SpeedButton1: TSpeedButton; BitBtn1: TBitBtn; Memo1: TMemo; Label2: TLabel; Label3: TLabel; procedure Timer1Timer(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); var p: TPoint; i: THandle; z, x: integer; s: array [ 0..4094 ] of char; Posicao: TRect; begin GetCursorPos ( p ); i := WindowFromPoint ( p ); Label1.caption := intToStr ( i ); z := strToInt ( Label1.caption ); GetWindowText ( z, s, x ); Label2.caption := s; GetWindowRect(i,Posicao); Label3.Caption := (Format('%d,%d',[Posicao.Left,Posicao.Top])); end; procedure TForm1.Button2Click(Sender: TObject); begin OpenDialog1.Execute; end; end. OBS: Neste exemplo, voce coloca varios componentes no Form ( inclui o dialog < componente não visual > nesse caso vai mostrar somente o handle e a posição ) Ao passar com o mouse sobre os componentes, vai mostrar nos Labels o Handle, o nome do componente e a posição dele em relação ao Form Verifique tambem o exemplo no link. Veja esse outro tambem ... vai ajudar http://www.marcocantu.com/epascal/English/ch09win.htm traduzido: https://translate.google.com.br/translate?hl=pt-BR&sl=en&u=http://www.marcocantu.com/epascal/English/ch09win.htm&prev=search. Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
yuturueu
alguém pode me da uma força, como faço para obter um Handle de uma janela pela sua id? como na foto abaixo a id da dialog e 105, quero apenas para obter handle do dialog 105 por esse id ou alguma referencia
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.