elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 [996] 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 ... 1236
9951  Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Toolbox incompleto en: 21 Diciembre 2012, 13:17 pm
Si creo un nuevo proyecto, este es mi Toolbox:


Pero si abro un proyecto antiguo, el toolbox cambia y se eliminan todos los controles que agregué manualmente:


¿Porque Microsoft me odia tanto?
9952  Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets en: 21 Diciembre 2012, 12:33 pm
me puse a pensar que sería lo que podría tener en snippets, pero la verdad no se me ocurre :P
que pena que no tengas,
yo pienso que con unos cuantos snippets y pocas modificaciones se puede llegar a crear un programa entero en un instante.

Por ejemplo creamos un programa con un webbrowser y el htmlagilitypack para parsear alguna web y tomar los enlaces, o un auto-login, nos cuesta varias horas hacerlo (sin tener en cuenta el diseño).

Ahora sacamos snippets de las funciones y subrutinas más improtantes que hacemos en ese proyecto, y el próximo proyecto parecido que tengamos que hacer nos costará minutos, o al menos mucho mucho menos que al principio xD.

PD: Tenías razón, había mucho code mejorable, por ejemplo el de "isinternetavaliable" se hacía en unas 10 líneas y de una manera que no me gusta nada, el snippet original incluido en VS2012 lo hace en una línea xD


HE ACTUALIZADO LOS SNIPPETS
Algunos nuevos y algunos ligéramente mejorados basándome en los que vienen incluidos por defecto en VS2012.
9953  Programación / .NET (C#, VB.NET, ASP) / Re: Importar referencias Vs. usarlas directamente en: 21 Diciembre 2012, 10:15 am
Gracias por responder kub0x, pero entonces solo sirve para "reducir código", ¿no?, osea puedo pasar totálmente de las importaciones si no busco que el código quede ameno...
9954  Programación / .NET (C#, VB.NET, ASP) / Importar referencias Vs. usarlas directamente en: 21 Diciembre 2012, 07:26 am
por ejemplo:
Código
  1. imports System.Runtime.InteropServices
  2. Guid("0000010c-0000-0000-c000-000000000046")

o:
Código
  1. System.Runtime.InteropServices.Guid("0000010c-0000-0000-c000-000000000046")


¿Existe alguna diferencia al importar, como podría ser por ejemplo... mayor velocidad en el código u otro tipo de optimizaciones?,
¿O podemos usarlas directamente como en el segundo ejemplo sin preocupaciones?

Yo estoy acostumbrado a escribirlas directamente, me ahorran mucho tiempo por ejemplo al copiar una parte de código para añadirla en una nueva class, entonces en esa class no tengo que verificar las importaciones que son necesarias ni importar nada,
Pero no se si estoy actuando corréctamente.
9955  Programación / .NET (C#, VB.NET, ASP) / Re: Los controles de la class principal no se actualizan con delegados... :-/ en: 21 Diciembre 2012, 07:11 am
despues que trabaje simplemente harias
T_first_instance = new thread(addressOF sub/function)
y vuelves a arrancarlo ;)

uf, perfecto lo conseguí, esto me va a ahorrar mucha comida de coco, gracias !!

Código
  1. Public thread_1 As System.Threading.Thread = New Threading.Thread(AddressOf MITHREAD)
  2.  
  3.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  4.        ' Cada vez que el botón séa presionado se ejecutará el mismo thread una y otra vez, oh yeah :D !!!
  5.        Dim thread_1 As System.Threading.Thread = New Threading.Thread(AddressOf MITHREAD)
  6.        thread_1.Start()
  7.    End Sub

PD: Realmente no encontraba información sobre como ejecutar el mismo thread una vez "ha muerto".
9956  Programación / .NET (C#, VB.NET, ASP) / Re: Los controles de la class principal no se actualizan con delegados... :-/ en: 21 Diciembre 2012, 06:52 am
no uses backgroundworker con delegados ... usa threads

Si eso está muy bien pero... todos sabemos que un "System.Threading.Thread" sólamente se puede iniciar una vez,
He leido que para poder ejecutar el mismo thread infinitas veces solo hay que resetear la variable de la instancia del thread, osea crear una nueva instancia de "System.Threading.Thread" que llame al mismo thread

Por ejemplo:

Código
  1.    Sub MITHREAD()
  2.       msgbox("hello world")
  3.    End Sub
  4.  
  5. Dim T_first_instance As System.Threading.Thread = New Threading.Thread(AddressOf MITHREAD)
  6. T_first_instance.Start()
  7.  
  8. ' esperamos a que el thread finalice y entonces lo volvemos a llamar cuando necesitemos volver a usarlo, pero creandolo con otro nombre de variable:
  9. Dim T_second_instance As System.Threading.Thread = New Threading.Thread(AddressOf MITHREAD)
  10. T_second_instance.Start()
  11. '
  12. ' EL ADREESOF ES EL MISMO PARA LAS DOS INSTANCIAS YA QUE LA INTENCIÓN ES PODER USAR EL MISMO THREAD UNA Y OTRA VEZ.

No sé si lo hice bien, donde leí la solución para ejecutar el mismo thread las veces que uno quiera no había ningún ejemplo,
pero en caso de que el ejemplo que he dado séa correcto entonces necesito encontrar la manera de que el nombre de la variable se cree automáticamente para poder llamarlo las veces que séa necesario...
Necesitaría algo así:

Código
  1.  
  2. sub button1_clicked...
  3.       Dim RandomClass As New Random()
  4.        Dim RandomNumber As Integer = RandomClass.Next()
  5.        Dim T_(RandomNumber) As System.Threading.Thread = New Threading.Thread(AddressOf MITHREAD)
  6.        T_(RandomNumber).Start()
  7. end sub
  8.  

Está claro que mi intento de randomizar la variable de la instancia no funciona,
¿Me pueden ayudar a hacerlo?
9957  Programación / .NET (C#, VB.NET, ASP) / Re: Los controles de la class principal no se actualizan con delegados... :-/ en: 20 Diciembre 2012, 15:56 pm
Vale Nov, lo he intentado así

Código
  1. sub dowork(...)
  2. ...
  3. Using sw = New StreamWriter(tmpFile, False, Encoding.UTF8)
  4.            For filei = 0 To nLines - 1
  5.                sw.WriteLine(lines(randomNumbers(filei)))
  6.                Randomizethread.ReportProgress(filei)
  7.            Next
  8.        End Using
  9. ...
  10. end sub

Código
  1.    Public Shared Sub Randomizethread_ProgressChanged(ByVal sender As System.Object, ByVal e As ProgressChangedEventArgs) Handles Randomizethread.ProgressChanged
  2.        ' Thread.Sleep(300)
  3.        InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Text = "Randomizing " + filei.ToString() + " of " + (nlines - 1).ToString() + " files.")
  4.    End Sub


Problema: Sigue sin actualizarse el label (ni cualquier otro elemento al que llame, como la barra de progreso por ejemplo vaya) :¬¬ :¬¬ :¬¬

Ni con un refresh() puedo.

EDITO: El label se actualiza cuando el hilo se completa (cuando sucede el evento del workercompleted), asi que me imagino que el culpable es el FOR?, ¿Como puedo solucionarlo?

PD: No creo que séa problema del delegado porque si compruebo el valor con un msgbox(PlayLists.Form1.progresslabel.txt) veo que el valor es correcto
9958  Programación / .NET (C#, VB.NET, ASP) / Los controles de la class principal no se actualizan con delegados... :-/ en: 20 Diciembre 2012, 14:05 pm
Es la primera vez que pruebo a hacer esto y no se que error estoy comentiendo...

Por un lado tengo la class principal (Form1)
Por otro lado tengo una class para un backgroundworker

Al usar delegados desde la segunda class para modificar la propiedad de un control de la class principal no sucede nada, la propiedad se modifica pero el control no se actualiza visualmente hablando en el form...  es decir, ni el label ni la progressbar cambian de estado :¬¬


class principal.vb :
Código
  1. Public Randomize_thread As New Randomize_thread_class
  2. ...
  3. Randomize_thread.StartBackgroundTask()
  4. ...


class del backgroundworker.vb :
Código
  1.  
  2. Imports PlayLists.Form1
  3.  
  4. ...
  5.  
  6.    Public WithEvents Randomize_thread As New BackgroundWorker
  7.  
  8.    Public Sub InvokeControl(Of T As Control)(ByVal Control As T, ByVal Action As Action(Of T))
  9.        If Control.InvokeRequired Then
  10.            Control.Invoke(New Action(Of T, Action(Of T))(AddressOf InvokeControl), New Object() {Control, Action})
  11.        Else
  12.            Action(Control)
  13.        End If
  14.    End Sub
  15.  
  16. ...
  17.  
  18.    Public Sub Randomize_thread_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles Randomize_thread.DoWork
  19.        Dim lines = File.ReadAllLines(PlayLists.Form1.Temp_file)
  20.        Dim nLines = lines.Count
  21.        Dim randomNumbers = RandomList(nLines)
  22.        Dim tmpFile = Path.GetTempFileName()
  23.  
  24.        InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Visible = True)
  25.        InvokeControl(PlayLists.Form1.ProgressBar1, Sub(x) x.Maximum += nLines)
  26.        Using sw = New StreamWriter(tmpFile, False, Encoding.UTF8)
  27.            For i = 0 To nLines - 1
  28.                sw.WriteLine(lines(randomNumbers(i)))
  29.                InvokeControl(PlayLists.Form1.ProgressBar1, Sub(x) x.Value = i)
  30.                InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Text = "Randomizing " + i.ToString() + " of " + (nLines - 1).ToString() + " files.")
  31.                ' InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Refresh())
  32.                ' InvokeControl(PlayLists.Form1.ProgressBar1, Sub(x) x.Refresh())
  33.            Next
  34.        End Using
  35.        InvokeControl(PlayLists.Form1.progresslabel, Sub(x) x.Text = "All files launched")
  36.    End Sub
9959  Programación / Scripting / Re: Modificar archivo de texto sin conocer su ruta en: 20 Diciembre 2012, 13:49 pm
Hay alguna solución para eso ?
Listar únicamente los discos fijos:

Código
  1. @echo off
  2. For /F "tokens=2" %%@ in ('wmic logicaldisk get name^,drivetype /Format:texttable ^| Find "3"') do (
  3. (DIR /B /S "%%@\ARCHIVO_XX.txt")>> "%userprofile%\salida.txt"
  4. )
  5. Pause&Exit
9960  Programación / Scripting / Re: Modificar archivo de texto sin conocer su ruta en: 20 Diciembre 2012, 11:59 am
El "If Exists" que has añadido es innecesario, como te expliqué el comanod que utilizo del wmic sirve para obtener las unidades conectadas, osea las unidades que existen...

Te da ese tipo de error con los caracteres porque la salida del comando wmic está en unicode por defecto,
debí haber previsto que podrías tener problemas para la intención que quieres darle al usar el formato "list".

Aquí tienes:
Código
  1. For /F %%@ in ('wmic logicaldisk get name /Format:texttable ^| Find ":"') do (
  2.    (DIR /B /S "%%@\ARCHIVO_XX.txt")>> "%userprofile%\salida.txt"
  3. )
  4. Pause&Exit
Páginas: 1 ... 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 [996] 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines