|
|
Which API do you use to determine the privilege level(Admin/Power user/restricted user/quest) of the current user? I want my application to abort if the user is not an administrator(on Win9x/2k/xp)... Thanks.
|
|
|
|
|
|
VC++6.0 says IsUserAnAdmin is undeclared identifier, I need to upgrade my sdk?
|
|
|
|
|
|
I installed the newest plateform sdk and included "shlobj.h", still undeclared identifier... what else am I missing?
|
|
|
|
|
Hello Abin
I have VC++ 2003 and I chk'd my shlobj.h. I dont have it either
The only way to use this function now is to use LoadLibrary and GetProcAddr.
For the fucntion prototype go to this URL :-
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/isuseranadmin.asp
Thanks,
Nish
p.s. Sorry about the earlier answers. I never expected the dumb PSDK to be so much out of date
Author of the romantic comedy
Summer Love and Some more Cricket [New Win]
Review by Shog9
Click here for review[NW]
|
|
|
|
|
Ok I'll try that, thanks for your help.
|
|
|
|
|
Abin
Try this code out :-
#include <windows.h>
#include <tchar.h>
typedef BOOL (*ISUSERADMIN)();
int __stdcall _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR, int)
{
HINSTANCE hInst;
ISUSERADMIN proc;
hInst = LoadLibrary("shell32.dll");
if(hInst)
{
proc = (ISUSERADMIN) GetProcAddress(hInst, "IsUserAnAdmin");
if(proc)
{
if(proc())
{
MessageBox(NULL,"Admin user","",MB_OK);
}
else
{
MessageBox(NULL,"Non-Admin user","",MB_OK);
}
}
}
return 0;
}
And sorry once again for initially confusing you
Nish
Author of the romantic comedy
Summer Love and Some more Cricket [New Win]
Review by Shog9
Click here for review[NW]
|
|
|
|
|
If you know user possible membership... NetUserGetGroups/NetGroupGetUsers.
If you don't, then ... do whatever, and if it failes -> no privs.
|
|
|
|
|
Hi,
I need my appl generates boot disc (Win98 alike), no matter what OS it's running into. I tried to copy the files from a Win98 disc boot to some folder and make my appl to copy them to the disc. But the disc doesn't boot
Please, can anybody help?
Thank u very much,
Dirso
|
|
|
|
|
Depends on what of several types of boot disks you want to create. I found some stuff at this place, but I haven't tried anything it mentions, why I shouldn't be flamed if anything breaks.
|
|
|
|
|
Hi,
I found something in the place u told me. But it depends on the OS used and i need to call the "system" function and this is not too good, but it works! If u find out something about creating boot discs without "system" calling, i'd be very grateful!!!
Thank u very much,
Dirso.
|
|
|
|
|
I am looking into designing a small application to
supplement my research work on another, larger, project.
The larger project is being used in a clinical environment
and needs to have some security.
What I need to know is:
Can you hook a process and pause it an instant after it
executes?
For example - say I double-click on Internet explorer (or some other app), can I have a system-wide hook that catches the initialization of the app and then have it pause execution
of Internet explorer (or any other app) while some processing
is carried out.
When the processing is finished, is it possible to either terminate
IE or continue with its execution?
Is this a feasible idea?
TIA.
|
|
|
|
|
Write a shell execute extension (see IShellExecuteHook in MSDN). The shell will call your extension before it runs a program. When you get called, run the program yourself but make the thread suspended initially.
This doesn't work for all app launches though, only launches done via the shell (Explorer)
--Mike--
THERE IS NO THERE IS NO BUT THERE IS
MAGIC PIXIE DUST BUSINESS GENIE CODE PROJECT
Homepage | RightClick-Encrypt | 1ClickPicGrabber
"Which comes first, the bug or the stress?" -- Chris Maunder
|
|
|
|
|
Not sure I follow exactly...
Are you saying that I need to add the hook to the app
that I want to suspend?
Also, I presume this will only work if the executable is
double-clicked from Windows Explorer?
Is there no way to do this with something like a TSR that
will watch for a particular process and catch that running
process and halt it?
|
|
|
|
|
Take a look at this article[^]. Hook the functions CreateProcessA and CreateProcessW (in KERNEL32.DLL) for the whole system. When your functions get called, perform your processing, then call the default function. I think it should work well enough.
Chris Richardson
You can stash and you can seize
In dreams begin, responsibilities U2 - Acrobat[^]
Stop being PC and accounting for everyone and his momma's timeframe. Just enjoy your - Rohit Sinha in the content-challenged thread
|
|
|
|
|
I am having a very difficult time understanding exactly how regions and region handles work. I noticed in MSDN:
"After a successful call to SetWindowRgn, the system owns the region specified by the region handle hRgn. The system does not make a copy of the region. Thus, you should not make any further function calls with this region handle. In particular, do not close this region handle."
I am wondering if this is the source of my problem. I have created an owner drawn button which is round and I have found some code to scan the bmp and make a region out of it using a transparent color setting. The button loads fine but minimizing the window and restoring it brings up the color that is supposed to be transparent.
Here is the code for my WM_DRAWITEM message:
case WM_DRAWITEM:
switch(pdis->CtlID)
{
case ID_BUTTON:
hdcMem = CreateCompatibleDC(pdis->hDC);
SelectObject(hdcMem, hBitmapMin);
SetWindowRgn(hwndMinimize, hMinRgn, TRUE);
BitBlt(pdis->hDC, 0, 0, 19, 19, hdcMem, 0, 0, SRCCOPY);
DeleteDC(hdcMem);
break;
...
}
The same also happens if I click on the button but...I realized that if I omit the DeleteDC call then the button isn't altered by my clicking on it, only when minimizing. Another interesting fact is that despite the button being redrawn square the hotspot still remains in the original circle which means that the region I assigned is still there correct? But then why would the window be painted outside of it's region? Can anyone see any stupid mistakes I might be making? The code works perfect on the main application window, it's just giving me hell for my buttons. Thanks...?
P.S. The source for the region creation is here
|
|
|
|
|
(Whoops the network disapeared, so I'll try this again)
I have been ask to create an installation program, with InstallShield 2.11, that automaticaly uninstalls previous version if any. Does any one know how to do this?
Note: I know where the UninstallString is located on my system, but different version of Windows often use different locations to store same information.
Trust in the code Luke. Yea right!
|
|
|
|
|
I'm trying to get the RECT of the taskbar by calling SHAppBarMessage with the ABM_GETTASKBARPOS parameter from my NT Service. Sometimes the correct RECT is returned and sometimes only zeroes are returned. Does anyone know why? And if so, how can I always get the right RECT?
Thanks
|
|
|
|
|
This is definitely just a guess, but is your NT service configured to interact with the desktop? Maybe it has to be that way to properly access the task bar?
~Steve
|
|
|
|
|
The service is definately configured that way since i'm able to place icons in the system tray. It just doesn't make sense that I can't get the RECT of the taskbar.
--- time passes ---
I figured out an alternate way of doing it.
RECT tbRect;
GetWindowRect(FindWindow("Shell_TrayWnd",NULL),&tbRect);
This seems to do the same as the SHAppBarMessage call.
|
|
|
|
|
I have an SDI app in MFC that, when started, I want the window to remain hidden. Currently I am calling m_pMainWnd->ShowWindow(SW_HIDE); from the MySDIApp::InitInstance() function.
What currently happens is, the window is displayed for a split second, then goes away as I'd like it to (from there everything is working correctly). How do I avoid this flash of the window? Is there something I need to do before the InitInstance is called, and if so, how do I do that?
Thanks!!!
~Steve
|
|
|
|
|
|
Perfect! Thanks!!!
~Steve
|
|
|
|