Find Jobs
Hire Freelancers

Win32 Message Hooking from C#, take 2

$30-90 USD

Em Andamento
Publicado há mais de 17 anos

$30-90 USD

Pago na entrega
I need to be able to place a win32 message hook (WH_GETMESSAGE vis-a-vis GetMsgProc) using SetWindowsHookEx from C#. Of course you cannot dllexport from C#, so the solution will probably involve a small C++ DLL to dllexport the win32 callback function. The hook is not global; it is defined on a specific thread _in another process_. This means that the DLL will be injected into the other process' address space. I am not sure how the callback will work to the C# code since it will have to work across address spaces. The DLL injection should not cause the .NET CLR to be loaded in the other process's address space. The C# client should be able to specify filters on the HWND and/or message types, so that only those messages should be passed up by the C++ callback function. Your code should intelligently manage multiple hook filters, so if I call Hook(Thread = 1, MessageType = 0) and Hook(Thread = 1, MessageType = 1) then the second call shouldn't require any additional DLL injection or win32 calls. All filtering should be done in the win32 callback, i.e. in the injected DLL. It should not be done in C#. The C# code should be able to modify the messages. For example, if the message is WM_SIZE then the C# code might change the lParam before the message is passed down the chain. I realize that wParam and lParam are often pointers to somewhere in the other process's address space, so they are not useful for some message types. There is one of these cases that I am especially interested in -- WM_WINDOWPOSCHANGING. The C# code should be able to place a special hook for WM_WINDOWPOSCHANGING messages. When they occur the C# callback should be provided with all of the WINDOWPOS information, and should be given a chance to modify that information. Of course, an UnhookWindowsHookEx wrapper should be provided. See also: [login to view URL] [login to view URL] ## Deliverables 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables): a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment. b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request. 3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement). ## Platform See description above.
ID do Projeto: 3970162

Sobre o projeto

7 propostas
Projeto remoto
Ativo há 17 anos

Quer ganhar algum dinheiro?

Benefícios de ofertar no Freelancer

Defina seu orçamento e seu prazo
Seja pago pelo seu trabalho
Descreva sua proposta
É grátis para se inscrever e fazer ofertas em trabalhos
Concedido a:
Avatar do Usuário
See private message.
$63,75 USD em 6 dias
4,6 (2 avaliações)
1,8
1,8
7 freelancers estão ofertando em média $70 USD for esse trabalho
Avatar do Usuário
See private message.
$76,50 USD em 6 dias
5,0 (134 avaliações)
7,4
7,4
Avatar do Usuário
See private message.
$68 USD em 6 dias
5,0 (159 avaliações)
6,0
6,0
Avatar do Usuário
See private message.
$76,50 USD em 6 dias
5,0 (51 avaliações)
6,0
6,0
Avatar do Usuário
See private message.
$68 USD em 6 dias
4,7 (120 avaliações)
5,5
5,5
Avatar do Usuário
See private message.
$72,25 USD em 6 dias
0,0 (1 avaliação)
2,4
2,4
Avatar do Usuário
See private message.
$68 USD em 6 dias
0,0 (2 avaliações)
0,0
0,0

Sobre o cliente

Bandeira do(a) UNITED STATES
San Francisco, United States
5,0
15
Método de pagamento verificado
Membro desde ago. 12, 2001

Verificação do Cliente

Obrigado! Te enviamos um link por e-mail para que você possa reivindicar seu crédito gratuito.
Algo deu errado ao enviar seu e-mail. Por favor, tente novamente.
Usuários Registrados Total de Trabalhos Publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Carregando pré-visualização
Permissão concedida para Geolocalização.
Sua sessão expirou e você foi desconectado. Por favor, faça login novamente.