|
Where does one find "gethandleinformation"?
The Windows API "GetHandleInformation" doesn't return much useful information.
*Edit* Keep in mind, being a C++ board - case-sensitivity is everything
-- modified at 19:02 Monday 12th February, 2007
|
|
|
|
|
yes is GetHandleInformation();
well im trying to develope a handle viewer like the one from sysinternals.com
im realy newbie with c++, i dont know even when you say that you search in windows API and you found not much, i dont know what you talking about, (i know what is the windows API but i dont see where you searching )
well i dont know even if im in the good path to do my prog... most people dont know what im looking for
but well i will still looking for it... i just feel very dificult to find documentation about the stuff im looking for, doesn't look like other languages thats easy to find what we want... everything is complex and works arround a lot of details, like a big mess C# c++ .NEt framework, i don't know im lost
i just want something that could read a process and his handle objects (events,file,keys, semaphore)... MSDN doesn't help to much for someone like me...
**EDIT** and i apreciate your help a lot, realy thanks
|
|
|
|
|
Everything documented about Windows APIs can be found in the Platform SDK.
You can download the latest here: Microsoft ® Windows Server® 2003 R2 Platform SDK[^]
This is for all versions of Windows through Server 2003 R2.
From all the replies you've received here so far, I think you have all the APIs you need
except something to eumerate the handles owned by a process. I'm not sure how you'd do that.
Others may reply here. Also search articles here on Code Project. Google is great as well.
It's not a simple project for a newbie I imagine you have some research to do.
Mark
|
|
|
|
|
van-ux wrote: well im trying to develope a handle viewer like the one from sysinternals.com
Last I looked, that utility used a low-level driver to obtain such information.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
thanks guys i'll have a look at SDK platform to see if it could help me more...
i'll check usuel about the low-level driver
thanks guys
|
|
|
|
|
Hello,
I was wondering if the following was possible ?
I have a static text control in a dialog application. I also have an
array which contains about 5 items. I would like the text control to
display the contents of this array and then have a button which would
move to next position into the array and thus the static text control
would display something different ?
How could achieve this? I'm using Visual Studio 6.0 and I'm quite new
to MFC
Many Thanks.
|
|
|
|
|
Lewis01 wrote: I have a static text control...
Do you also have a CStatic member variable?
Lewis01 wrote: I would like the text control to
display...
Use SetWindowText() for this.
Lewis01 wrote: ...a button which would...
Do you have a ON_BN_CLICKED handler for the button?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
For show text you can use of SetWindowText with CStatic control or use of a CEdit
|
|
|
|
|
After some sloppy refactoring I found something like this in my code:
<br />
class FooBar;<br />
<br />
void foo(const FooBar* const pBar)<br />
{<br />
<br />
delete pBar;<br />
} <br />
So far, so bad. What surprised me, was the fact that this code compiled without any error or warning. I was told, that this compiles also in GCC.
This also compiles though a non-const member function is called:
<br />
void foo(const FooBar* const pBar)<br />
{<br />
pBar->~FooBar();<br />
} <br />
Can you tell me why these snippets work (or at least compile)?
thanks,
Norbert
|
|
|
|
|
You're not changing pBar or what it points to, are you?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I'm surprised too about that behavior: technically the method doesn't change neither the pointer value nor the object itself, but substantially it makes a big change to both. I think it may be a good candidate to subtle bugs.
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.
|
|
|
|
|
|
Thanks for your replies and especially for the links.
Norbert
|
|
|
|
|
Is it possible to parse/send input data from a dialog form editctrl to an existing excel sheet/form (xls) cell?
Maybe this can be done through storing the formdata like in an csv-file or something that later can be imported to the right cells and rows in an excel (xls) sheet?
I've searched the net for solutions, but it seems like this is hard to do.. but it must be possible in some way. (VC++ 6.0)
anyone?
|
|
|
|
|
Yes, you can do this quite easly using Excel Automation.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I am aware of how to change the background color of the entire dialog in VS 6.0 (SetDialogBkColor(RGB(192,202,202) in InitInstance), but this does not seem to work in a dialog based project created in .NET
Any help on how to accomplish this in .NET would be apperciated.
Thanks!
|
|
|
|
|
overload OnEraseBkground()
|
|
|
|
|
do I just do a 'SetDialogBkColor(RGB(192,202,202),RGB(0,0,0))' inside 'OnEraseBkgnd'?
|
|
|
|
|
You can set the background brush in the window class or handle WM_ERASEBKGND. For the latter,
you need to draw the background yourself, using whatever method you want.
SetDialogBkColor is an obsolete method.
|
|
|
|
|
Ok, I handle the OnEraseBkgnd(CDC* pDC) and put the following in there:
CRect Rect;
GetClientRect(&Rect);
CBrush Bursh(RGB(192,202,202));
pDC->FillRect(&Rect,&Bursh);
return TRUE;
This seems to change the background, but my static text and edit boxes are still grey? Am I missing something?
Thanks
|
|
|
|
|
if you want the static controls backgrounds to be transparent, overload WM_CTLCOLOR. here a cool effect :
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_STATIC) {
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(192, 192, 192));
hbr = static_cast<HBRUSH>(GetStockObject(NULL_BRUSH));
}
return hbr;
}
BOOL CMyDlg::OnEraseBkgnd(CDC* pDC) {
CRect rect;
GetClientRect(&rect);
COLORREF c1 = RGB(64, 0, 64);
COLORREF c2 = RGB(0, 128, 128);
for(int i = 0; i < rect.Height(); i++) {
int r, g, b;
r = GetRValue(c1) + (GetRValue(c2) - GetRValue(c1)) * i / rect.Height();
g = GetGValue(c1) + (GetGValue(c2) - GetGValue(c1)) * i / rect.Height();
b = GetBValue(c1) + (GetBValue(c2) - GetBValue(c1)) * i / rect.Height();
pDC->FillSolidRect(0, i, rect.Width(), 1, RGB(r, g, b));
}
return TRUE;
}
|
|
|
|
|
Thanks all for the help, it worked
toxcct, thanks for the cool sample
|
|
|
|
|
I like your OnEraseBkgnd() implementation!
It has now become the background to my little MFCTester project I keep around for testing code
before I post it here.
I hope there's no royalties
Mark
|
|
|
|
|
hehe, :-> i know some would have liked it...
enjoy, it's perfectly free
BTW, i borrowed the shading effect to Nish on his personal blog
|
|
|
|
|
arunkk1 wrote: but my static text and edit boxes are still grey? Am I missing something?
Yes.
To extend toxcct's reply for the edit boxes
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(192, 192, 192));
hbr = static_cast(GetStockObject(NULL_BRUSH));
}
else if (nCtlColor == CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(...,...,...));
pDC->SetBkColor(RGB(...,...,...));
hbr = (...some brush...);
}
return hbr;
}
|
|
|
|