我想知道是否可以在C#Metro应用程序中获取运行MetroStyle应用程序的列表。我希望在Windows 8(而不是Windows Phone)中执行此操作。
答案 0 :(得分:4)
我正在用Delphi编写Alt-Tab手势替代方案,所以这就是我发现列出运行ModernUI(曾经知道的Metro)应用程序的方式,我只用Windows 8 Release Preview测试它,我不知道是否它仍适用于Windows 8 RTM。
procedure ShowRunningModernUIApps;
var
metroapp:hwnd;
strAppTitle: array[0..MAX_PATH]of char;
h:integer;
strListApps:string;
begin
metroapp:=FindWindow('Windows.UI.Core.CoreWindow',nil);
if metroapp <>0 then
begin
GetWindowText(metroapp,strAppTitle,MAX_PATH);
strListApps:='Running ModernUI Apps : '+strAppTitle;
h:=0;
while h=0 do
begin
metroapp:=FindWindowEx(0,metroapp,'Windows.UI.Core.CoreWindow',nil);
if metroapp<>0 then
begin
GetWindowText(metroapp,strAppTitle,MAX_PATH);
strListApps:=strListApps+','+strAppTitle;
end
else h:=1; //let's finish the search loop
end;
end;
ShowMessage(strListApps);
end;
这显示了当前运行的ModernUI应用程序的标题,您可以随意存储它们的HWND。
答案 1 :(得分:3)
不可能。这将是一个沙箱的破坏。您不希望某个随机应用获取有关您运行的应用的信息并将其报告回家。