Articles of pinvoke

SendInput e 64bits

Abaixo está um extrato de algum código que estou usando para simular pressionamentos de teclas por meio da API SendInput. Isso funciona corretamente se eu definir meu aplicativo para compilar para uma CPU x86, mas não funciona para compilation de CPU x64. Eu estou supondo que tem algo todo com o fato de que x64 […]

Desbloquear arquivo de dentro .net 4 c #

Existe a possibilidade de desbloquear um arquivo baixado da Internet a partir de um programa ac #? Surfar na Internet Aprendi que as informações são gravadas em um stream alternativo de um arquivo (NTFS) que contém as informações da zona atual (o valor 3 é da Internet e é interpretado como bloqueado). Existe uma possibilidade […]

Atalho global no aplicativo de console

Alguém sabe como usar as chamadas de API RegisterHotKey / UnregisterHotKey em um aplicativo de console? Eu assumo que configurar / remover a tecla de atalho é o mesmo, mas como faço para recuperar a chamada quando a tecla foi pressionada? Cada exemplo que vejo é para WinForms, e usa o protected override void WndProc(ref […]

Marechal “char *” em c #

Dada a seguinte function C em uma DLL: char * GetDir(char* path ); Como você P / Invoke esta function em c # e empacotar o char * corretamente. .NET parece saber como fazer LPCTSTR, mas quando eu não consigo descobrir qualquer empacotamento que não causa um NotSupportedException para triggersr ao chamar essa function.

Nenhuma saída do console ao usar o AllocConsole e a arquitetura de destino x86

Eu tenho um projeto WinForms, e se o usuário quiser um console de debugging, eu alocar um console com AllocConsole() . Toda a saída do console funciona normalmente com a arquitetura de destino definida como “Any CPU”, mas quando eu a altero para “x86” ela não produz nada (o Console.Read() ainda funciona como esperado). Se […]

Como lidar com arquivos com um nome maior que 259 caracteres?

Eu estou trabalhando em um aplicativo que percorre todos os arquivos em alguns diretórios e faz algumas ações com esses arquivos. Entre outros, devo recuperar o tamanho do arquivo e a data em que esse arquivo foi modificado. Alguns nomes completos de arquivos (diretório + nome de arquivo) sendo muito longos, não consegui usar o […]

Melhor maneira de acessar objects COM de c #

Estou planejando usar vários objects que são expostos como objects COM. Para torná-los mais fáceis de usar, eu gostaria de envolvê-los como objects C #. Qual é a melhor abordagem para isso?

Como faço para manipular parâmetros struct null ou opcional dll em c #

Como faço para lidar com argumentos struct opcionais em methods dll chamados de c # usando pinvoke? Por exemplo, o parâmetro lpSecurityAttributes aqui deve ser passado null quando ausente. A maneira correta de passar struct ‘s parece estar usando ref , mas não pode ter parâmetros opcionais, ou ter null em geral. Que maneiras existem […]

Uma chamada para a function PInvoke ” desequilibrou a pilha

Eu estou recebendo este erro estranho em algumas coisas que eu tenho usado por um bom tempo. Pode ser uma coisa nova no Visual Studio 2010, mas não tenho certeza. Eu estou tentando chamar uma function não autorizada escrita em C ++ de c #. Do que eu li na internet e a mensagem de […]

Traga uma janela para a frente no WPF

Como posso levar meu aplicativo WPF para a frente da área de trabalho? Até agora eu tentei: SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true); SetWindowPos(new WindowInteropHelper(Application.Current.MainWindow).Handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetForegroundWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle); Nenhum deles está fazendo o trabalho ( Marshal.GetLastWin32Error() está dizendo que essas operações foram concluídas com sucesso, e os atributos P / Invoke […]