Como desativar o monitor usando os pontos de entrada de janelas do DLL?

0

Até onde você sabe, podemos chamar os pontos de entrada do windows7 DLL via rundll32 <dll-file>,<Entry point> na linha de comando. Por exemplo, eu bloqueio minha tela usando o comando abaixo na Linha de Comando do Windows :

rundll32.exe user32.dll,LockWorkStation

Agora, quero saber se há alguma maneira de desligar meu monitor dessa maneira? i.e. Existe algum Ponto de Entrada que eu possa chamá-lo no CMD e desligar meu monitor?

    
por Jean 09.03.2015 / 13:48

2 respostas

2

Eu não vejo nada para conseguir isso no win7 ou posterior usando o rundll32, mas você pode usar um aplicativo externo chamado nircmd .

Para desativar o monitor:

nircmd.exe monitor off

Para ativar o monitor:

nircmd.exe monitor on

Você pode colocar isso em um arquivo bat e fazer um atalho dele.
Você também pode usar uma ferramenta chamada WIZMO e usar isso na linha de comando:

wizmo.exe monoff
    
por 09.03.2015 / 14:14
1

Na linha de comando / ou como arquivo .bat / .cmd / .com: powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)

Como comando direto do powershell, você pode descartar a diretiva de escapes e powershell (e salvar também como arquivo ps1). (Add-Type '[DllImport("user32.dll")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)

É importante notar que isso parece deixar um processo para sempre em execução, que você precisa se certificar de que irá matar mais tarde ou algo assim. Eu estou trabalhando nessa questão agora, que é como eu tropecei aqui. Se eu corrigir, vou deixar uma resposta.

    
por 30.10.2018 / 20:35