 |
|
 |
I've run into an odd problem using a release version of this DLL. I'm using the sample code from this page virtually verbatim to launch a simple application that writes a log entry to a text file and then exits. The application should be launched when a user logs in, just as in the sample. Debug versions of the DLL (compiled with VC++ 6) launch the external application just fine, but release versions of the same DLL don't. File names, registry entries, etc., are all identical. The compiler gives me no hints, warnings, or other messages when I build the release version, so I'm at a bit of a loss as to why this might occur. Has anyone else noticed this?
Thanks,
Aaron
|
|
|
|
 |
|
 |
Hello,
I built a Winlogon notification dll, which works fine on XP. The same DLL does not neem to work on Windows 2003. My dll is used by teh system, because I cannot overwrite it, however It does,t seem to be called at login time. I display a message box, write to a text file, start Noteped etc., none of them happens.
I tried logging in to teh Windows 2003 terminal Server in different ways:
1. from the console as administrator,
2. from an XP client using Remote Desktop Connection, as administrator
3. from an XP client using Remote Desktop Connection, as regular user
None of the above works. If you have any ideas, let me know.
Thanks,
Alpar
|
|
|
|
 |
|
 |
This is a non-article, surely?
There is nothing here that isn't already in the MSDN article here (URL correct at time of writing. If broken, search MSDN for "WLX_NOTIFICATION_INFO")
|
|
|
|
 |
|
 |
A winlogon notification dll does not seem to be allowed to work for more than two or three minutes. If you specify Asynchronous=0, winlogon will wait, but not infinite (then, the process can still work, but the shell is already being loaded). Unfortunately, I did not find any hints anywhere how to change this timeout. Is it possible? Or is there a workaround?
|
|
|
|
 |
|
 |
Just a guess, but the 'TermSrv' item in my XP system has an additional registry value called 'MaxWait' which is a DWORD value set to 600 decimal. If that is in seconds, we are talking about a 10 minute wait! Give it a try and let us know!
|
|
|
|
 |
|
 |
I have also noticed this entry, but adding it to a notification package's registry key does not change anything (I have already tried it). And why should MS implement such an option and not document it in contrast to all the other ones in MSDN *) ?
I believe that all additional entries in the notification package keys only store options to be read by the functions of the dll called by Winlogon. But nevertheless, this entry creates the impression that there is a mechanism that allows changing this timeout, probably in connection with the Gina-API, which also provides some system calls for Winlogon packages. But since I am not familiar with Gina programming, I cannot tell. MSDN says:
"If handling an event requires interacting with Winlogon, use the Winlogon Support Functions."
This sentence can by found here (with a link to numerous winlogon calls): http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/creating_a_winlogon_notification_package.asp
There is a timeout function defaulting to 2 minutes (exactly the same time like for Notification Event routines), but it only seems to apply to "dialogue boxes". Maybe creating a dialogue with a timeout of more than 2 minutes will force winlogon to wait, but not every winlogon dll creates dialogues.
*) Registry keys read by Winlogon are listed here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/registry_entries.asp
|
|
|
|
 |
|
 |
I had been reading the different values of various packages installed on my system, and suggested that for your testing. Sorry it did not work.
I have, in the past, found that not EVERYTHING a subsystem supports is always documented by MS, so sometimes it does help to snoop around and see what some of their modules are doing.
On the other hand, relying upon some 'undocumented' feature could get you into trouble with the next version of Windows too :->
|
|
|
|
 |
|
 |
I have my Win32 GUI application loading at Winlogon's startup message, but is has significantly slowed down my computer when it starting up. Anyone know a way to speed it up or is this something that can't be prevented?
Thanks ahead of time for any ideas!!!
Duncan Mabin
|
|
|
|
 |
|
 |
I was able to prevent my application from slowing down window's startup by setting the Asynchronous registry entry to 1 instead of 0 which this example shows. This specifies Winlogon to call you dll methods in a seperate thread.
|
|
|
|
 |
|
 |
Maybe I am missing something here, but can't your 'GUI App' have a shortcut in the 'Startup' folder of the start menu instead? It would still start as the user logs in to the system.
It seems good enough for SQL Server and Microsoft Office.
|
|
|
|
 |
|
 |
Hi,
Is there some full and proper documentation on the winlogon notification? I mean is there some official (or unofficial) manual on how to use it, what the parameters are, a full list of notifications available, etc?
Is there a way to perform an action when the system is set to hibernate or standby? I swear I've seen it before, but can't find ANYTHING now.
--
Synetech
|
|
|
|
 |
|
 |
See MSDN : SERVICE_CONTROL_POWEREVENT, HandlerEx, and WM_POWERBROADCAST
|
|
|
|
 |
|
 |
Yes. Search on MSDN for PWLX_NOTIFICATION_INFO
At the time of writing this is
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/event_handler_function_prototype.asp
Or, via breadcrumb navigation:
MSDN Home > MSDN Library > Win32 and COM Development > Security > Authentication > About Authentication > Winlogon and GINA > Winlogon Notification Packages > Winlogon Notification Package Reference
|
|
|
|
 |
|
 |
But Hibernate mode is not mentioned here.
Lock
Logoff
Logon
Shutdown
Unlock
...
But not Hibernate mode Start and Resume...
Anybody know how this events can be handled?
For example,
i have Skype and GoogleTalk messngers runnunig and i am Onnline.
When my machine goto Hibernate mode it still Appear Onnline for other users.
There is no such problem with MSN messnger.
Seems they know to handle Hibernate mode activated event and perform some action....
Or MSN Server polling working in another way and it shows User Offline when he is in Hibernate mode
Thanks,
Amit
|
|
|
|
 |
|
 |
Hibernate does a lock, so to listen for a restore from hibernation listen for the Unlock event.
|
|
|
|
 |
|
 |
Hello, All.
Is there some one who has expirience with subj?
I develop gina.dll.Well, all gina-functions are written as it's described in msdn. All is OK with Windows2000. But there are few glitches with WindowsXP.
So when user performs login action with my gina.dll then it's impossibly to get user accounts in MS messenger "sign in name" combo- box. But, when I use LOGON32_LOGON_INTERACTIVE instead LOGON32_LOGON_UNLOCK in LogonUser
(WlxLoggedOutSas implementing) MS messenger works correctly. But winlogon does not notify gina.dll about sc removing/inserting (needed option is turned on).
When I call original msgina- function WlxLoggedOnSas or WlxDisplayLockedNotice then data is not seen on that window when user press Ctrl-Alt-Del or try to unlock computer. There is text only like this "You are logged on as. Logon Date: 01.01.1601 02:00:00" or "Computer is locked. Only ___ or administrator can unlock." No user name?, no computer name. But (PWLX_MPR_NOTIFY_INFO) variable is initialised in WlxLoggedOutSas.
Any hints, suggestions and samples are welcome.
Thanks in advance...
Tyro
|
|
|
|
 |
|
 |
PWLX_NOTIFICATION_INFO is declared in Winwlx.h file. How i will going to use this in C# as i can't include header files in C#? I am to write a handler function for logon/logoff.
@!$h@
|
|
|
|
 |
|
 |
According to MSDN the use of .NET framework in a winlogon handler is "undefined" and highly discouraged. Let us know if it works. I've been playing around with this for a while in C++, I'd much rather use C#.
Thanks,
Mike Peck
|
|
|
|
 |
|
 |
Hello,
I must create a Windows service that starting automatic. When somebody loggin must appear in systray an icon with some functionalities.
This article is very interesnate to me but i dont know where to begin. Somebody can help me or if it has a simple example that the this does best one.
Thanks beforehand
Aitor
|
|
|
|
 |
|
 |
Create service to do the work. DON'T try to give service any user interface.
Create a SEPARATE program that does system tray stuff.
Add the system tray program to the 'start menu' startup group for 'all users'.
Then the system tray program will start for each user as he logs in.
The system service will contionue to run regardless of users logging in and out.
|
|
|
|
 |
|
 |
hi there
this procedure works fine for me, with only one drawback
i can't manage to keep the shell from starting before my process finished
first i thought it would be enough to wait for the called process to finish within the calling dll (specified in the notify-regkey)
but that didn't solve anything
anyone have any idea?
perhaps, using winlogon-notify isn't the best choice for my problem
i just have to start an application immediatly after logon and before shell
|
|
|
|
 |
|
 |
hii,
i'm developing a mfc dll program and i must make an event in my dll. how can i create an event for my dll using mfc shared dll and the event can be used in program that use this dll.
please help me if u have any idea, thx a lot.
regards,
-xins
|
|
|
|
 |
|
 |
Has anybody written a similar code in C# that will fire when the user logsoff . I am very new to C# programming. Thank you.
|
|
|
|
 |
|
 |
This code requires exporting a function, or more specifically a native function. C# is not compiled to native code (it's compiled to MSIL), so it's very difficult, if not impossible to export a native function. What would need to be done is a wrapper DLL written in C++, which loads the .NET runtime and calls your C# code... slightly non-trivial
HTH
-- Tom Spink, Über Geek.
|
|
|
|
 |
|
 |
Hi,
I'd like to create an application that will communicate with a server (socket), and if a positive message is returned, automatically logon as a specific user. (the the response be negative from the server, then the logon proces should be as per normal: user interactively logs on).
Is this possible using the code fragment decribed above? Any other ideas how i would accomplish this?
Kind regards
Andrew
|
|
|
|
 |