|
151
|
Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda Con Codigo de VB .net(Urgente)
|
en: 9 Octubre 2009, 15:01 pm
|
Mira hay algo que se llaman los DELEGADOS. los delegados son como formatos de firmas de metodos (o funciones en VB).
Threadstart es un delegado que pide como parametro un metodo que retorne void y no pida ningun parametro.
entonces cuando creas un Thread el pide en el constructor un ThreadStart o un ParametrizedThreadStar que es otro tipo de delegado el cual retorna void y pide un Object como parametro, delegados en .net hay muchos, es mas el control de eventos se basa en los delegados EventHandler<T>, cuando haces thdListener.Start() lo que ocurre es la ejecucion del delegado la cual APUNTA al metodo que le pasas como parametro al delegado (que no es mas que un apuntador a un metodo que cumple con la firma). asi el objecto Thread no conoce el metodo que ejecuta (No conce la implementacion) pero si conoce la firma (parametros, retorno, nombre) lo cual es suficiente para ejecutarlo dinamicamente.
Los delegados son muy utilizados en .net. Eventos, Threading, Lambda - Linq...
Espero te sirva. Atentamente,
Juan Manuel Lombana Medellín - Colombia
|
|
|
153
|
Programación / .NET (C#, VB.NET, ASP) / Re: Obtener el Estado del audio en Windows
|
en: 3 Octubre 2009, 00:08 am
|
ps no conozco una clase en el framework que haga eso, yo croe que te toca buscar en la api del windows que con seguridad ahi si se encuentra e implementar tu propia clase para saberlo; pero desconozco cual api del win hace eso.
Atentamente,
Juan Manuel Lombana Medellín - Colombia
|
|
|
154
|
Programación / .NET (C#, VB.NET, ASP) / Re: usar 2 treeview
|
en: 3 Octubre 2009, 00:06 am
|
es web o windows? si es web es uy sencillo con un SQLDatasource que tome como parametro el objecto selccionado y realize la consulta.
si es windows yo lo haria con un Bindingsource y mendiante el FK (relacion) de la bd se llenaria automaticamente.
Atentamente,
Juan Manuel Lombana Medellín - Colombia
|
|
|
155
|
Programación / .NET (C#, VB.NET, ASP) / Re: como puedo imprimir lo que esta en un formulario????
|
en: 1 Octubre 2009, 22:49 pm
|
para tu informacion el crystal reports no es de microsoft, las librerias vienen pero tienes que adicionarlas al toolbox, por que no utilizar el microsoft report viewer, este funciona local o conetado a un servidor de Reporting Services, si lo haces local lo unico que haces es adicionar al proyecto un rdpl y allli haces tu informe, los datos los puedes llevar de un DataSet. Atentamente, Juan Manuel Lombana Medellìn - Colombia
|
|
|
157
|
Programación / .NET (C#, VB.NET, ASP) / Re: Inyeccion dll: [ Delphi ] - [ C++ ] - [ VB ] - [ Masm32 ] - [ C# ??? ]
|
en: 19 Septiembre 2009, 00:40 am
|
En VB: Private Const PAGE_READWRITE As Long = &H4 Private Const MEM_RELEASE As Long = &H8000 Private Const MEM_COMMIT As Long = &H1000 Private Const STANDARD_RIGHTS_REQUIRED As Long = &HF0000 Private Const SYNCHRONIZE As Long = &H100000 Private Const PROCESS_ALL_ACCESS As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF) Private Const INFINITE As Long = &HFFFFFF Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, lpThreadAttributes As Long, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Public Function Inyecta(RutaDll As String, Pid As Long) As Integer Dim proc As Long Dim nload As Long Dim rems As Long Dim longi As Long Dim RemThread As Long Dim Tid As Long On Error GoTo Error proc = OpenProcess(PROCESS_ALL_ACCESS, False, Pid) nload = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA") rems = VirtualAllocEx(proc, 0, Len(RutaDll), MEM_COMMIT, PAGE_READWRITE) WriteProcessMemory proc, ByVal rems, ByVal RutaDll, Len(RutaDll), longi CreateRemoteThread proc, ByVal 0, 0, ByVal nload, ByVal rems, 0, Tid WaitForSingleObject rems, INFINITE CloseHandle proc CloseHandle rems Inyecta = 0 Exit Function Error: Inyecta = 1 End Function '----------------------------------------------------------------------------------' Private Sub Form_Load() Dim ruta As Long Dim resultado As Integer ruta = Shell("notepad.exe") resultado = Inyecta("C:\ladll.dll", ruta) If resultado = 0 Then MsgBox "Dll Inyectada con éxito!!!", , "Información" Else MsgBox "A ocurrido un error", vbCritical, "Información" End If End End Sub
Wowww! en todos los lenguajes que se pueden no ? Pero y en C# ? Alguien tiene alguno ? Hasta luego . ejem. Si lo tienes en vb, es facilmente convertible a .net (sea vb.net o C#), si sabes y usas un poquito de logica, lo sacas en seguida. Total, en vb.net un 90% del codigo seguira intacto ^^ EDIT: Para usar las APIs, busca la declaracion en www.pInvoke.netcomo te atreves a decir eso..... El framework te cambia radiclamente todo, que puedas hacer lo mismo de antes de forma parecida es algo muy diferente, pero hasta la administracion de memoria es toalemente diferente en .net, lo que debes hacer es er que clases son las que te sirven para las tareas en vez de usar la APIS, ese es el objetivo del framewrok. Atentamente, Juan Manuel Lombana Medellín - Colombia
|
|
|
160
|
Programación / .NET (C#, VB.NET, ASP) / Re: Simular click de raton
|
en: 10 Septiembre 2009, 17:03 pm
|
bueno para moverlo en el namespace System.Windows.Forms tienes la clase Cursor y la propiedad Position alli asignas un nuevo Point y le pasas las cordenadas, eso te lo mueve a cualquier parte de la pantalla para lo del click no lo he visto pero debe estar por ahi.... Cursor .Position = new Point (10, 10);
Atentamente, Juan Manuel Lombana Medellín - Colombia
|
|
|
|
|
|
|