|
that is system dll, im invoking it...
this is code..
[DllImport("user32.dll", CharSet = CharSet.Auto)]<br />
public static extern IntPtr RegisterDeviceNotification(IntPtr hRecipient, DEV_BROADCAST_DEVICEINTERFACE NotificationFilter, UInt32 Flags);<br />
<br />
[DllImport("user32.dll", CharSet = CharSet.Auto)]<br />
public static extern uint UnregisterDeviceNotification(IntPtr hHandle);<br />
<br />
[DllImport("setupapi.dll", SetLastError = true)]<br />
public static extern IntPtr SetupDiGetClassDevs(ref Guid gClass, UInt32 iEnumerator, IntPtr hParent, UInt32 nFlags);
List< string > HWList = new List< string >();
public list< string > getAll()
{
Guid myGUID = System.Guid.Empty;
IntPtr hDevInfo = Native.SetupDiGetClassDevs(ref myGUID, 0, IntPtr.Zero, Native.DIGCF_ALLCLASSES | Native.DIGCF_PRESENT);
if (hDevInfo.ToInt32() == Native.INVALID_HANDLE_VALUE)
{
throw new Exception("Invalid Handle");
}
Native.SP_DEVINFO_DATA DeviceInfoData;
DeviceInfoData = new Native.SP_DEVINFO_DATA();
DeviceInfoData.cbSize = 28;
DeviceInfoData.devInst = 0;
DeviceInfoData.classGuid = System.Guid.Empty;
DeviceInfoData.reserved = 0;
UInt32 i;
StringBuilder DeviceName = new StringBuilder("");
DeviceName.Capacity = Native.MAX_DEV_LEN;
for (i = 0; Native.SetupDiEnumDeviceInfo(hDevInfo, i, DeviceInfoData); i++)
{
while (!Native.SetupDiGetDeviceRegistryProperty(hDevInfo,
DeviceInfoData,
Native.SPDRP_DEVICEDESC,
0,
DeviceName,
Native.MAX_DEV_LEN,
IntPtr.Zero))
{
}
HWList.Add(DeviceName.ToString());
}
}
In the HWList Array all the devices are listed, but i need to check which device is connected to serial port(may be is it possible to do with the Device ID)
|
|
|
|
|
that you've been asking for several days now?
Blog link to be reinstated at a later date.
|
|
|
|
|
hi,I'm trying to get the CPU id and encryp it with rsa, the problem is : i have an application in a deferent pc, i want the application show the cpu id to the user, and the user use a telephone (not internet) to ask the activation key.i know haw to get the cpu id, but i dont know how to use RSA in c#, because i need to encrypt and sign the id and show it in textbox, then i read it for user and user enter the activation key in the application and the application decrypt and validate it.
THANKS
ajgm
|
|
|
|
|
If I understand you correctly, you probably just need System.Security.Cryptography.RSACryptoServiceProvider .
|
|
|
|
|
thanks for your help it was so usefull
ajgm
|
|
|
|
|
I Use following code for Excel to List view entry
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
ExcelObj = new Excel.Application();
if (ExcelObj == null)
{
MessageBox.Show("ERROR: EXCEL couldn't be started!");
System.Windows.Forms.Application.Exit();
}
object val = new object();
ExcelObj.Visible = true;
}
string[] ConvertToStringArray(System.Array values)
{
string[] theArray = new string[values.Length];
for (int i = 1; i <= values.Length; i++)
{
if (values.GetValue(1, i) == null)
theArray[i-1] = "";
else
theArray[i-1] = (string)values.GetValue(1, i).ToString();
}
return theArray;
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.listView1 = new System.Windows.Forms.ListView();
this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
this.columnHeader4 = new System.Windows.Forms.ColumnHeader();
this.columnHeader5 = new System.Windows.Forms.ColumnHeader();
this.columnHeader6 = new System.Windows.Forms.ColumnHeader();
this.columnHeader7 = new System.Windows.Forms.ColumnHeader();
this.columnHeader8 = new System.Windows.Forms.ColumnHeader();
this.columnHeader9 = new System.Windows.Forms.ColumnHeader();
this.columnHeader10 = new System.Windows.Forms.ColumnHeader();
this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components);
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.SuspendLayout();
//
// listView1
//
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2,
this.columnHeader3,
this.columnHeader4,
this.columnHeader5,
this.columnHeader6,
this.columnHeader7,
this.columnHeader8,
this.columnHeader9,
this.columnHeader10});
this.listView1.FullRowSelect = true;
this.listView1.GridLines = true;
this.listView1.Location = new System.Drawing.Point(26, 43);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(536, 240);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
//
// columnHeader1
//
this.columnHeader1.Text = "LastName";
this.columnHeader1.Width = 98;
//
// columnHeader2
//
this.columnHeader2.Text = "FirstName";
this.columnHeader2.Width = 93;
//
// columnHeader3
//
this.columnHeader3.Text = "Company";
this.columnHeader3.Width = 83;
//
// columnHeader4
//
this.columnHeader4.Text = "Address";
this.columnHeader4.Width = 73;
//
// columnHeader5
//
this.columnHeader5.Text = "City";
this.columnHeader5.Width = 71;
//
// columnHeader6
//
this.columnHeader6.Text = "State";
this.columnHeader6.Width = 67;
//
// columnHeader7
//
this.columnHeader7.Text = "Zip";
//
// columnHeader8
//
this.columnHeader8.Text = "Country";
//
// columnHeader9
//
this.columnHeader9.Text = "E-mail";
//
// columnHeader10
//
this.columnHeader10.Text = "Phone";
//
// mainMenu1
//
this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem1});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
this.menuItem2});
this.menuItem1.Text = "File";
//
// menuItem2
//
this.menuItem2.Index = 0;
this.menuItem2.Text = "Open...";
this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
//
// openFileDialog1
//
this.openFileDialog1.DefaultExt = "*.xls";
this.openFileDialog1.Filter = "Excel File (*.xls) | All Files (*.*) ||";
this.openFileDialog1.Title = "Choose an Excel File";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(584, 341);
this.Controls.Add(this.listView1);
this.Menu = this.mainMenu1;
this.Name = "Form1";
this.Text = "Reading an Excel Spreadsheet";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregion
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
}
private void menuItem2_Click(object sender, System.EventArgs e)
{
this.openFileDialog1.FileName = "*.xls";
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
Excel.Workbook theWorkbook =
ExcelObj.Workbooks.Open(
openFileDialog1.FileName, 0, true, 5,
"", "", true, Excel.XlPlatform.xlWindows, "\t", false, false,
0, true);
// get the collection of sheets in the workbook
Excel.Sheets sheets = theWorkbook.Worksheets;
// get the first and only worksheet from the collection
// of worksheets
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
for (int i = 1; i <= 10; i++)
{
Excel.Range range = worksheet.get_Range("A"+i.ToString(), "J" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value;
string[] strArray = ConvertToStringArray(myvalues);
listView1.Items.Add(new ListViewItem(strArray));
}
}
}
}
}
ERROR:
Error 1 No overload for method 'Open' takes '13' arguments
Error 2 Property, indexer, or event 'Value' is not supported by the language; try directly calling accessor methods 'Excel.Range.get_Value(object)' or 'Excel.Range.set_Value(object, object)
Can Any One Give Me Solution Please
|
|
|
|
|
Aren't the errors self-explanatory? Firstly, when calling ExcelObj.Workbooks.Open() method you need to either add some parameters or remove some of them. Secondly, instead of (System.Array)range.Cells.Value you should use get_Value method as you are using get_Range method in previous statement.
Hope it helps.
Giorgi Dalakishvili
#region signature
my articles
#endregion
|
|
|
|
|
g_amol wrote: excel open error "no overload for method Open takes 13 arguements"
Exactly what it says. Read the docs and see what is expected.
|
|
|
|
|
Hello everyone,
After quite some time study on samples and C# Spec. I am confused about what is a method group? In my understanding method group is a set of methods which have the same signature, and not necessary to belong to a specific class. But I am not sure whether I am correct. Any comments or ideas?
Below is what I found in my study.
From ECMA-334: 14.1,
http://en.csharp-online.net/ECMA-334:_14.1_Expression_classifications[^]
A method group, which is a set of overloaded methods resulting from a member lookup (§14.3). A method group can have an associated instance expression. When an instance method is invoked, the result of evaluating the instance expression becomes the instance represented by this (§14.5.7). A method group can be used in an invocation-expression (§14.5.5), used in a delegate-creation-expression (§14.5.10.3), or implicitly converted to a compatible delegate type. In any other context, an expression classified as a method group causes a compile-time error.
From C# in Depth,
http://csharpindepth.com/ViewNote.aspx?NoteID=92[^]
"the feature allows you to specify an extension method as a method group using extension syntax"
thanks in advance,
George
|
|
|
|
|
Just see http://blog.opennetcf.com/ncowburn/2007/03/23/ImplicitMethodGroupConversionInC.aspx
http://gsi.berkeley.edu/textonly/resources/discussion/heather.html
|
|
|
|
|
So a person that cant fathom a compiler error can answer a question about method groups...
|
|
|
|
|
Hi g_amol,
I think the 2nd link is not related to my question.
I have read the 1st link before asking this question. But after reading it, I am still confused what a method group is.
Could you explain in your words what do you think a method group is?
regards,
George
|
|
|
|
|
George isnt it clear that all this person did was google some of the words you've used in your OP? Although ill-informed, he is demonstrating that if you put a little research in then you can often find this sort of information online!
But then you've been asked this before, and it falls on deaf ears.
|
|
|
|
|
Yes,J4amieC.
There is another confusion point, from
http://csharpindepth.com/ViewNote.aspx?NoteID=92
"the feature allows you to specify an extension method as a method group using extension syntax"
my confusion is what is an extension method? I also did some search but almost find nothing to give a precise definition. How do you think of it?
regards,
George
|
|
|
|
|
IIRC, it is to do with delegates and method compatibility.
|
|
|
|
|
Thanks leppie!
In my understanding, method group is a set of methods which have the same signature, and not necessary to belong to a specific class. But I am not sure whether I am correct. Any comments or ideas?
regards,
George
|
|
|
|
|
George_George wrote: But I am not sure whether I am correct.
I think that is correct. When I read the spec a few years back 'method group' seemed like a very abstract term.
Example: say you have a delegate defined as follows:
delegate int Foo(string bar);
Any method that can be used with that delegate belongs in the same method group. Eg. Convert.ToInt32 and int.Parse or even:
int Bar(string foo)
{
return 0;
}
I am not 100% sure about my interpretation
|
|
|
|
|
Thanks leppie!
I like your description.
There is another confusion point, from
http://csharpindepth.com/ViewNote.aspx?NoteID=92[^]
"the feature allows you to specify an extension method as a method group using extension syntax"
my confusion is what is an extension method? I also did some search but almost find nothing to give a precise definition. How do you think of it?
regards,
George
|
|
|
|
|
I know C# 3.0 has extension methods, but that is definitely not part of the CLR EMCA spec.
What he/she is refering to is what you were asking about the other day with Delegate.Create with the open and closed stuff. (MSDN really has good docs on this!).
|
|
|
|
|
Thanks leppie,
Acutally my question is not how to use Delegate.CreateDelegate, but what means extension method.
Any ideas?
regards,
George
|
|
|
|
|
|
|
Extension methods allow you to extend an existing class or struct by adding methods.
Consider this pointless example:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i = 0;
i = i.ToMax();
Console.Write(i);
Console.Read();
}
}
public static class Extensions
{
public static int ToMax(this int i)
{
i = int.MaxValue;
return i;
}
}
} Now any time you use an integer instance it automatically has the ToMax() method available.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Expect everything to be hard and then enjoy the things that come easy. (code-frog)
|
|
|
|
|
Thanks Dave,
Really good stuff. One more question about method group,
http://csharpindepth.com/ViewNote.aspx?NoteID=92
what means "an extension method as a method group using extension syntax" in the above link?
regards,
George
|
|
|
|
|
No, that's not how method group is used in the spec (at least how I remember it).
An expression like "Console.WriteLine" returns a method group. It is a group of methods with different signatures, and when invoking the method group or constructing a delegate from it, the compiler chooses the method (the overload) with the matching signature (actually "best matching" signature, as defined in the spec).
|
|
|
|
|