|
Hi, i have a windows service which is executing EnumWindowCallBack as shown in the following link
Capturing the Running IE Instances in C#[^]
The service is running as LocalSystem account and is interacting with Desktop. The service is writing all URLS opened by me in a text file. It is working fine for me BUT when i switch as a different XP user, and open any IE window, The service can not detect this new IE window.
My aim is to get running instances of IE for all users logged in.
Can some one help. I can send the code if any body is willing to help me.
Please help me
|
|
|
|
|
Are you sure that the service is running when you log in as another user?
If the service is running under the LocalSystem account it does not make sense that it would only work for your user account.
|
|
|
|
|
Hi Scott
Yes when i switch as another user (xp limited user), the service is still running. I cannot stop it ie. Access is denied. But when i open an internet explorer window, my service can not detect it and the log is still showing the same number of windows as opened by the admin user.
I want this service to detect all windows for all users.
Thanks
|
|
|
|
|
I looked it up and it seems that an interactive service can only interact with 1 user desktop.
You will probably have to find another way of doing this.
|
|
|
|
|
My guest, your program or the service the program depend upon is running inactive or a mode that is blocked by windows log in user security service.
You could try if the program will work on both administrative users. Sir.Dre
|
|
|
|
|
Hi SirDre
If i make everyone an admin user, then they can kill my process, which i dont want. Actually this is a parental control system. Only the parents should be able to stop the service not the children.
Thanks.
|
|
|
|
|
Ihtesham wrote: Actually this is a parental control system.
OK, what are you trying to control with this? Are you trying to prevent IE from running? Log all the URL's that are in each IE window? What?
From what I'm assuming you're doing so far, you're going about it the wrong way. But, I'll leave confirming that up to you before I way anything.
|
|
|
|
|
Hello Dave..
Basically parental control system is a service (PCS.exe) which will run under LocalSystem account and interacting with desktop. When other users (children) log in to the computer as limited users, PCS will do the following jobs:
1. Key logging -- already implemented
2. Screenshots logging --
3. Restrict some applications -- for example sol.exe or calc.exe. My Service read these program names from xml file and will kill the process if found open. System.Diagnostic.Process works very well here.
4. Restrict websites -- This is giving me hard time. Basically my service can find internet explorer windows and URLS being visited very well in current user session. But when i switch the user, the service cannot see any explorer window.
PROBLEM:
The main problem right now is.
If PCS.exe is running under local system account, if i want to kill a process for user A, it says Access Denied. If i run PCS.exe under user account A, it cannot interact with desktop. How can i make it able to kill a process for not only current user but also for any other user who is logged in.
I hope i have explained what i am doing or wish to do.
|
|
|
|
|
Ihtesham wrote: 4. Restrict websites -- This is giving me hard time. Basically my service can find internet explorer windows and URLS being visited very well in current user session. But when i switch the user, the service cannot see any explorer window.
That's because this better handled by a proxy or firewall. You don't need to delve into every single users session to find every IE browser window. Besides, youre technique will only work with IE. It will not work with any other browser.
Ihtesham wrote: 3. Restrict some applications -- for example sol.exe or calc.exe. My Service read these program names from xml file and will kill the process if found open. System.Diagnostic.Process works very well here.
Better handled by Group Policy.
Ihtesham wrote: 2. Screenshots logging --
Useless. You can take snapshots all day long and still miss what you need to see.
Ihtesham wrote: 1. Key logging -- already implemented
And illegal is the U.S if used on people who are not your kids.
|
|
|
|
|
Only one user can be logged in at a time, so the service can only work for the currently logged on user. Maybe you have to reset something when a user logon event is detected..45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hi,
I created a trial license for our application. I have some doubts in my concepts:
1. i used in my concept , get system time using DateTime.Now when installed our application. For example
installed Date: 1/03/2010
Expire Date: 30/03/2010
Expire Days: 30
remaining Days: 30
every time when i application start , corresponding manipulation were done. current time - installed date based on these manipulation remaining date will reduced.. In the positive scenario its working fine .
but if daily uses the date when the software is installed , the remaining date should not reduced its my problem .. so i think dont take a directly from system can we should be use some another idea ... On that time in Linux can possible to take system Tick which is directly calculated from 1970 jan 1 . so no need to change if even changes the system date .. if you have any idea related this or have any new idea.. please share with me ....
Thanks....
|
|
|
|
|
Imho, the only really fail-safe way to check for license expiration, validity and seat count is for the application to communicate with a license server that's under the control of the manufacturer of the software.
/ravi
|
|
|
|
|
Thanks for quick replay
but i am using a standalone application . which is no need to server connection . with in a system we can run this . (i m using mysql database thats also a local ).
Thankyou
|
|
|
|
|
please help me .. In our application needs real Date for trail license....
here before we are used System.DateTime ... but have some problem ,
so i will decide to uses BIOS Date instead of System.DateTime
my doubts is...
1) Is possible to change BIOS Date
2) may we use BIOSDate insted of System.DateTime
Thanks....
|
|
|
|
|
BIOS Date and System.DateTime.Now are one and the same; change one, the other changes with it.
BTW: there is NO solution to your problem; the owner of a stand-alone PC can do to it whatever he chooses. What you can do is:
- use an external system (such as a server on the network or Internet);
- use a dongle, i.e. some piece of hardware+software the user cannot forge as it contains unfamiliar stuff
- hide information at several unexpected locations (registry, file system).
Plus: improve security by applying encryption.
And whatever you do, the code involved could always be reverse-engineered.
|
|
|
|
|
Thanks for reply....
i don't aware of dongle concept. can u give a brief explanation or give article related this please. And can we make dongle software in same c# . or which language we want uses for this..
Thanks....
|
|
|
|
|
|
I want to write a word at at a time in MS word by using voice. Not a single letter. is it possible .if it is how it is possible....give idea...or process..
|
|
|
|
|
You can use the Microsoft Speech SDK with Word interop.
But I'm sure that Windows 7 and Windows Vista can already do this.
|
|
|
|
|
sir i also know that it is already exists in windows 7....but i want to implement it myself..because it is a task of my project in undergraduate level...if you have any idea or code please help me..by the way i have already done voice command operating system and using voice i can open the MS word page.....
|
|
|
|
|
Use the Microsoft Speech SDK and Word interop.
|
|
|
|
|
|
Sir,
i think you can't understand my problem..using voice command i can open the MS word page.. now i want to write here using voice....i can do it as a letter for e.g a b c using command. but i want to write a word for e.g you, table etc... how can i do it...please help me.
|
|
|
|
|
This capability already exists in Word. No code required. It's been in Word since 2003, I think.
|
|
|
|
|
hi all,
i am trying to deserialize a xml string into an object but i am getting following error :
"An exception of type 'System.InvalidCastOperationException' occured in System.Xml.dll but was not handled in user code.
Additional information: There is an error in XML document(1,2)."
I am using following code to deserialize :
object obj = new object();
System.Xml.Serialization.XmlSerializer x = new XmlSerializer(obj.GetType());
StringReader sr = new StringReader(strNewXml);
XmlTextReader xml = new XmlTextReader(sr);
obj = (object)x.Deserialize(xml);
I tried to see the value of XmlTextReader xml, but it is showing as {None}.
I even tried with a string which i earlier serialized from an object but same error is displaying with it too.
Can anyone tell me where i am doing wrong.
Thanks and Regards,
Nagendra
|
|
|
|