|
Hi every body
i want to ask:
how we can prevent the user from ending the process from the task manager?
the a second question is how we can make the service interactive with the desktop
i know that there is ServiceType calss but when i try to use it the service dos'nt interact with the desktop and here is the segment of the code which i wrote
..........
...........
private void InitializeComponent()
{
this.serviceProcessInstaller1 = new System.ServiceProcess.ServiceProcessInstaller();
this.serviceInstaller1 = new System.ServiceProcess.ServiceInstaller();
//
// serviceProcessInstaller1
//
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;
this.serviceProcessInstaller1.Password = null;
this.serviceProcessInstaller1.Username = null;
//
// serviceInstaller1
//
this.st=System.ServiceProcess.ServiceType.InteractiveProcess;
this.serviceInstaller1.ServiceName = "Service2";
this.serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
//
// ProjectInstaller
//
this.Installers.AddRange(new System.Configuration.Install.Installer[] {
this.serviceProcessInstaller1,
this.serviceInstaller1,this.st });
..............
..............
note i install the service by setup project
with regards
|
|
|
|
|
Wail A.Salem wrote:
how we can prevent the user from ending the process from the task manager?
You can't. But you can respond to notification that a user is killing your process. Handle the Closing or Close event of your main form (the one you pass directly or indirectly to Application.Run ). If your code is not finished in a timely manner, your process will be killed. There are a few other ways as well, but I'll leave this as an exercise for you. I recommend reading through the Windows Management APIs section of the MSDN Online Library[^].
As for the second question, you have to write this to the registry yourself. So add a registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<YourServiceName>\Type such as 288 (256 for "Interact with desktop" OR'd with 32 for the service type), or whatever is appropriate for your service type so long as you perform a bitwise OR with 256 and run it as the LocalSystem (default). If you run it as a user, then the service can only interact with that user's desktop (assuming the user has an associated desktop session and can log in locally).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I've just started doing a bit of stuff with text and I can't seem to find anologs for GetTextExtentPoint32() and the like in the Graphics or Font classes. Any hints where that stuff is?
For example, I want to find the size of a string in a given font.
Matt Gerrans
|
|
|
|
|
MeasureCharacterRanges[^]
There is also a function MeasureString() which is a member of the Graphics class, it is overloaded to perform a number of different measurement types.
Hope that helps.
Gary
"A fellow with the inventiveness of Albert Einstein but with the attention span of Daffy Duck."
Tom Shales talking about Robin Williams
|
|
|
|
|
Yes, that looks like just the thing. Thanks!
Matt Gerrans
|
|
|
|
|
Hi,
How can i run an external program (some .EXE program) from my c# program, wait till this program ends, and then continue the c# program?
ideas?
|
|
|
|
|
Use the Process.WaitForExit method:
Process p = new Process();
p.StartInfo.FileName = "calc.exe";
p.Start();
p.WaitForExit();
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I'v replied to mav.northwind and your comments about the "lawsuite issue".
There is no malicious intent what so ever behind the creation of this application, i am just a 4th year IT student wanting to complete my project subject. And the results gained from this application is to create user profiles and to check what are the most frequent sites visited, search engines used and most common files downloaded.
I approached you because you have been answering my questions and helping me the most on the message forums. You've directed me to use BHO's
I would really appreciate it if you could help me with creating a BHO to log url's visited by user's and to log the files that they downloaded, thats all i want to use the BHO for.
Code or site references would be very much apppreciated...
After your response to my queries, i'v been struggling for two weeks to create a BHO ...
Any help would be very much appreciated ...
From a student in need
|
|
|
|
|
In what language? C#? Not exactly the best choice, but it's possible (albeit much slower due to marshaling). If you want resources, a quick search for "BHO" on MSDN[^] would turn up the article, Browser Helper Objects: The Browser the Way You Want It[^].
If you want to do this in C#, you have to declare the IObjectWithSite interface at the very least. It would help to interop the shdocvw.dll library using tlbimp.exe.
The basic concept is that you get the interface for the IWebBrowser (QueryInterface - or casting in .NET with COM interop), get the DWebBrowserEvents2 event interface (also interop'd if you're doing this in C#), and handle any number of events, like DownloadBegin . There's a number of events you could handle, and this will fire before downloading anything. Anything you see in a browser (web page, image, stylesheet, or other file to download) is actually downloaded to your machine. Several events will alert you when a download begins.
Start with the article, and again I recommend you do not use C#. Even though it JIT compiles to native code, there's still a lot of marshaling required once loaded and JIT compiled. Go native - it's much easier and you won't have to be declaring interfaces, structs, consts, and P/Invoking functions as needed.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Can somebody explain to me what COM ports are? Are they just the serial ports on my computer? Does it have something to do with COM? There's this program on my computer that says I have 5 COM ports... I can't really find any information, although I'm not sure what to search for...
Can somebody give me some info?
/\ |_ E X E GG
|
|
|
|
|
So far from what I have found - COM is a contraction of Communication and COM Port is just synonym for Serial Port.
Is that it? Just another word for serial port. oh.
Then why does one of my programs have a USB device listed as COM5?
/\ |_ E X E GG
|
|
|
|
|
Well I can tell you that yes, Serial Ports are COM ports.
I don't know if they are the only things listed as COM ports, I imagine that USB could also be listed as a COM port...
On my computer in Device Manager, my serial port is listed as a COM port and my USB port is listed separately as something else (this may not be the case for all computers).
Hope this helps..
Jae
{My Blog}
|
|
|
|
|
Cool, so I guess my ulitimate quetion is, how can I get all the available COM ports on my computer?
/\ |_ E X E GG
|
|
|
|
|
I am assuming you want to use C#. I recently wrote a serial port program using the wrapper class found at http://www.codeproject.com/dotnet/DotNetComPorts.asp. In the SerialComm class found at this link, there is a method called Available(string portName).
You can use this method in a for loop to iterate through a number of ports, say 32 of them, and check:
for(int i=0;i<32;i++) {<br />
if(p.Available("COM"+i.ToString())) {<br />
Console.WriteLine("I have port {0}",i.ToString());<br />
}<br />
}
Reading that article found at the link might help also.
Jae
{My Blog}
|
|
|
|
|
I want to create a CustomColumnHeader class to then use in conjuction with a ListView control. I want to be able to adjust the height of the ColumnHeader and for it to remain at the set height even when the ColumnHeader is moved. I also want to use the XP theme in my application, so the method of using the Win32 API as used in the article on creating a CustomListView with calls to the Win32 is out of the question as this inhibits use of the XP theme.
Where can I get information on the internal structure of the ColumnHeader class to enable me to write a control which inherits from ColumnHeader?
|
|
|
|
|
Actually, there is not ColumnHeader control. Like most controls in Windows Forms (in the BCL), the ListView and it's related classes and members encapsulate a Windows Common Control. In this case, the ListView encapsulates the List-View common control. If you want information about how to custom draw headers (and do anything else with the ListView that isn't exposed in the .NET BCL), read about the List-View Controls[^]. You must P/Invoke several native APIs and declare the structs and constants you need that are defined in C/C++ headers already (which C# can't use).
If you want information on custom theming, read the Visual Styles Reference[^], which requires that also P/Invoke a lot of native APIs.
In both cases, there are several articles that cover these topics in varying detail here on CodeProject. I suggest you try searching.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Anyone know where I can get my hands on some documentation for the PDF ActiveX Control?
|
|
|
|
|
I'm using the .NET compact framework, and I'm trying unsuccessfully to do a SQL update. My code is as follows:
SqlConnection myConnection = new SqlConnection("User ID=abc;Password=123;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=factory;Data Source=servername");
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.UpdateCommand = new SqlCommand("UPDATE sn_allocatedblocks SET ab_status = 'Warehouse' WHERE ab_schedule = '"+schedule+"' AND ab_schedline = '"+schedline+"'", myConnection);
myConnection.Close();
In the debugger, this code seems to work fine....it hits every line and goes through the function successfully. However, when I open up SQL Analyzer and check to see if it worked, nothing is changed. I'm positive that the user has permissions and that the query is correct, I just can't get it working in my program. I also tried using the ExecuteNonQuery method, but that always throws a SQLException:
SqlConnection myConnection = new SqlConnection("User ID=abc;Password=123;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=factory;Data Source=servername");
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.UpdateCommand = new SqlCommand("UPDATE sn_allocatedblocks SET ab_status = 'Production' WHERE ab_schedule = '"+schedule+"' AND ab_schedline = '"+schedline+"'", myConnection);
adapter.UpdateCommand.ExecuteNonQuery();
myConnection.Close();
|
|
|
|
|
Sorry about the smileys, those are semicolons followed by the letter 'p'.
|
|
|
|
|
You should really read the documentation for the SqlDataAdapter in the .NET Framework SDK. You're not using it right, and it's not even necessary here. A DataAdapter is for filling and updating DataSet s using the various command properties. All you're doing in the first example is assigning it. That won't do anything. Just don't use the SqlDataAdapter at all.
The bottom fragment is almost correct, except - again - the SqlDataAdapter isn't necesary. Just instantiate the SqlCommand , assign it to a variable, and execute it.
Since you didn't tell us what the exception was or what it said (always help), I'm betting it's because you're not using parameterized queries, and instead doing the old kludge of string concatenation. If that variable has a quote (either single or double), the SQL statement is invalid. Instead, the correct code - using ADO.NET how it's supposed to be used - is:
SqlConnection conn = new SqlConnection(...);
using (conn)
{
SqlCommand update = new SqlCommand("UPDATE sn_allocatedblocks " +
"SET ab_status = 'Production' WHERE ab_schedule = @schedule " +
"AND ab_schedline = @schedline", conn);
update.Parameters.Add("@schedule", SqlDbType.NVarChar, 20).Value = schedule;
update.Parameters.Add("@schedline", SqlDbType.Int).Value = schedline;
update.ExecuteNonQuery();
} The using block makes sure that even in case of error the connection is closed and disposed (important). Also dispose of objects who's classes implement IDisposable . Change the parameter types to whatever you want (not knowing what they were supposed to be, I just made them up). If that schedline variable and parameter is not a string or date/time type, do not use quotes (quoting a numeric value will result in error as well).
Using parameterized queries signficantly reduces the attack surface (I could easily provide values for your string variables that would terminate the SQL statement and clear-out your master table since you're not checking user input - never trust user input), eliminates the need to properly encode strings (due to single or double quotes screwing up the resultant SQL statement), and allows you to perform bulk updates, inserts, and deletes (since you instantiate the command and add parameter definitions only once; assign the parameters to variables; for each iteration of a loop, change the SqlParameter.Value property for each param and call ExecuteNonQuery ).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Does anyone know how to implement a zoom control? like the one in the PrintPreviewControl.
|
|
|
|
|
try it with the Graphics.ScaleTransform method
|
|
|
|
|
Hi all,
Does anyone know why the corners of a box object do not appear to be rounded
(when a report is run) even if they are on the design of the report. I am
using Crystal reports with Dot Net.
|
|
|
|
|
You mean like with a group box or something, like some controls are in windows? Because Crystal Reports doesn't not use the common controls for these types of controls. The common controls are drawn by the theming service (is applicable and started) only when the bindings are redirected to the Common Controls 6 win32 assembly (a side-by-side native DLL). Crystal Reports draws their own controls and doesn't use the Theme API - and why should they? It's a report, not a dialog resource.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi all,
I've been reading up on BHO's and i need to create one, for the past 2 weeks i've had no success getting one to work.
I want to create a sort of a spyware application that gets installed onto a users computer and runs in the background. Then i want this application to log and copy the urls a user visits and the files they downloaded. Once the neccesary information is copied, it then gets sent to a remote database.
I only want to know what code i would need to create a BHO and i would like it to do the following:
Log the url's a user visits
Log the files that a user downloads
Any help would be very much appreciated, if you cannot help me with source code, then references would also be a great help.
Thanx a lot ..!
|
|
|
|