1 c#之process类相关整理。
2 2010-06-11 10:55。
3
4 一、根据进程名获取进程的用户名?。
5
6 需要添加对 System.Management.dll 的引用。
7
8 using System.Diagnostics;。
9 using System.Management;。
10
11 static void Main(string[] args)。
12 {
13 foreach (Process p in Process.GetProcesses())。
14 {
15 Console.Write(p.ProcessName);。
16 Console.Write("----");。
17 Console.WriteLine(GetProcessUserName(p.Id));。
18 }
19
20 Console.ReadKey();。
21 }
22
23 private static string GetProcessUserName(int pID)。
24 {
25 string text1 = null;。
26
27 SelectQuery query1 = new SelectQuery("Select * from Win32_Process WHERE processID=" + pID);。
28 ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);。
29
30 try
31 {
32 foreach (ManagementObject disk in searcher1.Get())。
33 {
34 ManagementBaseObject inPar = null;。
35 ManagementBaseObject outPar = null;。
36
37 inPar = disk.GetMethodParameters("GetOwner");。
38
39 outPar = disk.InvokeMethod("GetOwner", inPar, null);。
40
41 text1 = outPar["User"].ToString();。
42 break;。
43 }
44 }
45 catch
46 {
47 text1 = "SYSTEM";。
48 }
49
50 return text1;。
51 }
52
53
54 进程名 是 p.ProcessName。
55
56 二、获取进程
57
58 using System.Diagnostics;。
59 【注】System.Diagnostics 命名空间提供特定的类,使您能够与系统进程、事件日志和性能计数器进行交互。
60 string str = "";。
61 Process[] processes;。
62 //Get the list of current active processes.。
63 processes = System.Diagnostics.Process.GetProcesses();。
64 //Grab some basic information for each process.。
65 Process process;。
66 for(int i = 0;i<processes.Length-1;i++)。
67 {
68 process = processes[i];。
69 str = str + Convert.ToString(process.Id) + " : " +。
70 process.ProcessName + "\r\n";。
71 }
72 System.Windows.Forms.MessageBox.Show(str);。
73 txtProcessID.Text = processes[0].Id.ToString();。
74
75 //显示进程相关信息
76 string s = "";。
77 System.Int32 processid;。
78 Process process;。
79 processid = Int32.Parse(txtProcessID.Text);。
80 process = System.Diagnostics.Process.GetProcessById(processid);。
81 s = s + "该进程的总体优先级类别:" + Convert.ToString(process.PriorityClass) + " \r\n";。
82 s = s + "由该进程打开的句柄数:" + process.HandleCount + "\r\n";。
83 s = s + "该进程的主窗口标题:" + process.MainWindowTitle + "\r\n";。
84 s = s + " 该进程允许的最小工作集大小:" + process.MinWorkingSet.ToString() + " \r\n";。
85 s = s + "该进程允许的最大工作集大小:" + process.MaxWorkingSet.ToString() + " \r\n";。
86 s = s + "该进程的分页内存大小:" + process.PagedMemorySize + "\r\n";。
87 s = s + "该进程的峰值分页内存大小:" + process.PeakPagedMemorySize + "\r\n";。
88 System.Windows.Forms.MessageBox.Show(s);。
89 }
90 catch
91 {
92 System.Windows.Forms.MessageBox.Show("不合法的进程ID!");。
93 }
94 【注】Int32 值类型表示值介于-2,147,483,648 到+2,147,483,647 之间的有符号整数。
95 Int32 提供了一些方法,来比较该类型的实例、将实例的值转换为它的String 表示形式以及将数字的String 表示形式转换为该类型的实例。
96 有关格式规范代码如何控制值类型的String 表示形式的信息,请参阅格式设置概述。
97 此类型实现接口IComparable、IFormattable 和IConvertible。使用Convert 类进行转换,而不是使用此类型的IConvertible 显式接口成员实现。
98 值得一提的是,Process 类具有很多成员变量,这些成员变量可以获得进程的几乎每一个细节。上面的例子中只是简单地选择了几个成员加以演示。如果开发中有需要,可以参考MSDN Library,查询Process类成员以获得更详细的信息,这里就不一一列出了。
99
100 三、杀死进程
101
102 private void button2_Click(object sender, EventArgs e)。
103 {
104 if (listView1.SelectedItems.Count > 0)。
105 {
106 try
107 {
108 string proName = listView1.SelectedItems[0].Text;。
109 Process[] p = Process.GetProcessesByName(proName);。
110 p[0].Kill();。
111 MessageBox.Show("进程关闭成功!");。
112 GetProcess();。
113 }
114 catch
115 {
116 MessageBox.Show("无法关闭此进程!");。
117 }
118 }
119 else
120 {
121 MessageBox.Show("请选择要终止的进程!");。
122 }
123 }
124
125 四、C#中利用process类调用外部程序以及执行dos命令。
126
127 private string RunCmd(string command)。
128 {
129 //实例一个Process类,启动一个独立进程。
130 Process p = new Process();。
131 //Process类有一个StartInfo属性。
132 //设定程序名
133 p.StartInfo.FileName = "cmd.exe";。
134 //设定程式执行参数 。
135 p.StartInfo.Arguments = "/c " + command;。
136 //关闭Shell的使用 。
137 p.StartInfo.UseShellExecute = false; 。
138 //重定向标准输入 。
139 p.StartInfo.RedirectStandardInput = true;。
140 p.StartInfo.RedirectStandardOutput = true;。
141 //重定向错误输出 。
142 p.StartInfo.RedirectStandardError = true; 。
143 //设置不显示窗口
144 p.StartInfo.CreateNoWindow = true; 。
145 //启动
146 p.Start(); 。
147 //也可以用这种方式输入要执行的命令。
148 //不过要记得加上Exit要不然下一行程式执行的时候会当机。
149 //p.StandardInput.WriteLine(command);。
150 //p.StandardInput.WriteLine("exit"); 。
151 //从输出流取得命令执行结果。
152 return p.StandardOutput.ReadToEnd();。
153 }
最后一行改成
A=[t';ug2;dug2';k';K';dp';du';du2';du1';u';u2';u1'];。
或
A=[t,ug2',dug2,k,K,dp,du,du2,du1,u,u2,u1];。
#include "stdafx.h"。
#include "iostream"。
using namespace std;。
int _tmain(int argc, _TCHAR* argv[])。
int i,j=0,m=0,n=0;。
for(i=0;i<10;i++){。
int a[10];
cout<<"请输入考生的成绩:";。
cin>>a[i];。
if(a[i]>80)。
j++;
else if(a[i]<60)。
m++;
else n++;
}
cout<<"高于80分的:"<<j<<"\n"<<"低于60分的:"<<m<<"\n"<<"60-80分之间的:"<<n<<"\n";。
system("pause");。
return 0;
你好,动词去e加ing的
如下:decide,distribute,waste,smile,take, have,file,bite,carve,cave,dive,debate,。
accumulate,write,love,leave,make,pounce,pronounce,practise,praise,refuse,restore,retire,brake,bike,pollute,recite,dance,rankle------30个.。
advise,operate,evaluate,educate,move,come,ride,change,sue,accuate;type,contribute,rue,imbue,close,hate,like,purchase,include,require;drive,use,give,provide,choose,become,come,rescue,save,wave----------30个.满意请速速采纳,谢谢合作!
不是十分明白你的意思,你是说写个C/C++程序来实现么?那将非常容易。
1:创建个表,例如 number。可以在oracle里创建也可以用接口创建。
这是在oracle里创建create table number(NO number,... ...);这个参数我就不具体说了啊。
2:写程序。c语言用OCI,c++用occi。我用的occi。
#include <iostream>。
#define LINUXOCCI //避免函数重定义错误。
#include <occi.h>。
using namespace std;。
using namespace oracle::occi;。
int main()
{
//创建环境变量
//Environment 。
Environment *env = Environment::createEnvironment(Environment::OBJECT); 。
//username是oracle的用户名 。
//userpass是oracle的密码 。
//connstr是oracle的连接字符串 。
string username = "atc"; 。
string userpass = "atc"; 。
string connstr = "192.168.1.101:1521/utms"; 。
//创建连接
//connection 。
Connection *conn = env->createConnection(username, userpass, connstr); 。
if(conn == NULL) 。
{
cout << "access oracle failed..." << endl; 。
return 0; 。
}
int count =0;。
whlie(1)
{
//创建一个SQL语句的执行对象 。
//statement 。
Statement *st = conn->createStatement(); 。
st->setSQL("insert into number values(count)"); 。
st->executeUpdate();。
n++;
if(n == 60)。
break;。
}
//关闭连接
env->terminateConnection(conn); 。
Environment::terminateEnvironment(env); 。
return 0; 。
}
理论上上面的代码就能实现你想要的,不过我当时写的是实现一个插入代码,我修改的没测试,你试试看,不行的话我还有批量操作的代码。你在站短我咱们在研究。