如何从控制台读取数值?
下面解释如何从控制台获取一个输入值。如果使用的是C++,那么cin和cout就是向控制台读和写的函数。
在文本编辑器中输入这些代码,然后保存为read.cs:
using System;
class ReadStr
{
public static void Main()
{
Console.Write("Enter your name:");
string szName = Console.ReadLine();
Console.WriteLine(" Hey "+ szName);
}
}
然后在命令行编译它,格式是cs read.cs,这将创建一个exe文件read.exe,它与read.cs文件在同一目录下。最后,运行这个exe。
如何读取Windows注册表信息?
在介绍如何读取注册表信息前,先解释如何增加注册条目。
1、增加注册表数据
以下文本是实际的注册信息。将这个内容复制并粘贴到一个文本文件中,将其保存扩展名为.reg的文件,然后双击这个文件进行注册表内容的输入操作。
/*Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\TAW\BSE]
"DSN"="TAWReports"
"User"="TAW1"
"Password"="taw1.1"
"Server"="dbserver"
"IP"=""
*/
2、阅读注册数据
2.1 创建两个RegistryKey变量。
2.2 创建一个内含od对象的类,第一个参数为HKEY(主根关键字名),第二个为"",表示本地机器。
2.3 在要阅读信息的地方创建子关键字。
2.4 用RegistryKey类的Getvalue方法来读取某一特定节点关键字信息的数据。在这里,DSN,Server,Password就是节点。
以下代码读取刚才加入到注册表中的注册数据:
namespace CONAPP
{
using System;
using Microsoft.Win32;
public class Class1
{
public Class1()
{
//
// TODO: Add Constructor Logic here
//
}
public static int Main(string[] args)
{
RegistryKey SUBKEY;
RegistryKey TAWKAY = RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.CurrentUser,"");
string subkey = "Software\\TAW\\BSE";
SUBKEY = TAWKAY.OpenSubKey(subkey);
object dsn = SUBKEY.GetValue("DSN");
object user = SUBKEY.GetValue("user");
object password = SUBKEY.GetValue("password");
object server = SUBKEY.GetValue("server");
return 0;
}
}
}
这里是可下载代码包:http://www.mindcracker.com/csharp/1/read_reg.cs
使用系统剪贴板
这里要涉及的集合是System.Winforms.dll,名称空间是System.Winforms。
系统剪贴板是一个提供剪切和粘贴功能的缓冲空间。在C#中,ClipBoard类提供了将数据放在系统剪贴板以及从系统剪贴板恢复数据的方法。如果你曾经使用过C++中的ClipBoard,你应该记得IDataObject,它提供了剪贴板的数据格式。在.NET中,可以使用DataFormat类,它执行IdataObject,为数据传输提供了一种格式独立的结构。有关这方面的细节请看DataFormat类的参考资料。
Clipboard类只有3个成员,它们是剪贴板构造器、GetDataObject和SetDataObject。
剪贴板构造器
Clipboad类直接从Object类中派生出来。我们可以在应用程序中直接调用Clipboard类,或者使用剪贴板构造器来创建一个剪贴板实例:
Clipboard = new Clipboard();
甚至可以直接在应用程序中调用Clipboard:
IDataObject iData = System.WinForms.Clipboard.GetDataObject();
SetDataObject方法
我们可以调用SetDataObject方法实现在剪贴板上复制或剪切数据。SetDataObject方法有两个定义:
public static void SetDataObject(Object);
这种方法使用了一个Object类型参数,它可以是任何数据,比如说:
string str = "Mahesh writing data to the Clipboard";
SetDataObject(str);
使用这个方法,就可以把任何类型的数据放在剪贴板上。
另外一种方法接受两个参数:
public static void SetDataObject(Object data, bool copy);
copy这个参数指明应用程序退出后,数据是否应该保留在剪贴板上。
string str = "Mahesh writing data to the Clipboard using Copy bool";
SetDataObject(str, true);
GetDataObject方法
GetDataObject方法负责从剪贴板中恢复当前数据,它将返回IdataObject:
public static IDataObject GetDataObject();
比如说:
IDataObject dtObj = Clipboard.GetDataObject();
现在就可以调用IDataObject的GetFormats来找出剪贴板上的数据格式了,比如说:
private void CutCopyData()
{
Clipboard.SetDataObject(textBox1.SelectedText);
}
private void PasteData()
{
IDataObject iData = Clipboard.GetDataObject();
//Determine whether the data is in a format you can use.
if(iData.GetDataPresent(DataFormats.Text))
{
string str = (String)iData.GetData(DataFormats.Text);
}
}
C# 积木模块 ABC(四)
80酷酷网 80kuku.com