【问题标题】:how to disable launching some applications? [closed]如何禁用启动某些应用程序? [关闭]
【发布时间】:2013-05-23 12:37:09
【问题描述】:

有没有办法阻止某些应用程序启动

1) 例如:我不希望用户启动 notepad.exe:这可能吗?

2) 是否可以禁止除“notepad.exe”以外的所有应用程序启动?

谢谢

【问题讨论】:

  • 午餐和发射不一样
  • 这与 Delphi 或一般编程无关。似乎它与 Windows 中的用户权限有关,可能与信息亭模式有关。如果不允许任何人启动记事本,只需将其删除即可。
  • 是的,可以使用域策略。与 [delphi] 无关,尽管
  • 您可以尝试使用File System Filter Driver

标签: delphi delphi-xe2 delphi-2010


【解决方案1】:

一种方法可以是

procedure KillProcess(hWindowHandle: HWND);
var
  hprocessID: INTEGER;
  processHandle: THandle;
  DWResult: DWORD;
begin
  SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0,
    SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult);

  if isWindow(hWindowHandle) then
  begin
    // PostMessage(hWindowHandle, WM_QUIT, 0, 0);

    { Get the process identifier for the window}
    GetWindowThreadProcessID(hWindowHandle, @hprocessID);
    if hprocessID <> 0 then
    begin
      { Get the process handle }
      processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION,
        False, hprocessID);
      if processHandle <> 0 then
      begin
        { Terminate the process }
        TerminateProcess(processHandle, 0);
        CloseHandle(ProcessHandle);
      end;
    end;
  end;
end;

你有一个带有计时器、线程或你想要的进程。执行

KillProcess(FindWindow('notepad',nil));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-23
    • 2019-05-28
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多