|
There is a relatively complex API called "WMI" -- Windows Management Instrumentation. Look for documentation on that. Unfortunately, I've never used it, but I've scanned through some articles in the past that imply that you can achieve what you are looking for with it.
|
|
|
|
|
The best way to do that if thru WMI. Not the easiest API to use, but you can start with the documentation on it here[^].
I've done exactly what your doing, but had to do it the hard way in C/C++ because not all my client machines had WMI support on them. If your reading from the registry or from disk info, it's a real pain to write code for every tiny bit of information you want to collect. WMI makes it SOOO much easier, but you still have to write a query for each piece of info you want. It's comes down a a few lines of code per item you want, but it's MUCH less that getting it out of the registry. Besides, some of the info you want isn't stored in the registry at all...
EDIT:
There are WMI Downloads for Tutorials and Tools here[^].
RageInTheMachine9532
|
|
|
|
|
thanks you guys....you really help me a lot.
|
|
|
|
|
This is about a weird compilation error I'm having:
I have 3 projects in a solution: project A (VB) is reference by projet B (C#) and project C (VB) referes both.
I get an error while trying to use type of A in C ???
error BC30652: Reference required to assembly 'A' containing the type 'A.iTraceFile'. Add one to your project.
Anyone faced this ?
Jonathan de Halleux.
www.dotnetwiki.org
|
|
|
|
|
Yeah. Fixed by adding a Reference in Project C, to Project A. In Project C, right click on the References folder, click Add Reference. Then click on the Projects tab and select the project you want to reference, A in your case. Click Select, then OK.
RageInTheMachine9532
|
|
|
|
|
I am trying to find a way to change an ethernet card to run on 100mb Full Duplex when it is initially set to run at Auto-negotiate. Is there a way to do this programatically?
|
|
|
|
|
Hello!
I have a combobox with autocomplete, and I linked this combobox with data bindings to a database.
Now I want that when I choose an item to automatically go to that record in database and display the information on screen.
How do I make this, to go to that record in database?
PLEASE HELP ME!
Thank you!
Bye!
|
|
|
|
|
Create two data adapters. One with just the displayed and key field or unique field selected. And another with all the fields selected and in the key field or unique field under criteria put a "=?" no quotes. Then create datasets for both. Then you need to create Functions either in a component module or just in your forms code. They could look something like this. This is from a component
***************************************************************************
Public Function getdataset(ByVal strValue As String) As DataSet
'fill the dataset
DsGuests1.Clear()
daGuests.SelectCommand.Parameters("Phone").Value = strValue
NOTE:The "Phone" parameter will just be your unique field
daGuests.Fill(DsGuests1)
Return DsGuests1
End Function
Public Function GetNames() As DataView
'fill the dataset
daNames.Fill(DsNames1)
Return dvNames
End Function
***************************************************************************
Then you are going to have to set up the combo box to get the displayed names by calling your dataset and putting it into a dataview object with just the displayed field as the Display Member and the Unique key field as data member when the form loads. Could look something like this.
***************************************************************************
Dim dvnames As DataView
dvnames = mobjguests.GetNames
With Combobox1
.DataSource = dvnames
.DisplayMember = "FullName"
.ValueMember = "Phone"
.SelectedIndex = -1
End With
NOTE: mobjguests was the name of my component it would be just a procedure of
getnames if you were using the form and would just be
dvnames = GetNames
***************************************************************************
After the names are filled in the list and you then need to set up a Combobox indexChanged event. This will call the dataset with all of the fields in it and will send the data member part of your combobox to the function. After this you are going to have to bind each of you data fields to a textbox or whatever you choice and all of this will looks something like this.
***************************************************************************
Private Sub cboNames_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboNames.SelectedIndexChanged
Dim dsguests As DataSet
Static fieldsbound As Boolean = False
NOTE:The static fieldsbound is so that the below code only executes one time because the fields only need to be bound one time. Other wise will throw and error. The only code that you want to execute everytime is the getdataset function. When the dataset changes all of the bound fields will change.
dsguests = mobjguests.getdataset(cboNames.SelectedValue.ToString())
If Not fieldsbound Then
binddata(dsguests)
NOTE:You are sending the dataset with parameter meet to be bound and this dataset only contains the data for that record.
fieldsbound = True
End If
End Sub
Private Sub binddata(ByVal dsguests As DataSet)
'binds the fields
txtRoom.DataBindings.Add("text", dsguests.Table("Guest"), "Room")
The Guests will be your Table that your are accessing and the room will be the field that you are binding. Just do the same for each of your fields.
End Sub
I hope this helps if you need any more help with this you can contact me on a way to get a programming example at Pugman812@aol.com
|
|
|
|
|
Hi,
How can we sort the listview on the basis of the clicked column?
Thanks
Tasnim
|
|
|
|
|
Look at SortKey Property.
<msdn>
SortKey Property (ListView Control)
Returns or sets a value that determines how the ListItem objects in a ListView control are sorted.
...
Remarks
The Sorted property must be set to True before the change takes place.
It is common to sort a list when the column header is clicked. For this reason, the SortKey property is commonly included in the ColumnClick event to sort the list using the clicked column, as determined by the sort key, and demonstrated in the following example:
Private Sub ListView1_ColumnClick (ByVal ColumnHeader as ColumnHeader)
ListView1.SortKey=ColumnHeader.Index-1
End Sub
With best wishes,
Vita
|
|
|
|
|
But how to get it in Vb.net
Thanks
|
|
|
|
|
You'll find what your looking for if you look in the Help Index, or search for, "ListView.ColumnClick" or "ListView.ListViewItemSorter". Basically, you have to create a custom sorting class that implements the IComparer interface. Either of those ListView help topics will provide you with an example of how to do that.
RageInTheMachine9532
|
|
|
|
|
Ya I read the help but I didnt find any examples related to it. I just came to know that it works with IComparer Interface , but how I didnt get it.
Can anyone help me for it?
Thanks
Tasnim
|
|
|
|
|
OK. The second class in the example just implements a Sorter. What your doing is writing your own custom sorter that can sort items on any column. The only argument you need in the column number. This would allow your to write sorters for different types of data in each column.
When you 'Implement' an interface, in this case IComparer, your given a framework that .NET expects you to follow. All you have to do is hang code on the methods that you have to implement. In the example in the help files, the only real code is the Compare function. .NET expects the function to take 2 parameters, both generic Objects and expects you to compare them somehow and return an Integer as a result of the compare. Looking at the documentation for IComparer.Compare (the function you have to supply code for!), the function is expected to return the following:
Less than zero if x is less than y. <br />
Zero if x equals y. <br />
Greater than zero if x is greater than y. <br />
In the sample below, .NET will call you with two ListViewItem objects, x and y. Since you know that your going to be getting two ListViewItems to compare, you have to cast the two Objects as ListViewItems. Then you can use the ListViewItems.SubItems property and the column number that is passed in when this class is created (Public Sub New(ByVal column as Integer)) to get the Text to compare. Then all you have to do is use the String.Compare method on the two SubItem.Text Strings and return the value that .NET and the IComparer interface expects you to return. Check out the docs on String.Compare and you'll see that its return values match those expected by IComparer.Compare.
' Implements the manual sorting of items by columns.
Class ListViewItemComparer
Implements IComparer
Private col As Integer
Public Sub New()
columnNumber = 0
End Sub
Public Sub New(ByVal column As Integer)
columnNumber = column
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
Dim returnValue as Integer
Dim compX as ListViewItem = CType(x, ListViewItem)
Dim compY as ListViewItem = CType(y, ListViewItem)
returnValue = String.Compare(compX.SubItems(columnNumber).Text, compY.SubItems(columnNumber).Text)
Return returnValue
End Function
End Class
Now that you have a comparer class written, all you have to do is tell the ListView to use it when a column header is clicked on and tell your new sorter class to use the column number you clicked on:
' ColumnClick event handler.
Private Sub ColumnClick(ByVal o As Object, ByVal e As ColumnClickEventArgs)
' Set the ListViewItemSorter property to a new ListViewItemComparer object.
ListView1.ListViewItemSorter = New ListViewItemComparer(e.Column)
' Call the sort method to manually sort the column based on the ListViewItemComparer implementation.
ListView1.Sort()
End Sub
RageInTheMachine9532
|
|
|
|
|
Hi,
Thanks a lot, Will try the code and get back to you.
Thanks
Tasnim.
|
|
|
|
|
Also I want to sort it into descending order if the column is clicked again. How to do it?
Thx
Tasnim
|
|
|
|
|
I have filled Combobox value by setting DataSource property, giving Display Member and Value Member, for a particular Table fields in Access-2000 database. I selectd some value of combobox. now when i load that form again, i want to set the previously selected value of combobox. have tried using combobox1selectedvalue = code, also tried out by setting combobox1.text, combobox1.selectedtext, but none of them is working.
Its very important will be thankful and grateful if anyone can pull me out of this problem.
Thanx
Be Humble in Victory and Strong in Defeat. -Het
|
|
|
|
|
In which environment are you working?
|
|
|
|
|
HI there
i am working in VB.Net, it would be nice if u can suggest me way out.
thanx
Be Humble in Victory and Strong in Defeat. -Het
|
|
|
|
|
OK, I created a new Access database with one table, called "States". Then I created a new form, with a ComboBox called cbStates . I added an OleDbConnection and OleDbDataAdapter to the form, and generated a DataSet called dsStates . In the Load of the form, I did this:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
daStates.Fill(dsStates, "States")
cbStates.SelectedValue = "CA"
End Sub
This seems to work correctly. What is the difference between this scenario and what you are trying to do?
|
|
|
|
|
:(hai everybody,
i have developing one vb.net project with windows 2000 professional os and its working fine in this os. but i was copied/intsalled in windows 98 os, but this will not work in 98 os(even i installed .net framework 1.1). it says "common langauge runtime error" and some processor id and thread id's. i do not know how to solve this probs. plz help to execute the windows 98se os.
Gnanasekaran S
|
|
|
|
|
Humm, does it give you an error code or just that message? Are you using any API calls thatt might not be in 98?
|
|
|
|
|
|
no i am not using any api's. but still problem exists
nothing now.
|
|
|
|
|
i was wondering what the code was to invoke a click event to highlight the item in the listbox when you right click. Im just using this to pull up a context menu but i want the item to be selected. Simple solution i hope.
|
|
|
|