C# SetsystemTime (Win API)
-
26-09-2019 - |
Pergunta
Preciso de restrições para mudanças de tempo provenientes de diferentes fontes. A melhor maneira, como eu acho, é conectar a função WinApi SetsystemTime (e talvez o SetlocalTime). Tentei conectar isso usando a Biblioteca Easyhook com injeção em todos os processos de execução, de propriedade do usuário atual do sistema. Mas não teve efeito. Como eu posso fazer isso?
Solução 2
O problema estava no meu próprio sistema. Eu uso o Windows 7 e quando eu altero o tempo através da caixa de diálogo de configuração de relógio padrão RunDll.exe Process RunS e ele inicia o processo dllHost.exe, que chama o SetlocalTime. Eu o testei em outros 2 PCs (Winxp & Win7), mas há o próprio SetlocalTime.
Outras dicas
Qualquer motivo que você não possa simplesmente invocar SetSystemTime
como mostrado aqui?
Observe que você precisa de um privilégio elevado para fazer isso:
Um aplicativo deve ter privilégio no tempo do sistema (o privilégio SE_SYSTETIME_NAME) para que essa função seja bem-sucedida.