1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <windows.h>
#include <RestartManager.h>
#include <stdio.h>
 
 
#pragma comment(lib, "Rstrtmgr.lib")
 
 
int __cdecl wmain(int argc, WCHAR **argv)
{
    DWORD dwSession;
 
    PCWSTR pszFile = _T("D:\\R00RR0162232162_2023070523_MACHINE-ALARM.csv");
    HANDLE hFile = CreateFile(pszFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL);
    auto thisProcID = GetProcessId(GetCurrentProcess());
 
    WCHAR szSessionKey[CCH_RM_SESSION_KEY + 1] = { 0 };
    DWORD dwError = RmStartSession(&dwSession, 0, szSessionKey);
    wprintf(L"RmStartSession returned %d\n", dwError);
 
    if (dwError == ERROR_SUCCESS)
    {
        dwError = RmRegisterResources(dwSession, 1, &pszFile, 0, NULL, 0, NULL);
        wprintf(L"RmRegisterResources(%ls) returned %d\n", pszFile, dwError);
        if (dwError == ERROR_SUCCESS)
        {
            DWORD dwReason;
            UINT i;
            UINT nProcInfoNeeded;
            UINT nProcInfo = 10;
            RM_PROCESS_INFO rgpi[10];
            dwError = RmGetList(dwSession, &nProcInfoNeeded,
                &nProcInfo, rgpi, &dwReason);
            wprintf(L"RmGetList returned %d\n", dwError);
            if (dwError == ERROR_SUCCESS)
            {
                wprintf(L"RmGetList returned %d infos (%d needed)\n", nProcInfo, nProcInfoNeeded);
                for (i = 0; i < nProcInfo; i++)
                {
                    wprintf(L"%d.ApplicationType = %d\n", i, rgpi[i].ApplicationType);
                    wprintf(L"%d.strAppName = %ls\n", i, rgpi[i].strAppName);
                    wprintf(L"%d.Process.dwProcessId = %d\n", i, rgpi[i].Process.dwProcessId);
 
                    HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_TERMINATE,
                        FALSE, rgpi[i].Process.dwProcessId);
                    if (hProcess)
                    {
                        FILETIME ftCreate, ftExit, ftKernel, ftUser;
 
                        if (GetProcessTimes(hProcess, &ftCreate, &ftExit, &ftKernel, &ftUser) &&
                            CompareFileTime(&rgpi[i].Process.ProcessStartTime, &ftCreate) == 0)
                        {
                            WCHAR sz[MAX_PATH];
                            DWORD cch = MAX_PATH;
                            if (QueryFullProcessImageNameW(hProcess, 0, sz, &cch) && cch <= MAX_PATH)
                            {
                                wprintf(L"  = %ls\n", sz);
                            }
                        }
 
                        if (thisProcID == rgpi[i].Process.dwProcessId)
                        {
                            wprintf(L"%d.Process.dwProcessId = %d  This is me.. I dont kill myself...\n", i, rgpi[i].Process.dwProcessId);
                        }
                        else
                        {
                            if (TerminateProcess(hProcess, 0))
                            {
                                wprintf(L"%d.Process.dwProcessId = %d  TerminateProcess ok\n", i, rgpi[i].Process.dwProcessId);
                            }
                            else
                            {
                                wprintf(L"%d.Process.dwProcessId = %d  TerminateProcess fail\n", i, rgpi[i].Process.dwProcessId);
                            }
                        }
 
                        CloseHandle(hProcess);
                    }
                }
            }
        }
        RmEndSession(dwSession);
    }
 
 
    CloseHandle(hFile);
    return 0;
}

전화번호 0507-1491-6288

 

 

 

내가 나중에 필요할 까봐 여기에 올려둠

아무나 사용해도 됨.

MD5 Hash : 4818f3d8d3fee5cda082f0d8cb24bf9623c4b750

EXE 파일 크기 : 328KB (335,872 바이트)

 

mspaint.zip
0.19MB

+ Recent posts