|
There are few ways to tackle this sort of thing.
Firstly, the Window Event Viewer will normally log when users log in without you doing anything. From command prompt type 'eventvwr' and navigate to security. In Task Category look for log on. You'll need admin rights for this. That may give you enough information that you don't need to create a Windows Service.
The start override is called when the Service starts, and that will usually be when the computer starts when set to automatic, of when explicitly started when set to manual.
If you do go ahead with the service, I would investigate programmatically getting events from the Event Log - there probably will be a hook where you can receive them but I don't know off the top of my head.
A simple approach might be to create a little console app that sends an email and make it run when you log in - like things like Skype do. It's a case of adding an entry in the registry in the 'run' section of windows.
Regards,
Rob Philpott.
|
|
|
|
|
Windows service is a reasonable approach to try with.
There are a number of online tutorials that will hhelp you get started.
Pick any one up and build your service.
|
|
|
|
|
I want To Draw number of electrons around the Atom < 3D > using XNA 4 but i failed
anyone Can help me ??
|
|
|
|
|
nada 1015 wrote: but i failed You also failed to explain what your code tries to do, and what errors or incorrect results you received.
Use the best guess
|
|
|
|
|
all i want to do is to draw a 3d model of electron around a 3d model of atom
i need somone help me to think how to write the Code
|
|
|
|
|
|
hi i`m trying on my project
i want to Expand or reduce window size click the button
like this
http://image.kilho.net/?pk=1216519[^]
i`m using Visual Studio 2012 and WPF project
how can i solve it?
|
|
|
|
|
You can try the Expander[^] or Accordion[^] controls for layout.
|
|
|
|
|
thanks for your help
do you know some exam?
if you know that it will be very thanksful
|
|
|
|
|
Good day Everyone,
The following is part of my code
start code
protected void Button1_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "temp", "<script>loadAdditionalInfoDialog(info1)</script>",false);
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "temp2", "<script>loadAdditionalInfoDialog(info2)</script>",false);
}
end of code
The loadAdditionalInfoDialog() function will prompt a small window and let user to key in some info and then click on "OK" button to proceed to next step.
But, when I click on Button1, I can only see the secoond RegisterStartupScript, which is loadAdditionalInfoDialog(info2) works, it will prompt the small window, and I can key in some info and click on "OK" button to proceed to next step.
Because of this, I CAN NOT enter info for the first RegisterStartupScript, which is loadAdditionalInfoDialog(info1).
Would like to ask for solution which is, when I click on Button1, I can first enter info for loadAdditionalInfoDialog(info1) and then click on "OK" button, then continue enter info for loadAdditionalInfoDialog(info2).
Thousand of thanks.
|
|
|
|
|
Hi,
i m stuck in dll registration using c#.
i have to register some dlls in system32.
for that first in put all dlls in a seperate folder DLL.
then create a batch file who first copy all dll in system32 folder then register a XYZ.dll.
all goes well when we run code.
M using this line in batch file.
copy .\DLL\*.dll %windir%\system32\
regsvr32 %windir%\system32\XYZ.dll
but when we create setup and install project in client system, nothing happens.
even i m logged with adminsiatrator
if we run exe from client system by runas(my exe) it works.
i google it and find a solution
ProcessInfo.verb = "runas"
but same problem exists, nothing happens.
now the main problem is that how it works without administrator.
|
|
|
|
|
You need to basically run the exe as an administrator to make sure dlls are registered properly.
|
|
|
|
|
If you created a Setup (MSI) install for your app, when you add the .DLL's, you should have an option to register them. You don't need the batch file at all. Usually the tool your use to build the setup will detect this and enable registration for you automatically.
What are you using to build the setup??
|
|
|
|
|
what is the code in c# in mouse move event to display the current mouse position in form?
|
|
|
|
|
You can try MouseHover [^] or MouseMove [^].
|
|
|
|
|
To get the position you just use the MouseEventArgs X and Y values.
Using the standard visual studio format your code would look like this for a label called label1 that moved with the mouse.
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
label1.Location = new Point(e.X, e.Y);
}
From here
|
|
|
|
|
Try:
Point mouseAt = PointToClient(Cursor.Position);
Console.WriteLine(mouseAt);
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
|
|
|
|
|
I have a program that needs to run at startup for each user on the pc and it reads a file that was made using binary serialization. The file just sits in the program folder but the path that comes up (I used Application.StartupPath) points me to the user folder of the active user if I am not mistaken. So I thought I would access the registry entry that I put in order for it to start up at startup but I get access denied. I tried setting an environment variable, but it requires admin privileges to access the variables. I must be going about this the wrong way. Could someone please point me in the right direction.
|
|
|
|
|
bfis108137 wrote: The file just sits in the program folder Can you give us the full path? Also from the serialized file you're reading?
bfis108137 wrote: (I used Application.StartupPath) points me to the user folder of the active user if I am not mistaken From MSDN[^]: "Gets the path for the executable file that started the application, not including the executable name."
bfis108137 wrote: So I thought I would access the registry entry that I put in order for it to start up at startup but I get access denied. So the app is started from the registry ("Windows/CurrentVersion/Run"), and not from, say, the start-menu folder "startup" for all users? Is it pointing to the full path?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
The path I tried was in 2 places. First I made a folder in the c root. Then I thought it had to do with permissions so I used the public folder. This is c:\users\public on win7/vista and it's c:\documents and settings\All Users in xp. Like I said I used Application.StartupPath and it works but only when I start it myself. When it runs automatically at startup, "Application.StartupPath" points to c:\users\current user. With all that being said I found a solution. I add an environment variable which does require elevation but it's a one time thing when the app is first installed which i use a separate app to do(which i call from the main app) so as to not require the higher privilege all the time. That much I had working before. Where I got stuck was trying to retrieve the variable. It would require elevation as well which was unacceptable. However I found a solution.
I found this on another site but since I know how some sites are with links I am not going to post the link. Here is the code I used to retrieve an environment variable without elevation.
string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string path = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("variablename", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
|
|
|
|
|
bfis108137 wrote: Like I said I used Application.StartupPath and it works but only when I start it
myself. When it runs automatically at startup, "Application.StartupPath" points
to c:\users\current user.
No it doesn't. Not unless your .EXE is in that path and was launched from there. I'll guarantee it.
bfis108137 wrote: Where I got stuck was trying to retrieve the variable. It would require
elevation as well which was unacceptable.
You do not need elevated priv's to get an environment variable. You only need them to create a system-wide, or machine, environment variable.
Everything you're telling us is backwards from how it actually works. There's something you're not telling us about this code. Since we can't see it, we can't tell you why it's not working.
|
|
|
|
|
Well it was a machine environment variable since the path was going to be the same across all users. And you are right Application.StartupPath does work correctly but here is where the problems started. I was using a dll. I wasn't using Application.StartupPath. I was just trying to get information out of a file so I wasn't even using a path. I was just doing something like
string someString = File.ReadAllText("FileName.txt");
When it would run normally (not at startup) then it would read and write to the folder where the app was. If it was run at startup however, it would read or write to the user's folder. I misspoke myself about the Application.StartupPath. I have been doing a lot of debugging and apparently that wasn't what happened but I assure you the issue I just presented did happen. The file with a dll is in c:\test. Here is the code. Now the first time it's run as expected there is a file called error.txt which says "Could not find file 'C:\test\test.txt'." The path.txt file and the test.txt files are as expected. However when it runs at startup, the time in the test.txt file doesn't change and when I look in the user folder, I see a new error.txt file along with a test.txt file. The error.txt file says "Could not find file 'C:\Documents and Settings\User\test.txt'." and the time in the test.txt file is more up to date. So again I misspoke before and I assure you it was accidental but and I have found a way to solve my problem but this was my situation. I hope you accept my apology.
A button and form load with the following code.
private void Form1_Load(object sender, EventArgs e)
{
TestClass tc = new TestClass();
tc.ReadFile();
tc.WriteFile();
}
private void button1_Click(object sender, EventArgs e)
{
string path = Application.StartupPath + @"\CurrentFolderTest.exe";
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
File.WriteAllText("path.txt", Application.StartupPath);
key.SetValue("foldertest", path);
}
Here is the code from the dll
public void WriteFile()
{
File.WriteAllText("test.txt", DateTime.Now.ToLongTimeString() + DateTime.Now.Millisecond.ToString());
}
public void ReadFile()
{
try
{
string test = File.ReadAllText("test.txt");
}
catch (Exception ex)
{
File.WriteAllText("error.txt", ex.Message);
}
}
|
|
|
|
|
That's better.
Two problems. First, normal users can't write to the Localmachine registry hive. Writing this key is something you would do at install time, not run time.
Second, whenever you read or write files, it is best practice to always build a fully qualified path to the file using a well known folder, like CommonAppData. Use Environment.GetFolderPath get the base folder path and the use Path.Combine to build your fully qualified file path from it.
Like you already found, the base folder paths between Windows XP and 7 are different. They can even change between 32 and 64 bit versions of Windows.
modified 10-Jun-13 14:15pm.
|
|
|
|
|
hi i just try to make a crystal report in visual studio 2008 using C#, OLE DB(ADO) and the connection was successfully made. but every time when i start to run the application it asks for a login USER NAME and PASSWORD but my database is not secured with any password here is my pies of code to view in CrystalViewer
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load("CrystalReport1.rpt");
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();
zakirox123
modified 9-Jun-13 3:15am.
|
|
|
|
|
Please do not post the same question in QA and the forums - it duplicates work and annoys people.
The universe is composed of electrons, neutrons, protons and......morons. (ThePhantomUpvoter)
|
|
|
|