我假设您正在编写一个外部应用程序来自动化 appcert。我还假设这是一个 win32 应用程序。如果是这种情况,您可以使用 win32 API GetPackageFullName来获取一个 pacakge 的全名,给定一个进程句柄。因此,在下面的示例中,我向应用程序添加了一个列表框和按钮,然后具有以下代码:
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetPackageFullName(IntPtr hProcess, ref UInt32 packageFullNameLength, StringBuilder fullName);
public Form1()
{
InitializeComponent();
listBox1.DataSource = System.Diagnostics.Process.GetProcesses();
listBox1.DisplayMember = "ProcessName";
}
private void button1_Click(object sender, EventArgs e)
{
var proc = listBox1.SelectedItem as System.Diagnostics.Process;
uint len = 250;
StringBuilder sb = new StringBuilder(len);
var err = GetPackageFullName(proc.Handle, ref len, sb);
MessageBox.Show(sb.ToString());
}