|
323
|
Programación / .NET (C#, VB.NET, ASP) / Re: Adjuntar DLL dentro del Executable?
|
en: 23 Noviembre 2012, 16:53 pm
|
si, agrega un modulo comun y pone esto tal cual: Imports System.IO Imports System.Reflection Module Module1 Sub Main() AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf CargarLibreriaMemoria Application.EnableVisualStyles() Application.Run(Form1) ' aca pone el nombre del formulario de inicio tuyo End Sub Private Function CargarLibreriaMemoria(ByVal sender As Object, ByVal args As ResolveEventArgs) As Assembly Dim vNombre As String = args.Name.Substring(0, args.Name.IndexOf(",")) Dim vStream As Stream = Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("WindowsApplication1." & vNombre & ".dll") Dim vBuffer As Byte() = New Byte(vStream.Length - 1) {} vStream.Read(vBuffer, 0, vBuffer.Length) Dim vLibreria As Assembly = Assembly.Load(vBuffer) Return vLibreria End Function End Module
luego vas a las propiedades del proyecto (menu proyecto-propiedades del proyecto xxxxxx), le deshabilitas el check que dice " Habilitar marco de trabajo de la aplicacion" y de esa forma en el combo que dice " Formulario de inicio" te va a aparecer la opcion Sub_Main, la seleccionas y listo.
|
|
|
324
|
Programación / .NET (C#, VB.NET, ASP) / Re: Adjuntar DLL dentro del Executable?
|
en: 23 Noviembre 2012, 16:16 pm
|
- 1 - Supongamos que tengo un boton personalizado que es una dll, primero como cualquier control tenes que obviamente agregarlo como referencia asi lo podes usar desde el codigo, eso ya lo debes tener
- 2 - Luego tenes que agregar el archivo dll al proyecto, click derecho en el arbol del proyecto y seleccionas agregar elemento existente, buscas la dll y la agregas, fijate que te debe aparecer la dll en el arbol de proyectos.
- 3 - Seleccionas la dll y en las propiedades en "Accion de compilacion" le pones "Recurso Incrustado", luego colocas ese codigo del ultimo post del link que te pase, en un modulo comun (no de clase) y tenes que especificarle que tu proyecto comienze desde el Sub_Main y no desde el Load del formulario.
compilas y probas llevar el .exe a una carpeta vacia, de esa manera si llevas el .exe compilado a una carpeta vacia, cuando ejecutes el .exe va a querer buscar esa dll en el directorio, pero como no lo va a encontrar, se va a ejecutar ese evento del modulo y lo va a cargar desde el recurso.
|
|
|
326
|
Foros Generales / Noticias / Re: Y el móvil mató al PC
|
en: 23 Noviembre 2012, 13:22 pm
|
no estoy de acuerdo, la PC va a seguir existiendo por muchisimo tiempo mas, por mas que haya mas moviles, es como decir que van a dejar de existir los telefonos fijos, hoy con los millones de telefonos moviles que hay, el telefono fijo sigue estando igual que antes y decian que dejarian de existir, mentira grande como una casa.
capas que dejen de existir algun dia, pero de aca a 50 o 100 años es mas probable, que de aca a 5.
|
|
|
328
|
Programación / .NET (C#, VB.NET, ASP) / Re: URGENTE - La carpeta bin se me llena de dll's que mi app no utiliza
|
en: 21 Noviembre 2012, 21:02 pm
|
no guardes y listo no va a pasar nada, entonces SI estabas usando esos controles, por eso te aparece vacio el formulario, si eliminaste un control que usabas entonces se te borra ese control del formulario.
si vas a usar esos controles, entonces esta bien que te genere todos esos contorles en la carpeta, ya qeu ese componeneone es un paquete de controles, lo que habria que ver es cual REALMENTE usas y cuales no, normalmente vienen como 20 controles pero si solo usas el boton por ejemplo, te deberia generar solo la dll del boton, me explico. para seleccionar cuales usas debes hacerlo en al barra de los contorles ahi click derecho, "seleccionar items" y ahi te aparecen los controles que estan cargados, deberias deseleccionar aquellos de componenone que no uses.
|
|
|
329
|
Programación / .NET (C#, VB.NET, ASP) / Re: Como aplicar cambios al registro y refrescar el sistema sin tener que reiniciar?
|
en: 21 Noviembre 2012, 20:18 pm
|
proba asi: Imports System.Runtime.InteropServices Public Class Form1 Private Const HWND_BROADCAST As Integer = &HFFFF Private Const WM_WININICHANGE As Integer = &H1A, WM_SETTINGCHANGE As Integer = WM_WININICHANGE, INI_INTL As Integer = 1 <DllImport("user32.dll")> _ Private Shared Function SendMessage(ByVal hWnd As Integer, ByVal wMsg As UInteger, ByVal wParam As UInteger, ByVal lParam As UInteger) As Integer End Function Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, INI_INTL) End Sub End Class
|
|
|
|
|
|
|