webForumDet fria alternativet

Program hindrar Windows från att stängas av

C/C++

9 svar · 289 visningar · startad av trasher

Medlem sedan mars 200143 inlägg
Frågan#1

Mitt program gör så att windows inte stängs av ifall man försöker utan att först stänga applikationen.
Problemet återfinns både med Windows 2000 och Windows XP. Tidigare versioner har jag ej testat med.

Programmet är byggt i Borland C++Builder 6.0 om det spelar någon roll...

Medlem sedan feb. 20002 300 inlägg
#2

Min bil är blå. Varför startar den inte?

...

Du skulle inte kunna ge oss lite mer info om vad programmet gör och hur det är utformat?

Medlem sedan mars 200143 inlägg
#3

Programmet ligger i systray och övervakar en server.
Om jag inte är helt ute och cyklar så verkar det som om att programmet
inte hanterar WM_CLOSE meddelandet som Windows skickar...

Medlem sedan juni 20034 013 inlägg
#4

Då får du väl hantera WM_CLOSE då... Bara att anropa PostQuitMessage.

Medlem sedan mars 200143 inlägg
#5

Jo jag försökte göra detta men lyckades inte...
Du kanske kan ge mig ett litet exempel på hur det ska gå till?

Medlem sedan juni 20034 013 inlägg
#6

Du har alltså aldrig gjort ett windowsprogram förut? Tja, då blir det ju lite värre... I allmänhet har man en switch-sats i WindowProcedure-funktion. Om du hittar den så är det bara att lägga till WM_CLOSE. Det ser ut ungefär så här:

switch (msg)
{
  case WM_CREATE:
    // kod här:
}

Där lägger du till en case WM_CLOSE: och sedan PostQuitMessage(0); på raden under följt av break;

Fast det kanske inte är säkert att det ser ut, för Borland C++ Builder är väl till för att man ska slippa skriva koden själv? Jag har aldrig använt Borland, så jag vet inte. Men det låter konstigt att WM_CLOSE inte skulle vara med om Borland skriver koden själv.

Medlem sedan mars 200143 inlägg
#7

Som jag förstår det så hanterar c++builder det själv och man får alldrig
se WindowProc funktionen. Testade att lägga till en ApplicationEvent komponent
och vid OnMessage göra precis som du skrev men det ger inget resultat...

Medlem sedan juni 20034 013 inlägg
#8

Aha, då förstår jag. Ditt problem är alltså Borland-specifikt. Då kan jag tyvärr inte hjälpa dig, för jag kan bara programmera på vanligt vis.

Medlem sedan mars 200143 inlägg
#9

Ok, men tack ändå...

Medlem sedan maj 20021 466 inlägg
#10

Du har ett huvudfönster. Har du kollat vad som händer i OnClose-händelsen? Körs den? I så fall kan du prova att sätta Action = caFree. Om inte det funkar har du ju alltid Application->Terminate();.

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)