private static IEnumerable<string> GetCommandLines(string processName)
{
List<string> results = new List<string>();
string wmiQuery = string.Format("select CommandLine from Win32_Process where Name='{0}'", processName);
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery))
{
using (ManagementObjectCollection retObjectCollection = searcher.Get())
{
foreach (ManagementObject retObject in retObjectCollection)
{
results.Add((string)retObject["CommandLine"]);
}
}
}
return results;
}
static void Main(string[] args)
{
var result = GetCommandLines("msvsmon.exe");
Console.Read();
}
任务管理器中实际的参数如下, 该程序或得到3个item的string。
最近迷上了arduino,打算用它写个传感小游戏,突然发现学的C++都还给老师了,还好有万能的度娘,特此留档。
1、值传递
实参是变量,表达式等值。
find(int x){}
y= find(z);
上面的例子中,z是实参,x是形参。x变z不变。
在值传递过程中,实参和形参位于内存中两个不同地址中,实参先自己复制一次拷贝,再把拷贝复制给形参。所以,在值传递过程中,形参的变化不会对实参有任何的影响。
2、地址传递(也称引用传递)
实参是指针。
在函数调用的时候,实参传递给你的是指针地址,地址一样也就意味着实参和形参是一样的,当你的形参发生改变时,实参也会发生改变。
find(int &x){}
y= find(z);
上面的例子中,z是实参,x是形参。z随x而改变。
3、const引用传递
find(const int &x){}
y= find(z);
上面的例子中,z是实参,x是形参。z不随x而改变。
有人就会问了,你这样做不是和值传递一样的么?NO!
仔细观察就会发现,在值传递中要进行两次拷贝,浪费内存资源是相当可耻的,const的出现有效避免了这种情况的出现,只需拷贝一次就够了。
转自:http://www.cnblogs.com/kane0526/p/3913284.html