|
Great! I was a pro and didn't even know it.
Maybe you'll have the answer for me when I need it.
If my answer has helped you, one of my articles may also be a help. Also remember that your best friend's name is google.
|
|
|
|
|
I was wondering if it was possible to eject USB and CD roms drives of a remote computer? I have seen code out there for local machines, but nothing really remote.
I have tried this one for a remote that I found:
const int OPEN_EXISTING = 3;
const uint GENERIC_READ = 0x80000000;
const uint GENERIC_WRITE = 0x40000000;
const uint IOCTL_STORAGE_EJECT_MEDIA = 2967560;
[DllImport("kernel32")]
private static extern IntPtr CreateFile
(string filename, uint desiredAccess,
uint shareMode, IntPtr securityAttributes,
int creationDisposition, int flagsAndAttributes,
IntPtr templateFile);
[DllImport("kernel32")]
private static extern int DeviceIoControl
(IntPtr deviceHandle, uint ioControlCode,
IntPtr inBuffer, int inBufferSize,
IntPtr outBuffer, int outBufferSize,
ref int bytesReturned, IntPtr overlapped);
[DllImport("kernel32")]
private static extern int CloseHandle(IntPtr handle);
public static void EjectMedia(string computer, char driveLetter)
{
string path = "\\\\" + computer + "\\" + driveLetter + ":";
IntPtr handle = CreateFile(path, GENERIC_READ | GENERIC_WRITE, 0,
IntPtr.Zero, OPEN_EXISTING, 0,
IntPtr.Zero);
if ((long)handle == -1)
{
throw new IOException("Unable to open drive " + driveLetter);
}
int dummy = 0;
DeviceIoControl(handle, IOCTL_STORAGE_EJECT_MEDIA, IntPtr.Zero, 0,
IntPtr.Zero, 0, ref dummy, IntPtr.Zero);
CloseHandle(handle);
}
But have had no luck with it...
|
|
|
|
|
Jacob Dixon wrote: I was wondering if it was possible to eject USB and CD roms drives of a remote computer?
Nope. You cannot do it unless the code that's triggering the eject was running on the remote machine.
Jacob Dixon wrote: I have seen code out there for local machines, but nothing really remote.
There's a reason for that...
DeviceIoControl only works on the machine the call was made on.
|
|
|
|
|
Great! Thanks for the reply. I'll create a service to install on the local machines to perform that action and some others
|
|
|
|
|
Dave Kreskowiak wrote: There's a reason for that...
Moving parts of a remote machine may be hazardous.
|
|
|
|
|
Oh, come on! What's wrong with closing the coffee cup tray without warning?
|
|
|
|
|
Why some people move the using into the namespace. Can reduce the size of the program file?
For example,
namespace test
{
using System;
using System.Net;
public class classA
{
...
}
}
modified on Wednesday, July 7, 2010 11:28 AM
|
|
|
|
|
It is just the matter of coding guidelines on follows. IMO using statements should be outside the namespace.
yu-jian wrote: Can reduce the size of the program file?
IMO it cannot alter the file size. (I thought you meant keeping using statements inside namespace would reduce file size)
The overall file size would reduce since you will not be using fully qualified names everywhere in the code. It also makes the code more readable.
modified on Monday, April 19, 2010 1:03 PM
|
|
|
|
|
That doesn't depend on where the directive is.
d@nish wrote: It also makes the code more readable.
Not once it's pasted in a forum.
|
|
|
|
|
I am only fully of curiosity that why coder does that. So I guess whether it can reduce the file size. Now I know it not reduce the exe size, but it is a good way to make code more readable.
Thanks for your reply.
|
|
|
|
|
Hi,
such using statements do not contribute to the EXE/DLL file size.
All they do is allow for a smaller source file, as they enable shortcuts such as TextBox for System.Windows.Forms.TextBox
|
|
|
|
|
And I thought he is saying that keeping using statements inside namespace would reduce file size.
|
|
|
|
|
It will have no effect on the compiled size. The difference in source code size depends on how you indent the code within the namespace.
I'm not a fan of the using directive at all, but if you are using it to define aliases, it allows things like:
namespace MySqlClientStuff
{
using Connection = System.Data.SqlClient.SqlConnection ;
...
}
namespace MyOleDbStuff
{
using Connection = System.Data.OleDb.OleDbConnection ;
...
}
However, those may be better in separate files anyway.
There should be little need for multiple namespaces within one file, so the point is fairly meaningless.
More recently I have started putting the using directives for namespaces that contain my Extension Methods inside the namespace, but that's just me.
P.S. In a further contrarian vein...
Were someone to concatenate a bunch of C# code files into one big file, using directives outside the namespaces would cause trouble.
modified on Monday, April 19, 2010 1:23 PM
|
|
|
|
|
If I want to save the user setting and permissions and my system parameters for the application public use (in C#)... what's the best way to do it? hashtable or dictionary? or maybe another way?!
Thanks....
|
|
|
|
|
|
I forgot to say al the parameters are saved in SQL server and it will be populated into hashtable, dictionary or whatever your recommendation is so that I don't need to connect to the database every timeto read a single value.
|
|
|
|
|
0) Dictionary uses a hashtable.
1) Are your settings all one datatype?
|
|
|
|
|
One thing to remind, if you try to save settings in either of the data structures as a xml file then you are out of luck, by default both of them are not serializable. You have to implement the IXmlSerializable interface in a custom object and wrap it around the hash table.
|
|
|
|
|
|
not all one type but in worst case I can save all as string and convert within the application
|
|
|
|
|
If you want to save user settings, you can use Settings or create custom tags in the configuration file. Then you can read them from the configuration file when the application is loaded.
|
|
|
|
|
do you have an example of doing this (hashtable or dictionary) in a public class and use it across the application?
|
|
|
|
|
|
I want example of solution N-tier with code C#
can I help my ?
thanks
|
|
|
|
|
Please read the FAQs, we are not here to do your work for you. If you have a specific problem, please ask, but from what you have given it's not even certain you know what an n-teired solution actually is.
Dalek Dave: There are many words that some find offensive, Homosexuality, Alcoholism, Religion, Visual Basic, Manchester United, Butter.
Pete o'Hanlon: If it wasn't insulting tools, I'd say you were dumber than a bag of spanners.
|
|
|
|