Okay, well I'd be willing to write a library that I can implement from VB (i.e. a C DLL that I can call from VB 6) in another language. Any ideas on how I could do that (sample code)? Thanks.
Main Topics
Browse All TopicsI want to implement an interrupt handler for interrupt 0x19 to catch Ctrl+Alt+Del. I believe Ctrl+Alt+Del generates an interrupt 0x19, which is not routed as a keyboard message. Can anyone come up with some sample code on how I might be able to intercept and block that message? I have tried to use hooks but since it doesn't generate a normal keyboard message, these efforts have been in vain. I have already disabled all the buttons on the Ctrl+Alt+Del screen, but now I want to disable bringing up the screen altogether. I know most people believe it isn't possible to do this, but there is a product that I can purchase to do it, but it costs $300 (http://www.meliorasoft.co
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
You have to replace the MSGINA.DLL:
http://www.microsoft.com/w
try this:
Dim pay as Integer
pay = CInt(InputBox("How much are you paid in (money units) per hour?"))
Dim days as Integer
days = CInt(InputBox("Approximate
If pay * days * 24 > 300 then MsgBox "It would be more cost effective to just buy the meliorasoft.com product"
Ha ha. Come on, not trying to a d*ck, but give me something useful or nothing at all cjard. :)
I'm not spending days and days on this, I've looked into, can't do it, this method shows some promise and if someone can help me get it done quickly, great, if not, obviously I'll have to break down and buy the component.
Vinnyd79, thanks for posting something useful and trying to help. I'm checking that out and will post back. :)
I found this a while back.
Remember to put it all back when your application ends.
There is an undocumented way to disable the Ctrl Alt Del key sequence on Windows NT/2000/XP using the registry.
The key, 'HKEY_LOCAL_MACHINE\SOFTWA
I've found this the easiest way to kill the Ctrl-Alt-Del sequence.
Again, here are the keys needed to be set:
HKEY_LOCAL_MACHINE\SOFTWAR
HKEY_LOCAL_MACHINE\SOFTWAR
HKEY_LOCAL_MACHINE\SOFTWAR
Found this one also buried in some of my old code.
Public Declare Function SystemParametersInfo2 Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
Public Const SPI_SCREENSAVERRUNNING = 97
Public Sub CtrlAltDel_Disable()
Dim syssend As Long
syssend& = SystemParametersInfo2(SPI_
End Sub
Public Sub CtrlAltDel_Enable()
Dim syssend As Long
syssend& = SystemParametersInfo2(SPI_
End Sub
My software has user rights that an admin can define. So when the user logs into my software, it applies the Windows rights assigned by the admin for that user (edit the registry, then run GPUPDATE /FORCE, reset registry upon exiting of application or on error). This way I can say that user A cannot access the desktop and cannot shutdown the pc while user B can while running my program. So in this case, I need to say that user A cannot press Ctrl+Alt+Del. The logins are handled by my application, not through Windows. I think coming up with a library (in any language) that can intercept interrupt 0x19 and can be called somehow from my VB6 app is the only way. Any one else have any ideas?
I know you can write one in C, I was looking a pGina (http://pgina.xpasystems.c
BenClark, if you can do that for me I would be eternally grateful and give you as many points as EE will allow! :)
Here's the detailed spec of what I'm looking to do:
I have a program that has it's own user login functionality. The user logs into Windows, then runs my program. When they log into my program, I assign various Windows rights to that user. So, an Admin logs in and sets up UserA. UserA has rights X, Y, and Z in my program and is not allowed to shutdown the pc and is not allowed to press Ctrl+Alt+Del. Now, when UserA logs in, it backs up the current registry entries, edits the registry (or other necessary functions) to block access to the Shutdown option and the Ctrl+Alt+Del option, then runs GPUPDATE /FORCE to apply those new settings from the registry. This works great. However, for 2000/XP I cannot disable the pressing of Ctrl+Alt+Del. So I need a GINA.DLL file that I can disable/enable pressing of Ctrl+Alt+Del on the fly. I also need to be able to install the new GINA.DLL file as part of my program's installation (I'm using Wise For Windows Installer - latest version) without screwing up anything that they might already be doing with their network logins (some might be running Novell, some might be using a domain, some might just be single stations, or simple peer-to-peer).
Thanks for your help thus far! :->
CodeConquerer,
I just emailed you some source code to take a look at.
I can defenitely do this. No problem. Like I said it is really easy.
The only catch is I can't work on it at work. I don't have the tools here
and they won't let me install them.
I do have my laptop so I can work on it during lunch.
I can defenitly work on it when I get home.
It may take a couple of days to get you up and running.
As soon as I have this ironed out and have a definite usable solution I will make sure to post the exact instructions on what to do and how here. Thanks to everyone for all your help. I know that if we can figure this out it will help a lot of people out there. I've run across countless posts from various places with people looking to do exactly this with no solution.
There is a program from http://www.phord.com/keybl
FINALLY!!! I'VE GOT IT!!!! YAY YAY. The following link will let you download a free dll and example and source code to disable it on the fly. Here you go everyone, enjoy!!
http://www.codeproject.com
Once you have the DLL in your project's path or in WIndows\System32, just call it using:
<CODE SNIPPET>
Private Declare Function CtrlAltDel_Enable_Disable Lib "WinLockDll.dll" (ByVal bEnableDisable As Boolean) As Integer
Private Sub Command1_Click()
CtrlAltDel_Enable_Disable False '**** Disable use of Ctrl+Alt+Del
End Sub
Private Sub Command2_Click()
CtrlAltDel_Enable_Disable True '**** Enable use of Ctrl+Alt+Del
End Sub
</CODE SNIPPET>
the correct url is:
http://www.codeproject.
I
AW
Sorry, it should have been:
http://www.codeprojec
AW
Business Accounts
Answer for Membership
by: Arthur_WoodPosted on 2005-06-02 at 09:34:45ID: 14132312
as far as I am aware, it is not possible to write an interupt handler in VB6. and the product you refer to was probably written in either ASSEMBLER, or at the very least possibly C but certainly NOT VB.
Interupt handlers operate MUCH TOO close to the operating syste/hardware.
AW