Страница: 1 |
Народ, подскажите есть ли API функция аналогичная taskkill.exe? Или же как получить отчет о выполнении: ShellExecute Me.hwnd, "open", "taskkill", " /s System /u Domain\User /p Password /im Notepad.exe", "", 0 Заранее спасибо.
Может быть TerminateProcess? The TerminateProcess function terminates the specified process and all of its threads. Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long · hProcess Identifies the process to terminate. Windows NT: The handle must have PROCESS_TERMINATE access. For more information, see Process Objects. · uExitCode Specifies the exit code for the process and for all threads terminated as a result of this call. Use the GetExitCodeProcess function to retrieve the process’s exit value. Use the GetExitCodeThread function to retrieve a thread’s exit value. If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError. Example: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As Long Private Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long Const GW_HWNDNEXT = 2 Dim mWnd As Long Function InstanceToWnd(ByVal target_pid As Long) As Long Dim test_hwnd As Long, test_pid As Long, test_thread_id As Long 'Find the first window test_hwnd = FindWindow(ByVal 0&, ByVal 0&) Do While test_hwnd <> 0 'Check if the window isn't a child If GetParent(test_hwnd) = 0 Then 'Get the window's thread test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid) If test_pid = target_pid Then InstanceToWnd = test_hwnd Exit Do End If End If 'retrieve the next window test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT) Loop End Function Private Sub Form_Load() 'KPD-Team 1999 'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net Dim Pid As Long 'Lock the window update LockWindowUpdate GetDesktopWindow 'Execute notepad.Exe Pid = Shell("c:\windows\notepad.exe", vbNormalFocus) If Pid = 0 Then MsgBox "Error starting the app" 'retrieve the handle of the window mWnd = InstanceToWnd(Pid) 'Set the notepad's parent SetParent mWnd, Me.hwnd 'Put the focus on notepad Putfocus mWnd 'Unlock windowupdate LockWindowUpdate False End Sub Private Sub Form_Unload(Cancel As Integer) 'Unload notepad DestroyWindow mWnd 'End this program TerminateProcess GetCurrentProcess, 0 End Sub Конечно есть замены. К примеру, SMBDie или WinNuke2. 2 LamerOnLine Вот тебе список импортируемых им "подозрительных" API - найди нужную: Import, ADVAPI32.dll Ordinal(Hint) Name 0000003E CloseServiceHandle 000001A8 OpenProcessToken 0000014C LookupPrivilegeValueW 0000001C AdjustTokenPrivileges 000001AA OpenSCManagerW 000000D1 EnumServicesStatusExW 00000146 LookupAccountSidW 000001CA RegConnectRegistryW 000001C8 RegCloseKey 000001EC RegQueryValueExW Import, DBGHELP.dll Ordinal(Hint) Name 00000002 EnumerateLoadedModules Import, KERNEL32.dll Ordinal(Hint) Name 00000167 GetModuleHandleA 0000012F GetCurrentProcess 00000130 GetCurrentProcessId 00000331 TerminateProcess 00000261 OpenProcess 00000144 GetExitCodeProcess 00000132 GetCurrentThreadId Import, ole32.dll Ordinal(Hint) Name 0000003A CoInitializeEx 00000060 CoTaskMemAlloc 00000061 CoTaskMemFree 00000065 CoUninitialize 00000010 CoCreateInstance 0000003B CoInitializeSecurity Import, USER32.dll Ordinal(Hint) Name 000000E5 FindWindowExW 0000017A GetWindowTextW 0000016A GetWindow 0000016F GetWindowLongW 0000017B GetWindowThreadProcessId 00000043 CloseDesktop 000000DE EnumWindows 00000279 SetThreadDesktop 000001F5 OpenDesktopW 00000161 GetThreadDesktop 00000045 CloseWindowStation 000000CF EnumDesktopsW 00000268 SetProcessWindowStation 000001F9 OpenWindowStationW 00000148 GetProcessWindowStation 000000DD EnumWindowStationsW 00000200 PostMessageW Страница: 1 |
Вопрос: TaskKill.Exe
Добавлено: 05.04.04 15:03
Автор вопроса: Unguided
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 05.04.04 15:41
Номер ответа: 2
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #2
Добавлено: 06.04.04 15:10
To Sharp: Расскажи плз поподробнее о TerminateProcess. Мне весьма нужно
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 06.04.04 15:58
Номер ответа: 4
Автор ответа:
Unguided
Вопросов: 7
Ответов: 19
Профиль | | #4
Добавлено: 07.04.04 12:33
Эх, все бы хорошо, да прелесть taskkill.exe в том, что она глушит процесс на удаленной машине, а вот TerminateProcess этого не может, а жаль... Просто я так думаю, если есть АПИ заменяющая net send, то и taskkill должно быть заменимо.
Номер ответа: 5
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #5
Добавлено: 07.04.04 12:46
Номер ответа: 6
Автор ответа:
Unguided
Вопросов: 7
Ответов: 19
Профиль | | #6
Добавлено: 08.04.04 09:27
Звучит красиво, но не думаю что это АПИ функции, а нужны именно они.
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 10.04.04 18:19