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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 [746] 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 ... 1236
7451  Programación / .NET (C#, VB.NET, ASP) / Re: Duda con "Win32_PrintJob" en: 7 Febrero 2014, 19:25 pm
Que buena info @Devdox, para que no se escape el dato importante ...esto lo dice todo:

Código
  1. Public Enum Job_Notify_Field_Indexes
  2.    '...
  3.    JOB_NOTIFY_FIELD_TOTAL_PAGES = &H14
  4.    JOB_NOTIFY_FIELD_PAGES_PRINTED = &H15
  5.    '...
  6. End Enum

Saludos
7452  Programación / Programación General / Re: Ayuda con programa C# en: 7 Febrero 2014, 18:56 pm
Hola,
las preguntas de C# van al subforo de C#.



Suponiendo que no necesitos recusión (controles dentro de paneles, etc...)

Método simple, no recursivo:

Código
  1.        For Each c As Control In Me.Controls
  2.            c.BackColor = Color.Red
  3.        Next c

Código
  1. foreach (Control c in this.Controls) {
  2. c.BackColor = Color.Red;
  3. }
  4.  
  5. //=======================================================
  6. //Service provided by Telerik (www.telerik.com)
  7. //Conversion powered by NRefactory.
  8. //Twitter: @telerik
  9. //Facebook: facebook.com/telerik
  10. //=======================================================


Método simple, recursivo:

Código
  1.    Private Shadows Sub Shown() Handles MyBase.Shown
  2.  
  3.        SetControlsBackColor(Me.Controls, Color.Red)
  4.  
  5.    End Sub
  6.  
  7.    Private Sub SetControlsBackColor(ByVal Collection As Control.ControlCollection,
  8.                                     ByVal Backcolor As Color)
  9.  
  10.        For Each c As Control In Collection
  11.  
  12.            If c.Controls.Count <> 0 Then
  13.                SetControlsBackColor(c.Controls, Backcolor)
  14.            End If
  15.  
  16.            c.BackColor = Backcolor
  17.  
  18.        Next c
  19.  
  20.    End Sub

Código
  1.  
  2. private new void Shown()
  3. {
  4. SetControlsBackColor(this.Controls, Color.Red);
  5.  
  6. }
  7.  
  8.  
  9. private void SetControlsBackColor(Control.ControlCollection Collection, Color Backcolor)
  10. {
  11.  
  12. foreach (Control c in Collection) {
  13. if (c.Controls.Count != 0) {
  14. SetControlsBackColor(c.Controls, Backcolor);
  15. }
  16.  
  17. c.BackColor = Backcolor;
  18.  
  19. }
  20.  
  21. }
  22.  
  23. //=======================================================
  24. //Service provided by Telerik (www.telerik.com)
  25. //Conversion powered by NRefactory.
  26. //Twitter: @telerik
  27. //Facebook: facebook.com/telerik
  28. //=======================================================



Método optimizado, no recursivo:

Código
  1. Public Class Form1
  2.  
  3.    Private Shadows Sub Shown() Handles MyBase.Shown
  4.  
  5.        ControlIterator.PerformAction(Me.Controls, Sub(c As Control)
  6.                                                       c.BackColor = Color.Green
  7.                                                   End Sub)
  8.  
  9.    End Sub
  10.  
  11.    ' ControlIterator
  12.    ' ( By Elektro )
  13.    '
  14.    ''' <summary>
  15.    ''' Iterates a serie of Controls to perform an operation.
  16.    ''' </summary>
  17.    Public Class ControlIterator
  18.  
  19.        ''' <summary>
  20.        ''' Perform an operation on all the Controls on the specified Control Collection.
  21.        ''' </summary>
  22.        ''' <param name="ControlCollection">Indicates the control collection where to find the controls.</param>
  23.        ''' <param name="Operation">Indicates the Action to perform on the controls.</param>
  24.        ''' <param name="ContainsName">Indicates that only controls containing name should be collected.</param>
  25.        Public Shared Function PerformAction(ByVal ControlCollection As Control.ControlCollection,
  26.                                             ByVal Operation As [Delegate],
  27.                                             Optional ByVal ContainsName As String = Nothing) As Boolean
  28.  
  29.            Return PerformActionOnControls((From c As Object In ControlCollection), Operation, ContainsName)
  30.  
  31.        End Function
  32.  
  33.        ''' <summary>
  34.        ''' Perform an operation on Controls.
  35.        ''' </summary>
  36.        Private Shared Function PerformActionOnControls(ByVal Controls As IEnumerable(Of Object),
  37.                                                        ByVal Operation As [Delegate],
  38.                                                        Optional ByVal ContainsName As String = Nothing) As Boolean
  39.  
  40.            If ContainsName IsNot Nothing Then
  41.                Controls = Controls.Where(Function(ctrl) ctrl.name.contains(ContainsName))
  42.                If Controls.Count = 0 Then Return False
  43.            End If
  44.  
  45.            For Each [Control] As Object In Controls
  46.  
  47.                If [Control].InvokeRequired Then
  48.                    [Control].Invoke(Operation, New Object() {[Control]})
  49.                Else
  50.                    Operation.Method.Invoke(Operation, New Object() {[Control]})
  51.                End If
  52.  
  53.            Next [Control]
  54.  
  55.            Return True
  56.  
  57.        End Function
  58.  
  59.    End Class
  60.  
  61. End Class

Código
  1. using Microsoft.VisualBasic;
  2. using System;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Diagnostics;
  7. public class Form1
  8. {
  9.  
  10.  
  11. private new void Shown()
  12. {
  13. ControlIterator.PerformAction(this.Controls, (Control c) => { c.BackColor = Color.Green; });
  14.  
  15. }
  16.  
  17. // ControlIterator
  18. // ( By Elektro )
  19. //
  20. /// <summary>
  21. /// Iterates a serie of Controls to perform an operation.
  22. /// </summary>
  23. public class ControlIterator
  24. {
  25.  
  26. /// <summary>
  27. /// Perform an operation on all the Controls on the specified Control Collection.
  28. /// </summary>
  29. /// <param name="ControlCollection">Indicates the control collection where to find the controls.</param>
  30. /// <param name="Operation">Indicates the Action to perform on the controls.</param>
  31. /// <param name="ContainsName">Indicates that only controls containing name should be collected.</param>
  32. public static bool PerformAction(Control.ControlCollection ControlCollection, Delegate Operation, string ContainsName = null)
  33. {
  34.  
  35. return PerformActionOnControls((from c in ControlCollection), Operation, ContainsName);
  36.  
  37. }
  38.  
  39. /// <summary>
  40. /// Perform an operation on Controls.
  41. /// </summary>
  42. private static bool PerformActionOnControls(IEnumerable<object> Controls, Delegate Operation, string ContainsName = null)
  43. {
  44.  
  45. if (ContainsName != null) {
  46. Controls = Controls.Where(ctrl => ctrl.name.contains(ContainsName));
  47. if (Controls.Count == 0)
  48. return false;
  49. }
  50.  
  51.  
  52. foreach (object Control in Controls) {
  53. if (Control.InvokeRequired) {
  54. Control.Invoke(Operation, new object[] { Control });
  55. } else {
  56. Operation.Method.Invoke(Operation, new object[] { Control });
  57. }
  58.  
  59. }
  60.  
  61. return true;
  62.  
  63. }
  64.  
  65. }
  66. public Form1()
  67. {
  68. Shown += Shown;
  69. }
  70.  
  71. }
  72.  
  73. //=======================================================
  74. //Service provided by Telerik (www.telerik.com)
  75. //Conversion powered by NRefactory.
  76. //Twitter: @telerik
  77. //Facebook: facebook.com/telerik
  78. //=======================================================
  79.  
7453  Informática / Software / Re: ¿Cómo puedo saber cuánto tiene de buffer mi disco duro? programa en: 7 Febrero 2014, 18:36 pm
eso es bueno o malo?

Es algo bueno.

No se si actuálmente existen HDD's con 128 mb de cache para el cosumidor, pero 64 mb es lo más corriente que se puede ver, te lo digo xq cada año suelo comprar hdd's y es lo que veo.

saludos
7454  Sistemas Operativos / Windows / Re: [DUDA] Cambiar letra de unidad a archivo con un Batch [DUDA] en: 7 Febrero 2014, 16:27 pm
hola

Vamos a ver, los archivos no tienen nada que ver, me explico...
Si tu desconectas un HDD interno de un PC muerto, y lo conectas en otro PC donde ya exista un HDD con un SO instalado enonces el SO le asignará una letra (que esté libre libre) a ese nuevo HDD, es decir, no será 'C'.

Como ha comentado mDrinky no debería haber ningún problema al respecto.

PD: ¿Quizás estés confundiendo archivos con accesos directos?, si quieres modificar la letra de unidad del destino de accesos directos tiene facil solución.

Saludos
7455  Programación / .NET (C#, VB.NET, ASP) / Re: Combinaciones letras o numeros en: 7 Febrero 2014, 11:02 am
Nah, no soy ningún prodigio como programador ni como tutor, solo es que tengo paciencia xD.

Citar
saltar las combinaciones para que no sean seguidas
Creo que tarde o temprano vas a acabar preguntándolo, mejor hazlo ahora, aquí estamos para ayudar... pero si lo preguntas haz el favor de explicarlo con detalles, no de esa manera que he citado porque no hay quien lo entienda xD.

Saludos
7456  Programación / .NET (C#, VB.NET, ASP) / Re: DUDA Ruta archivos en ejecución[SOLUCIONADO] en: 7 Febrero 2014, 10:39 am
Elektro, ¿ Hay alguna forma de hacerlo pero con un archivo abierto y no un proceso?.

No estoy muy seguro así que no puedo asegurar nada, pero dudo que exista una manera eficiente.

Si abres un archivo .TXT con un editor de texto y este editor de texto mantiene ocupado el archivo (en modo de lectura o escritura) segúramente puedas encontrar un Handle que haga referencia a ese archivo, de lo contario...pues no lo creo, ya que el archivo ya se cerró por el programa.

Y si abres un archivo con un programa puedes encontrar la referencia a ese archivo "abierto" usando WMI para buscar los parámetros commandline de los procesos en ejecución, por ejemplo, si Notepad fuese el editor predefinido en tu sistema y haces doble click en un archivo de texto entonces se iniciará el Notepad con estos parámetros:
Código:
Notepad.exe "Archivo abierto"
...y usando WMI podrás encontrar los parámetros de ese proceso para encontrar el archivo abierto.
Pero si desde esa mimsa instancia del programa abres otro(s) archivo(s) entonces óbviamente buscar los parámetros de la aplicación no te va a servir de nada porque el programa ya está iniciado y el nuevo archivo lo has abierto desde el programa.

Y si lo que quieres es monitorear la ejecución de un archivo, en tiempo real, pues... lo tienes dificil, un 'FileSystemWatcher' solo te va a informar de los cambios una vez se hayan realizado, no antes, ni mientras. Necesitarías escribir un driver (un 'filesystem filter driver') para capturar todas las operaciones de escritura que necesites, lo cual no es nada facil...

Aunque como ya digo, no estoy muy seguro de si habrá otra forma.
Saludos.
7457  Programación / Scripting / Re: PYTHON EJECUTABLE EN WINDOWS SOLO RETOCANDO CODIGO en: 7 Febrero 2014, 10:05 am
Para leer un Script es necesario ejecutar la aplicación que se encarga de interpretar las órdenes (el intérprete)... (Ej: Python.exe ".\Script.py").

Puedes usar CX_FREEZE para unir en un solo archivo executable el intérprete junto al script y los módulos que quieras, para que corran en cualquier Windows sin necesidad de tener instalado Python.

Saludos.
7458  Programación / .NET (C#, VB.NET, ASP) / Re: Combinaciones letras o numeros en: 6 Febrero 2014, 20:31 pm
Código
  1. For X As Integer = 0 To Elementos.Count - 1 Step 4
  2.  
  3.    MessageBox.Show(
  4.        String.Format("{0} {1} {2} {3}",
  5.                      Elementos(X),
  6.                      If(Not (X + 1) >= Elementos.Count, Elementos(X + 1), String.Empty),
  7.                      If(Not (X + 2) >= Elementos.Count, Elementos(X + 2), String.Empty),
  8.                      If(Not (X + 3) >= Elementos.Count, Elementos(X + 3), String.Empty), "Cuatro Elementos"))
  9.  
  10. Next X

Fíjate bien en los cambios, esto puedes hacerlo sin ayuda

Código
  1. For X As Integer = 0 To Elementos.Count - 1 Step 4
  2.  
  3.    ListBox1.Items.Add(
  4.        String.Format("{0} {1} {2} {3}",
  5.                      Elementos(X),
  6.                      If(Not (X + 1) >= Elementos.Count, Elementos(X + 1), String.Empty),
  7.                      If(Not (X + 2) >= Elementos.Count, Elementos(X + 2), String.Empty),
  8.                      If(Not (X + 3) >= Elementos.Count, Elementos(X + 3), String.Empty)))
  9.  
  10. Next X

Saludos!
7459  Programación / Scripting / Re: Generar Reporte de Pings con Proceso Batch (.bat) en: 6 Febrero 2014, 06:14 am
@Nicolas
No formaré parte de la discusión pero creo que deberías sentirte agradecido por el esfuerzo que hacen el resto de compañeros para mostrarte códigos, ya sé que @mDrinky escribió poco, pero podría no haberte escrito nada.



Citar
quiero generar los reportes de los IP que esten ocupados por usuarios, lo ideal seria tener el nombre del usuario y su ip en el caso de que estuviece ocupado

No llego a comprender muy bien lo que quieres hacer, pero pareces dar a entender que estás intentando sacar el nombre de usuario de una IP que no está asignada en tu red/grupo de trabajo ( Ejemplo: www.google.com ).

El tema Redes no es lo mio así que quizás estoy equivocado con mis conjeturas pero vamos, yo nunca he oido decir que esto sea algo posible... dudo mucho que sea posible acceder a esa información tan relevante teniendo una misera IP... un Lookup a una IP externa no muestra información acerca del nombre de usuario del SO al que está asignada una IP.

Por otro lado, si es en tu red local y estás usando AD entonces puedes usar priméramente el comando nbtstat para obtener el nombre del equipo de una IP:

Código:
nbtstat -a IP

Y luego puedes usar el comando net view para listar los usuarios del dominio de ActiveDirectory.

Código:
net view /Dominio:ad

...Por último solo tendrías que usar el comando find y/o findstr para filtrar la salida del comando net view buscando el nombre del equipo que obtuviste usando el comando de nbtstat y listo, ahí verás el nombre de usuario.

No te muestro código porque no puedo manejar esos comandos en mi PC, y tampoco sé si es eso lo que quieres, pero es bin facil de hacer solo tendrías que usar FOR /F para iterar el output de cada comando y quedarte con el valor importante de cada uno.

Saludos!
7460  Programación / .NET (C#, VB.NET, ASP) / Re: DUDA Ruta archivos en ejecución[SOLUCIONADO] en: 6 Febrero 2014, 05:32 am
si, parece que el conversor online se comío las clausulas ' Where' y 'Select' xD, no me di cuenta y tampoco testeé el código en C#.

Me alegro de que lo hayas solucionado.

saludos
Páginas: 1 ... 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 [746] 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines