|
|
Apart from WMI, there is no managed code only solution to this. However you could use P/Invoke technology to call a native function inside kernel32.dll; in C# it would look somewhat like this:
using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
public static extern int GetDriveType(string rootPathName);
public void CheckAllDrives()
foreach(string deviceLetter in Environment.GetLogicalDrives()) {
if (GetDriveType(deviceLetter)==5) Console.WriteLine(deviceLetter+" is a CD or DVD drive");
}
}
and in VB.NET it would resemble this (not tested):
Imports System.Runtime.InteropServices
Declare Shared int GetDriveType Lib "kernel32.dll" (ByVal rootPathName As String)
public Sub CheckAllDrives()
For Each(deviceLetter as String in Environment.GetLogicalDrives())
if (GetDriveType(deviceLetter) = 5) Console.WriteLine(deviceLetter & " is a CD or DVD drive");
Next
End Sub
BTW: there might be multiple CD/DVD drives in a system.
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
modified on Sunday, October 11, 2009 12:18 PM
|
|
|
|
|
|
Hi Alan
Thanks for the quick reply!!!
I am a bit of a noob programmer so please excuse me
how would i incorporate what you said above?
The videos i have got have got a url of C:\............
which i would change to drive & ..............
i just tried a new form with 1 button and a label how would i use your code to display the drive
I am probably being rather thick so please excuse me
Many thanks
Dan
|
|
|
|
|
Hi,
I'm not clear what you are asking here. The methods I pointed to all return strings which can be manipulated to extract the drive letter.
e.g. if Application.StartupPath returns
c:\projects\Test\bin\debug
then Path.GetPathRoot(Application.StartupPath) would give
c:\
and Application.StartupPath(0) gets the first character from the string, i.e. 'c' which is the drive letter.
Alan.
|
|
|
|
|
Hi there
Wondering generally how the server side of an application server is done (non web based).
Say you wanted to write an accounting program. The server would run on Windows Server 2008 for example and handle business logic and database access. The client program would have the client forms, etc and obtain data from the server.
Is the server software usually set up as a Windows service normally? It would listen on certain ports?
How does the server handle multiple concurrent users? I would imagine that after authentication, some sort of thread is created to listen for requests from the user?
|
|
|
|
|
Ryan Minor wrote: Say you wanted to write an accounting program. The server would run on Windows Server 2008 for example and handle business logic and database access. The client program would have the client forms, etc and obtain data from the server.
I'd try to check if a database-server would suffice
Ryan Minor wrote: Is the server software usually set up as a Windows service normally?
Yup, that way it starts when the machine starts, without the Admin even having to log in.
Ryan Minor wrote: It would listen on certain ports?
Any free port will do.
Ryan Minor wrote: How does the server handle multiple concurrent users? I would imagine that after authentication, some sort of thread is created to listen for requests from the user?
Preferably by spawning a thread for each new connection. There's an example on MSDN on using sockets, with the server example here[^] and the client example here[^].
I are Troll
|
|
|
|
|
Hi Guys.
I'm writing a application. I need the the .NET Framework version. How to get version information?
Thanks.
|
|
|
|
|
cerembeyazit wrote: I'm writing a application.
Then you choose the version of the framework you are targeting.
only two letters away from being an asset
|
|
|
|
|
Hi,
your app can detect some version numbers; one of them through Environment.Version
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
I displayed a form at a starting location where my mouse was positioned but i faced an issue with it. My form at first was shown at a different location then it was drawn to my specified location . can u pls help me .i am using that form to display a preview of image on mouse hover.
|
|
|
|
|
Did you also set FormStartPosition to Manual?
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
I think you are setting the location in the Form Load event. Try to set the location in the property window during design time. If you must do it at runtime, set the Visible property of the form to false and try this in Form Load event:
this.Location = new Point(x,y);
this.Visible = true;
Hope this helps,
Shameel
|
|
|
|
|
I have installed visual studio 2003 on my computer.When trying to run an application it gives me error message that unable to start debugging on web server this project is not configured to be debugged.I have installed IIS on my computer but it still gives me this error.What could be the reason behind this is it the IIS.What are the steps that i can take to resolve this error.Also one more thing that when initially i tried loading project in it i was asked for a conversion to the required format using visual studio conversion wizard.Originally the project was developed in visual studio 2003.
|
|
|
|
|
Dear, Try this
Go to IIS -> Right Click on you project directory -> In Directory Tab->Click on Application Setting's Create Button-> Click Ok
It may resolve your problem...
Otherwise Google this error.
Be an Eagle, Sky is Yours.
|
|
|
|
|
I have an assembly, which when is strongly types, returns incorrect results(A large Flaoting No) . But when the same assembly, has delay signing on the functionality works OK.
This assembly make use of the Legecy DLLs create in C++.
As I understand, there Strong Naming is linked with integrity of the assembly and doesnot effect the functionality.
Can some one please advise me if what could be the possible issue here.
Regards
Vineet
|
|
|
|
|
If your assembly is signed, it will only work with the versions of the referenced DLLs referenced when it was signed. If you recompile a legacy dll and the versioning changes, you will have to either re-sign the assembly or edit the configuration file for the assembly (or the exe using the assembly) to allow the new versions.
Note: you should not be signing an executable, only shared dlls should be strong named.
See this for detailed help[^]
|
|
|
|
|
I started using .NET C# with framework 1.0 , upgraded my applications through VS 2000 , 2003 , 2005 and now 2008 . each upgrade will install the new framework on my computer . Now I have all these .NET framework related applications which is taking large space
Microsoft .NET compact framework 1.0 SP3 Developer
Microsoft .NET compact framework 2.0 SP2
Microsoft .NET compact framework 3.5
Microsoft .NET Framework 1.1
Microsoft .NET Framework 1.1 Hotfix (KB928366)
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.0 Service Pack 2
Microsoft .NET Framework 3.5 Service Pack 2
, currently I am using VS2008 , can I remove application related to frameworks prior to 3.5 .
thanks
|
|
|
|
|
You should have done so as you upgraded.
only two letters away from being an asset
|
|
|
|
|
You can uninstall all of the .NET 1.x versions. Everything at 2.0 and above is dependant on the 2.0 CLR, so you cannot remove them. You must leave 2.0 and 3.0 in place in order to use 3.5. I think the .NET Framework will get a new CLR with the release of 4.0. Someone else is going to have to confirm or deny that though. I don't have the resources available to test it at the moment.
|
|
|
|
|
You should not remove ANY of them, as you may have applications that depend on them. Given the large disks on modern systems, the amount of space used by the framework binaries is pretty trivial. Vs2008 requires .Net 2.0 and all subsequent frameworks, so at most you could only remove the 1.0 and 1.1 frameworks. If you remove these, and it breaks an application that needs them, you will end up installing everything from scratch. Best advice is to leave well enough alone. Find something else to clean up if you are low on disk space, or think about moving to a larger drive.
|
|
|
|
|
hi every body..... am a student and need help over an issue....have been given .exe file of a customized media player with a few related dll's and library files. the player actually displays the video but uses the sound to generate a numeric data over screen. how can i get the algo or code for this player when i dont have the source code available....
looking forward for help please
|
|
|
|
|
raysabro wrote: am a student
Good, here is your first assignment, read this. Hint, look at item 3
http://www.codeproject.com/Messages/3122367/How-to-get-an-answer-to-your-question.aspx[^]
If the code is written in .NET you can use a tool like Reflector to look inside otherwise you'll need a decompiler. However, be warned that if this is commercial software the EULA most likely prohibits decompiling.
only two letters away from being an asset
|
|
|
|
|
Hi
I have associated a WPF application with a file(say abc.vdp)
When abc.vdp is clicked on ,application will be launched .
Before loading ,all data from folder where abc.vdp is residing will be copied into a temp folder.
When application is closed actual folder and files will be deleted and temp folder contents will be copied.But while deleting exception "folder cannot be deleted ,it is being used by another process" is thrown.This happens only if launched by .vdp files.
When executed through code folder gets deleted without exceptions.
Any idea on why is this happening ?
Please suggest a solution.
|
|
|
|
|
The only explanation is that you still have a file open in that folder.
|
|
|
|