SC_MONITORPOWER

Wohl das A & O in der Windows-Programmierung

Moderatoren: crack, Marwin, Krüsty

Antworten
Kreisquadratur
Newbie
Beiträge: 1
Registriert: Dienstag 7. Oktober 2003, 15:32

Beitrag von Kreisquadratur » Dienstag 7. Oktober 2003, 15:42

Ich habe das gleiche Programm schon unter C# geschrieben. Es klappt. Jedoch brauch selbst so ein kleines Programm mehrere Sekunden um das .NET zu laden.
Deshalb habe ich mich entschlossen es in ASM zu schreiben. Komischerweise passiert beim ausführen genau nichts.
Ich denke es liegt wohl am falschen Handle, aber welches muss ich nehmen? In C# habe ich einfach this.handle genommen. :(

Code: Alles auswählen

	.386
	.model flat, stdcall
	option casemap :none

	include ..\include\windows.inc;WM_SYSCOMMAND, SC_MONITORPOWER
	include ..\include\user32.inc;SendMessage
	include ..\include\kernel32.inc;ExitProcess

	includelib ..\lib\user32.lib;SendMessage
	includelib ..\lib\kernel32.lib;ExitProcess


.data?
	hInstance HINSTANCE ?

.code

start:

	invoke GetModuleHandle, 0
	mov hInstance, eax
	invoke SendMessage, hInstance, WM_SYSCOMMAND, SC_MONITORPOWER, 2
	invoke ExitProcess, 0

end start

Benutzeravatar
Marwin
Moderator
Beiträge: 307
Registriert: Donnerstag 8. Mai 2003, 21:19
Wohnort: Seelow, Deutschland
Kontaktdaten:

Beitrag von Marwin » Dienstag 7. Oktober 2003, 15:46

Hallo Kreisquadratur,

Ich kenne mich in C# nicht besonders gut aus, daher meine Frage: Welches Handle meinst du?

Grüße, Marwin

CDW
Alter Hase
Beiträge: 62
Registriert: Donnerstag 2. Oktober 2003, 17:17
Kontaktdaten:

Beitrag von CDW » Dienstag 7. Oktober 2003, 19:46

hm, versuchs mal damit:

Code: Alles auswählen

invoke SendMessage, HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2
(der Code von dir klappt bei mir auch net, aber dieser hier schon...)

Antworten