Äkta fokus på programmet

.NET

4 svar · 238 visningar · startad av mott

Medlem sedan juni 20001 356 inlägg
Trådstart#1

Jag gör ett program där jag vill att det ska få äkta fokus, TOTAL uppmärksamhet och ploppa upp vad användaren än gör (man kan givetvis ställa in det)...

Hur gör jag? Försöker och försöker men programmet snappar inte åt sig fokus... :l

Medlem sedan juli 20011 304 inlägg
#2

Då får du lov att använda API.
Typ:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
'API -----------------------------
Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Global Const SWP_NOMOVE = 2
Global Const SWP_NOSIZE = 1
Global Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Global Const HWND_TOPMOST = -1
Global Const HWND_NOTOPMOST = -2

'---------------------------------

Och sen där du vill sätta fokus:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
res& = SetWindowPos(Formnamnet.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) ' Gör överst
'Sen måste vi släppa fokua, annars kan vi inte göra nåt annat =)
res& = SetWindowPos(Formnamnet.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS) 'Lämna tillbaks

Medlem sedan feb. 200222 inlägg
#3

Jag är ju självlärd och så så jag vet inte om jag gör "rätt" men kan man inte sätta en interval på typ ..1...och skriva form1.setfocus..????bara undrar..

Medlem sedan dec. 19991 072 inlägg
#4

Att sätta en timer med intervall på "1" är prestandamässigt fruktansvärt dumt och tidsödande.

Sen får inte fönstret "äkta" fokus, dvs. kan fortfarande finnas fönster som lägger sig över.

Med ett API-anrop kan du däremot tvinga fönstret att lägga sig över allt annat, program, spel osv.

Detta görs även bara med 1 kommando som körs en gång.

Om du har tänkt på hur "sök-rutan" i Anteckningar fungerar så ser du att den ligger över själva text-rutan även om det är text-rutan som har fokus där du kan skriva. Det åstakommer du tex. inte utan API.

Medlem sedan feb. 200222 inlägg
#5

Tack för förklaringen!!

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)