G
Guest
Hi,
Im writing a widnows service and i want the service to interact with the
desktop. However, I do not want to go to control
panel->services->properties->logon and then selec the check box "Allow
service to interact with desktop". How can i do this in code. I know this
could be done in VC6. How do i do this in .NET.
I found the following code on the web and it sets the flag right but my
installer auto starts the service the service runs and the check box is
selected but when i try to open a messageboxes the service throws an exception
"It is invalid to show a modal dialog or form when the application is not
running in UserInteractive mode. Specify the ServiceNotification or
DefaultDesktopOnly style to display a notification from a service
application."
--CODE--
Microsoft.Win32.RegistryKey ckey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Services\service1", true);
if(ckey != null)
{
if(ckey.GetValue("Type") != null)
{
ckey.SetValue("Type", ((int)ckey.GetValue("Type") | 256));
}
}
--CODE--
Also i get the following error when trying to enumerate all shellwindows
"COM object with CLSID {9BA05972-F6A8-11CF-A442-00A0C90A8F39} is either not
valid or not registered."
What could be the problem??
--
Regards,
M i s b a h A r e f i n
..NET Programmer
En Pointe Technologies
Reply to : (e-mail address removed)
www.enpointe.com
Im writing a widnows service and i want the service to interact with the
desktop. However, I do not want to go to control
panel->services->properties->logon and then selec the check box "Allow
service to interact with desktop". How can i do this in code. I know this
could be done in VC6. How do i do this in .NET.
I found the following code on the web and it sets the flag right but my
installer auto starts the service the service runs and the check box is
selected but when i try to open a messageboxes the service throws an exception
"It is invalid to show a modal dialog or form when the application is not
running in UserInteractive mode. Specify the ServiceNotification or
DefaultDesktopOnly style to display a notification from a service
application."
--CODE--
Microsoft.Win32.RegistryKey ckey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Services\service1", true);
if(ckey != null)
{
if(ckey.GetValue("Type") != null)
{
ckey.SetValue("Type", ((int)ckey.GetValue("Type") | 256));
}
}
--CODE--
Also i get the following error when trying to enumerate all shellwindows
"COM object with CLSID {9BA05972-F6A8-11CF-A442-00A0C90A8F39} is either not
valid or not registered."
What could be the problem??
--
Regards,
M i s b a h A r e f i n
..NET Programmer
En Pointe Technologies
Reply to : (e-mail address removed)
www.enpointe.com