日期:2014-05-18  浏览次数:20856 次

如何在一个程序中限制另一个程序运行,如限制QQ登入
求相关代码

------解决方案--------------------
C# code

Process[] p = System.Diagnostics.Process.GetProcessesByName("QQ2009");
for (int i = p.Length; i > 0; i--)
{
    p[i].Kill();
}

------解决方案--------------------
探讨
C# codeProcess[] p= System.Diagnostics.Process.GetProcessesByName("QQ2009");for (int i= p.Length-1; i>=0; i--)
{
p[i].Kill();
}

------解决方案--------------------
加上个定时器

QQ执行的是QQ.exe,进程名:QQ
------解决方案--------------------
单一实例
bool bCreatedNew = true;
System.Threading.Mutex mt = new System.Threading.Mutex(false, "", out bCreatedNew);
if (bCreatedNew)
{

Application.Run(new Form1());
}
else
{
MessageBox.Show("程序已启动");
}

System.Diagnostics.Process current = System.Diagnostics.Process.GetCurrentProcess();
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(current.ProcessName);

foreach (System.Diagnostics.Process pro in processes)
{}
 
------解决方案--------------------
C# code

private void button1_Click(object sender, EventArgs e)  // 可以放到 Form_load中
{
    timer1.Interval = 200;  // 200ms 检测一次
    timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
    Process[] p = System.Diagnostics.Process.GetProcessesByName("QQ");
    for (int i = p.Length - 1; i >= 0; i--)
    {
        p[i].Kill();
    }
}

------解决方案--------------------
探讨
C# codeprivatevoid button1_Click(object sender, EventArgs e)// 可以放到 Form_load中{
timer1.Interval=200;// 200ms 检测一次 timer1.Start();
}privatevoid timer1_Tick(object sender, EventArgs e)
{
Process[] p= System.Diagnostics.Process.GetProcessesByName("QQ");for (int i= p.Length-1; i>=0; i--)
{
p[i].Kill();
}
}

------解决方案--------------------
探讨
最好是在网关的地方去限制 程序限制的话不太好

------解决方案--------------------
学习一下 遍历所有进程 在做判断。。。。。