Articles of winapi

Como obter o tamanho físico correto do monitor?

Como posso obter o tamanho da canvas em centímetros ou polegadas? Este código nem sempre funciona corretamente: HDC hdc = CreateDC(_T(“DISPLAY”),dd.DeviceName,NULL,NULL); int width = GetDeviceCaps(hdc, HORZSIZE); int height = GetDeviceCaps(hdc, VERTSIZE); ReleaseDC(0, hdc) Especialmente para configuração de vários monitores. Atualização: Eu preciso obter o tamanho apenas para monitores comuns, que têm um tamanho físico constante.

Corretamente lendo um arquivo de texto utf-16 em uma seqüência de caracteres sem bibliotecas externas?

Eu tenho usado o StackOverflow desde o começo, e algumas vezes tenho sido tentado a postar perguntas, mas eu sempre descobri isso ou encontrei respostas postadas eventualmente … até agora. Parece que isso deve ser bastante simples, mas eu tenho vagado pela internet por horas sem sucesso, então eu viro aqui: Eu tenho um arquivo […]

C ++ / Win32: como esperar por uma exclusão pendente para concluir?

Resolvido: * Solução viável: @sbi * Explicação para o que realmente acontece: @ Hans * Explicação de porque o OpenFile não passa por “DELETE PENDING”: @Benjamin O problema: Nosso software é em grande parte um mecanismo de intérprete para uma linguagem de script proprietária. Essa linguagem de script tem a capacidade de criar um arquivo, […]

obtém o nome do processo a partir do id do processo (win32)

Eu preciso obter uma lista de todos os processos em um sistema Windows, incluindo nomes e PID. EnumProcess pode obter uma lista de pids, mas como faço para obter o nome do processo do pid? Eu não quero chamar OpenProcess no processo, pois isso nem sempre funciona (como se o outro processo fosse executado por […]

Win32Exception Não há armazenamento suficiente disponível para processar este comando

Através da minha colecção de colisões automatizada para MaxTo recebi o seguinte relatório de falha: V8.12.0.0 – System.ComponentModel.Win32Exception – :Void UpdateLayered():0 Version: MaxTo8.12.0.0 Exception: System.ComponentModel.Win32Exception Error message: Not enough storage is available to process this command Stack trace: at System.Windows.Forms.Form.UpdateLayered() at System.Windows.Forms.Form.OnHandleCreated(EventArgs e) at System.Windows.Forms.Control.WmCreate(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ContainerControl.WndProc(Message& m) […]

IntPtr, SafeHandle e HandleRef – explicado

Sem me apontar para o MSDN, alguém poderia dar uma explicação clara e concisa do propósito de cada um deles e quando usá-los. (IntPtr, SafeHandle e HandleRef)

Win32: Como validar credenciais no Active Directory?

Foi perguntado e respondido pelo .NET , mas agora é hora de obter uma resposta para o código nativo do Win32: Como faço para validar um nome de usuário e senha do Windows? Eu fiz esta pergunta antes para código gerenciado . Agora é hora da solução nativa. É preciso apontar as armadilhas com algumas […]

Hospedando o tempo de execução do .NET em um programa Delphi

Eu estava olhando para usar algum código .NET de dentro de um programa Delphi, vou precisar fazer o meu programa extensível usando assemblies .net e funções predefinidas (eu já suporte DLLs regulares). Depois de pesquisar bastante on-line, encontrei o Managed-VCL , mas não estou pronto para pagar US $ 250 pelo que preciso, também encontrei […]

Diretamente enviando pressionamentos de tecla para outro processo via engate

Eu estou querendo saber, depois de mexer com todos os tipos de problemas com SendInput, SendKeys, PostMessage, SendMessage, SendNotifyMessage, keybd_event, etc e assim por diante. Para descobrir isso bem … tentar enviar uma input de teclado para outro processo que não seja de primeiro plano é bastante complicado e não é confiável. Eu tentei um […]

Substituindo WinMain () pela function main () em programas Win32

Eu procurei um pouco no StackOverflow e no Google, mas não consegui entender. Eu quero começar meu aplicativo com esse tipo de programação de usuário: int main() { Window App(“Test”, 640, 480); while(App.IsOpen()) { // Do the stuff } } Mas isso não é possível porque eu deveria passar o hInstance e hPrevInstance e outros […]