こんにちは私は少し生産的になるためのプログラムをプログラミングしています。事前に設定された時間が経過すると、ユーザーはインターネットから切断されるか、コンピュータがシャットダウンされます。プログラムをタスクマネージャで閉じてはいけません。私はプログラムをコンパイルして実行することができますが、私はタスクマネージャーでそれを閉じることができます。私は、このページ Prevent user process from being killed with "End Process" from Process Explorerタスクマネージャでプロセスが閉じられないようにします
#include <iostream>
#include <Windows.h>
#include <AccCtrl.h>
#include <AclAPI.h>
#include <tchar.h>
#include "shutdown.cpp"
#include "disconnect.cpp"
static const bool ProtectProcess()
{
HANDLE hProcess = GetCurrentProcess();
EXPLICIT_ACCESS denyAccess = {0};
DWORD dwAccessPermissions = GENERIC_WRITE|PROCESS_ALL_ACCESS|WRITE_DAC|DELETE|WRITE_OWNER|READ_CONTROL;
BuildExplicitAccessWithName(&denyAccess, _T("CURRENT_USER"), dwAccessPermissions, DENY_ACCESS, NO_INHERITANCE);
PACL pTempDacl = NULL;
DWORD dwErr = 0;
dwErr = SetEntriesInAcl(1, &denyAccess, NULL, &pTempDacl);
// check dwErr...
dwErr = SetSecurityInfo(hProcess, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pTempDacl, NULL);
// check dwErr...
LocalFree(pTempDacl);
CloseHandle(hProcess);
return dwErr == ERROR_SUCCESS;
}
int main()
{
using namespace std;
int abfrage;
ProtectProcess();
for (;;)
{
cout << "10.Cut your Internet connection" << endl
<< "11.Cut your Internet connection after 'x' minutes of surfing" << endl
<< "20.Shutdown" << endl;
cin >> abfrage;
switch(abfrage)
{
case 10: disconnectnow(); break;
case 11: disconnectlater(); break;
case 20: shutdown(); break;
default: cout << "nothing to see here" << endl;
}
}
return EXIT_SUCCESS;
}
管理者は常にあなたのプログラムを殺すことができるでしょうか?インターネット接続を止めないと生産性が低下しますか? –
タスクマネージャからプログラムを隠したり、プログラムマネージャが閉じられないようにするには、Windowsが明白な理由で防ぐのが難しいものがあります。 – ChrisF
@Carl Norum私はしばしば勉強のためにpdfsを読む必要がありますが、インターネットは私を止めています。これは管理者権限とユーザー権限の両方で機能しません。 – AaronP