|
Davitor wrote: How can i know exe is kill from task manager?I want to show message when exe is kill
So you want to know whether your application is forcefully closed from some other applications such as Task manager right ?
And you want to show some messages at that time ?
Try to map WM_QUIT[^] message in your application. You can display a message in the OnQuit function.
Sorry! I missed the first line in OP
Davitor wrote: How can i know exe is kill from task manager?
Please see the other posts from Superman,Rajesh and Naveen!
Any way I am very glad with this board where people are miserly giving votes for a helpful answer while very competitive in down voting for the mistakes...
modified on Tuesday, May 12, 2009 2:37 AM
|
|
|
|
|
No that wont help. When we kill an exe ( Endprocess ) from the task mamanger, it calls TerminateProcess(). And your process will not get any clue...
|
|
|
|
|
When the user is killing your app with the task manager, he really does want your app to die *immediately*. Not to show any messages, not to execute one more line of code. Therefore, Windows does not allow you to do such a thing.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
If you can do it outside the app that's being killed, then you can use WMI[^].
IIRC, you need to consume[^] the __InstanceDeletionEvent[^] where the TargetInstance is the process[^] that you want to monitor.
I've done this in VBScript - it's relatively easy, but in C++ it's a bit more involved...
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
As said in some of the other posts, task manager will call TerminateProcess to kill the process.
But there is one thing I have noticed.
TerminateProcess takes an exit code as parameter.
You can retrieve this exit code using GetExitCodeProcess after the process is killed if you have the handle to the process.
And task manager always sets this to 1.
But again, any application can use TerminateProcess to kill a process and give the exit code as 1.
So, if you don't have a return 1; statement in your application entry function, you have a good chance of knowing that it was terminated using task manager.
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
As an addition to my previous answer - here's some VBScript that will wait until the next time a process called "myprocess.exe" is deleted:
' Get a reference to the WMI service
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
' Open a WMI query for __instancedeletionevents where the target instance is a Win32_Process and
' the target instance's name (i.e. the process name) is myprocess.exe
Set colMonitoredProcesses = objWMIService. _
ExecNotificationQuery("select * from __instancedeletionevent " & _
"within 1 where TargetInstance isa 'Win32_Process' and " & _
"TargetInstance.Name = 'myprocess.exe'")
' This call will complete the next time a process called myprocess.exe is deleted.
colMonitoredProcesses.NextEvent
The equivalent in C++ would be quite a bit longer, but would do the same thing.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Stuart Dootson wrote: The equivalent in C++ would be quite a bit manly, ...
Fixed that for ya.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Go on then, prove yourself a man by translating that bit of VBScript into C++
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
*starts typing furiously into the IDE*
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Rajesh R Subramanian wrote: *starts typing furiously into the IDE*
Men don't use IDEs.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Unless of course it is Klingon's IDE.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Rajesh R Subramanian wrote: Unless of course it is Klingon's IDE.
There is NOT such a thing, there is just...ehm.... Good Thread Hijacking!!!!!
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
If the user tries to close your program from the Task Manager (Applications tab) you can catch the WM_CLOSE message and handle it there.
I'm not sure that will work from the Processes tab, however.
Good luck.
Karl - WK5M
PP-ASEL-IA (N43CS)
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
im makeing a program but im haveing some issus with it
i dont know how to make (search for a word) and the program will find it form a database or something
if any one can help that would be great full
|
|
|
|
|
tell us what are the issues? and till where have you reached.
|
|
|
|
|
Wiland1234 wrote: m makeing a program but im haveing some issus with it
Vague (be specific!).
Wiland1234 wrote: i dont know how to make (search for a word) and the program will find it form a database or something
From a database or from 'something'? What is 'something'?
Definitely tooooo vague.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I am looking to send a signal to IDE channel 2
The senario.
I am branching out and looking at robotics and have a Mini ITX (GA-PCV2) running windows xp with a number of onboard systems however i am in need of additional communication means.
I am currently using the parralel port to control 8 relays (may try and improve that number with this artical) Parallel Port Pin Control Library (PaPiC)[^] however what i would like is to be able to send a signal via the IDE channels to control a further 16 relays or more if possible.
I currently only use a singal 3.5" hdd on the ide channel.
Their is two IDE ports/ plugs on the motherboard so it would be even better if i could run more the one relay control board but one thing at a time.
Any help would be appreciated and if someone feels this is on the wrong board please let me know.
Thank you in advance.
|
|
|
|
|
Can anybody tell me how can I erase a text in a transparent window
|
|
|
|
|
|
|
Thanks everybody. I had solved my problem 
|
|
|
|
|
Hi all.
First of all, I am new to MFC programming so thank you for your patience.
Here is my situation:
I have a Stereo camera which provides grayscale images. I can connect to the camera without any problems and I get a unsigned char pointer to the image.
I am now at the stage where I want to display this image in an MFC program. However I am very confused with how images are handled. I know how to load a bitmap image from a file and then display it but I just couldnt figure out how to display an image (referenced by a pointer) to the application. Help!
Sorry if this is a newbie question
Thank you and best regards,
Kit
|
|
|
|
|
You can to convert the frames received from the camera to bitmap classes or BITMAPINFO structs. for example, something like:
void CCameraView2::ProcessFrame(UINT8 *pData,UINT32,UINT8 Redraw)
{
UINT32 BytesPerDstPix;
if(m_pBitmapInfo)
{
BytesPerDstPix=3;
switch(m_ColorMode)
{
case CM_Y8 : memcpy(m_pImage,pData,(UINT32)m_XSize*(UINT32)m_YSize);
BytesPerDstPix=1;
break;
case CM_RAW8 : ConvertRawY8(m_XSize,m_YSize,pData,m_pImage,m_BayerPattern);
break;
case CM_RGB8 : ConvertRGB(m_XSize,m_YSize,pData,m_pImage);
break;
...
|
|
|
|
|
Hi Jonathan
Thanks for your reply. Unfortunately I am still confused on exactly how this works.
In various examples (from various sites), I have seen the bitmap class and the BITMAPINFO structs used with images loaded from file or the resources. However, I could not find anything that uses an image (referenced by a pointed) already in the memory and somehow (either through picture control or whatever means) onto the MFC dialog GUI. Do you have any examples? Or even if you could point me into the right direction, that would be awesome!
I hope this is clear.
Thank again for your help. Really appreciate it.
|
|
|
|
|
Hi,
I used the following comment in one of my programs:
BITMAPINFO *m_pBitmapInfo;
So say you have a certain type of camera, once you've set it up etc, the dimensions, the way the colours are defined, whether the image is in top-down or bottom-up format, black/white or colour, all this sort of stuff is likely to stay the same for each frame you receive from your camera.
You need this sort of information about the picture plus the actual data/bytes that make up the image.
My approach (but there may be others) sets up exactly what you would have if you'd loaded a .bmp file from disc with all the information but then combines it with the actual image data feom the camera to produce a complete bitmap or CBitmap object in MFC.
You could have a look at how the BITMAPINFO and BITMAPINFOHEADER structures are made up which might help.
|
|
|
|