Usuário com melhor resposta
Me ajudem por favor

Pergunta
-
Respostas
-
Nao sei.... Eu nao consigo ler os dados na imagem que vc colocou.
Eu uso o ProcessExplorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
ele dá muito mais possibilidades para analisar e gerenciar as threads.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée- Marcado como Resposta Levi DomingosModerator sexta-feira, 16 de novembro de 2012 18:18
Todas as Respostas
-
Poderia descrever melhor sua questao?
Voce esta tentando fazer isso em VB?
Quando vc tentar suspender as theads, o que vc obtem como mensagem?
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée -
eu uso esse codigo aqui, porém não sei onde atribuiro valor
Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Data Imports System.Drawing Imports System.Linq Imports System.Text Imports System.Windows.Forms Imports System.Diagnostics Imports System.Runtime.InteropServices Public Class Form1 <DllImport("Kernel32.dll")> _ Private Shared Function SuspendThread(ByVal hThread As IntPtr) As Int32 End Function Public Function Thread_Suspend(ByVal ThreadHandle As IntPtr) As Integer Return SuspendThread(ThreadHandle) End Function <DllImport("kernel32.dll")> _ Private Shared Function ResumeThread(ByVal hThread As IntPtr) As Integer End Function Public Function Thread_Resume(ByVal ThreadHandle As IntPtr) As Integer Return ResumeThread(ThreadHandle) End Function <DllImport("kernel32.dll")> _ Private Shared Function OpenThread(ByVal dwDesiredAccess As ThreadAccess, ByVal bInheritHandle As Boolean, ByVal dwThreadId As Integer) As IntPtr End Function Public Function Thread_GetHandle(ByVal ThreadID As Integer) As IntPtr Return OpenThread(ThreadAccess.SUSPEND_RESUME, False, ThreadID) End Function Public Function Thread_GetHandle(ByVal ThreadID As Integer, ByVal DesiredAccess As ThreadAccess) As IntPtr Return OpenThread(DesiredAccess, False, ThreadID) End Function <DllImport("kernel32.dll", SetLastError:=True)> _ Private Shared Function CloseHandle(ByVal hHandle As IntPtr) As Boolean End Function Public Function Handle_Close(ByVal OpenedHandle As IntPtr) As Boolean Return CloseHandle(OpenedHandle) End Function Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click For Each thread As ProcessThread In Process.GetProcessesByName("notepad")(0).Threads Thread_Suspend(Thread_GetHandle(thread.Id)) Next End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click For Each thread As ProcessThread In Process.GetProcessesByName("notepad")(0).Threads Thread_Resume(Thread_GetHandle(thread.StartAddress)) Next End Sub End Class <Flags()> _ Public Enum ThreadAccess As Integer TERMINATE = (&H1) SUSPEND_RESUME = (&H2) GET_CONTEXT = (&H8) SET_CONTEXT = (&H10) SET_INFORMATION = (&H20) QUERY_INFORMATION = (&H40) SET_THREAD_TOKEN = (&H80) IMPERSONATE = (&H100) DIRECT_IMPERSONATION = (&H200) End Enum
Por favor ajude
- Editado Alexsander Gonçalves segunda-feira, 29 de outubro de 2012 16:48
-
O exemplo que vc postou procura todas as instancias de Notepad e as fecha.
Para outros processos basta alterar o filtro nesta funçao:
Process.GetProcessesByName("notepad")(0).Threads
por
Process.GetProcessesByName("app")(0).Threads
Desculpe, mas eu nao consigo ler o que esta escrito na imagem que vc anexou.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée -
Obrigado por responder willian, mas o problema é o seguinte:
Eu consigo suspender As threads destacadas na imagem, mas só pelo ID da thread, e o ID muda a cada Vez que o processo é iniciado. então eu queria suspender pelo start adress da thread porque ele não Muda...
É Possível isso com o codigo que eu mostrei?
-
Com o codigo que vc mostrou nao, porque o parametro da api é realmente o pID da serviço... e este sempre muda.
Mas seu projeto mostra como localizar um processo pelo nome dele (ex. : notepad)
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée -
-
Que eu saiba nao.
Qual é o motivo para ter que fechar uma thread por software... Poderia nos dar mais detalhes?
Talvez vc esteja tentando resolver um problema criando um outro.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée- Editado William John Adam TrindadeModerator terça-feira, 30 de outubro de 2012 16:23
-
Bom, gosto de trabalhar com processos, threads, módulos e etc...
Então queria me aprofundar um pouco em relação a isso, e queria trabalhar suspendendo threads. Então queria suspender as threads destacadas na imagem, mas já tentei todas as maneiras e não tive sucesso!
Mas é possivel suspender atravez do controle Process que fica na toolbox ?
-
Nao sei.... Eu nao consigo ler os dados na imagem que vc colocou.
Eu uso o ProcessExplorer: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
ele dá muito mais possibilidades para analisar e gerenciar as threads.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée- Marcado como Resposta Levi DomingosModerator sexta-feira, 16 de novembro de 2012 18:18
-