我一直在使用此代码尝试获取正在运行的当前进程(其他我的应用程序)。
在互联网上,它一直在告诉我使用下面的代码,但它似乎给了我一些问题。
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
private string GetActiveWindowTitle()
{
const int nChars = 256;
StringBuilder Buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
if (GetWindowText(handle, Buff, nChars) > 0)
{
return Buff.ToString();
}
return null;
}
它给了我两个错误。
预期的类,委托,枚举,接口或结构
修饰语' extern'对此商品无效
有人可以帮忙吗?
答案 0 :(得分:1)
预期的类,委托,枚举,接口或结构
如果您收到此错误,那么很可能您是在namespace
内定义或声明这些方法,而不是在class
正文中
答案 1 :(得分:0)
正如Rahul所说,把你的代码放在课堂上:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
public Form1()
{
InitializeComponent();
}
private string GetActiveWindowTitle()
{
const int nChars = 256;
StringBuilder Buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
if (GetWindowText(handle, Buff, nChars) > 0)
{
return Buff.ToString();
}
return null;
}
private void button1_Click(object sender, EventArgs e)
{
string title = GetActiveWindowTitle();
label1.Text = title;
}
}
}