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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 80
191  Programación / .NET (C#, VB.NET, ASP) / Re: Detectar cuando la bandeja del lector está abierta o cerrada en: 17 Noviembre 2017, 02:03 am
hola buenas

Tras leer el comentario de @Elektro en el otro tema(Hacer funcionar el lector de bandeja de discos con este lenguaje .net), decidí entrar aquí a ver el código de @Elektro.

Bueno, a mí tampoco me funcionaba el código de @Elektro pero conseguí que funcionara tras algunos cambios, especialmente con TimeSpan y ManagementBaseObject.

El caso es que ya me funciona y aquí dejo el código (que es un 99% del de @Elektro pero vamos  :P)

Pero antes algunos detalles,
- Desde NET, debe agregarse, desde 'agregar referencia'  la librería System.Management
- La unidad de CD/DVD ROM debe contener un disco en su interior, de lo contrario este código no hace nada de nada.

NOTA: En ambos casos he usado el un proyecto "Aplicación de Windows Forms"

C#
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Management;
  11. using System.IO;
  12. namespace WindowsFormsApplication1
  13. {
  14.    public partial class Form1 : Form
  15.    {
  16.        public Form1()
  17.        {
  18.            InitializeComponent();
  19.        }
  20.        private ManagementEventWatcher withEventsField_EventWatcher;
  21.        private ManagementEventWatcher EventWatcher
  22.        {
  23.            get { return withEventsField_EventWatcher; }
  24.            set
  25.            {
  26.                if (withEventsField_EventWatcher != null)
  27.                {
  28.                    withEventsField_EventWatcher.EventArrived -= EventWatcher_EventArrived;
  29.                }
  30.                withEventsField_EventWatcher = value;
  31.                if (withEventsField_EventWatcher != null)
  32.                {
  33.                    withEventsField_EventWatcher.EventArrived += EventWatcher_EventArrived;
  34.                }
  35.            }
  36.  
  37.        }
  38.  
  39.        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
  40.        {
  41.            this.EventWatcher.Dispose();
  42.        }
  43.        private void Form1_Load(object sender, EventArgs e)
  44.        {
  45.            try
  46.            {
  47.                WqlEventQuery eventQuery = new WqlEventQuery();
  48.                eventQuery.EventClassName = "__InstanceModificationEvent";
  49.                eventQuery.WithinInterval = new TimeSpan(0, 0, 1);
  50.                eventQuery.Condition = "TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 5";
  51.  
  52.  
  53.                EventWatcherOptions eventOptions = new EventWatcherOptions
  54.                {
  55.                    BlockSize = 1,
  56.                    Timeout = TimeSpan.MaxValue
  57.                };
  58.  
  59.                ManagementPath scopePath = new ManagementPath
  60.                {
  61.                    ClassName = "",
  62.                    NamespacePath = "root\\CIMV2",
  63.                    Path = "\\\\.\\root\\CIMV2",
  64.                    Server = "."
  65.                };
  66.  
  67.                ConnectionOptions scopeOptions = new ConnectionOptions
  68.                {
  69.                    Authentication = AuthenticationLevel.Default,
  70.                    EnablePrivileges = true,
  71.                    Impersonation = ImpersonationLevel.Impersonate,
  72.                    Timeout = TimeSpan.MaxValue
  73.                };
  74.  
  75.                ManagementScope scope = new ManagementScope("\\root\\CIMV2", scopeOptions);
  76.  
  77.                this.EventWatcher = new ManagementEventWatcher
  78.                {
  79.                    Options = eventOptions,
  80.                    Query = eventQuery,
  81.                    Scope = scope
  82.                };
  83.  
  84.                this.EventWatcher.Scope.Connect();
  85.                this.EventWatcher.Start();
  86.            }
  87.            catch (ManagementException ex)
  88.            {
  89.                Console.WriteLine(ex.Message);
  90.            }
  91.        }
  92.        private void EventWatcher_EventArrived(object sender, EventArrivedEventArgs e)
  93.        {
  94.          ManagementBaseObject wmiDevice = (ManagementBaseObject)e.NewEvent["TargetInstance"];
  95.            string VolumeName = null;
  96.            string driveName = (string)wmiDevice["DeviceID"];
  97.            if (wmiDevice.Properties["VolumeName"].Value != null)
  98.                  {
  99.             VolumeName  = wmiDevice.Properties["VolumeName"].Value.ToString();
  100.                  }
  101.            string Name = (string)wmiDevice["Name"];
  102.  
  103.            StringBuilder infoMessage = new StringBuilder();
  104.            infoMessage.AppendLine(driveName);
  105.            infoMessage.AppendLine(VolumeName);
  106.            infoMessage.AppendLine(Name);
  107.            if (wmiDevice.Properties["VolumeName"].Value != null)
  108.            {
  109.                infoMessage.AppendLine("CD has been inserted");
  110.  
  111.            }
  112.            else
  113.            {
  114.                infoMessage.AppendLine("CD has been ejected");
  115.  
  116.            }
  117.            MessageBox.Show(infoMessage.ToString());
  118.        }
  119.  
  120.    }
  121. }
  122.  


VB.NET
Código
  1.  
  2. Imports System.Management
  3. Imports System.IO
  4.  
  5. Public Class Form1
  6.    Private WithEvents EventWatcher As ManagementEventWatcher
  7.  
  8.    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  9.  
  10.    End Sub
  11.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  12.  
  13.        Try
  14.            Dim eventQuery As New WqlEventQuery()
  15.            eventQuery.EventClassName = "__InstanceModificationEvent"
  16.            eventQuery.WithinInterval = New TimeSpan(0, 0, 1)
  17.            eventQuery.Condition = "TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 5"
  18.  
  19.  
  20.            Dim eventOptions As New EventWatcherOptions With {
  21.                 .BlockSize = 1,
  22.                 .Timeout = TimeSpan.MaxValue
  23.             }
  24.  
  25.            Dim scopePath As New ManagementPath With {
  26.                .ClassName = "",
  27.                .NamespacePath = "root\CIMV2",
  28.                .Path = "\\.\root\CIMV2",
  29.                .Server = "."
  30.            }
  31.  
  32.            Dim scopeOptions As New ConnectionOptions With {
  33.                .Authentication = AuthenticationLevel.Default,
  34.                .EnablePrivileges = True,
  35.                .Impersonation = ImpersonationLevel.Impersonate,
  36.                .Timeout = TimeSpan.MaxValue
  37.            }
  38.  
  39.            Dim scope As New ManagementScope("\root\CIMV2", scopeOptions)
  40.  
  41.            Me.EventWatcher = New ManagementEventWatcher With {
  42.                .Options = eventOptions,
  43.                .Query = EventQuery,
  44.                .Scope = scope
  45.            }
  46.  
  47.            Me.EventWatcher.Scope.Connect()
  48.            Me.EventWatcher.Start()
  49.        Catch ex As ManagementException
  50.            Console.WriteLine(ex.Message)
  51.        End Try
  52.    End Sub
  53.  
  54.    Private Sub EventWatcher_EventArrived(sender As Object, e As EventArrivedEventArgs) Handles EventWatcher.EventArrived
  55.          Dim wmiDevice As ManagementBaseObject = DirectCast(e.NewEvent("TargetInstance"), ManagementBaseObject)
  56.        Dim driveName As String = DirectCast(wmiDevice("DeviceID"), String)
  57.        Dim VolumeName As String = wmiDevice.Properties("VolumeName").Value
  58.        Dim Name As String = DirectCast(wmiDevice("Name"), String)
  59.  
  60.        Dim infoMessage As New StringBuilder
  61.        infoMessage.AppendLine(driveName)
  62.        infoMessage.AppendLine(VolumeName)
  63.        infoMessage.AppendLine(Name)
  64.        If wmiDevice.Properties("VolumeName").Value IsNot Nothing Then
  65.            infoMessage.AppendLine("CD has been inserted")
  66.  
  67.        Else
  68.            infoMessage.AppendLine("CD has been ejected")
  69.  
  70.        End If
  71.        MessageBox.Show(infoMessage.ToString)
  72.    End Sub
  73.  
  74.    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  75.        Me.EventWatcher.Dispose()
  76.    End Sub
  77.  
  78. End Class
  79.  


192  Programación / .NET (C#, VB.NET, ASP) / Re: Hacer funcionar el lector de bandeja de discos con este lenguaje .net en: 16 Noviembre 2017, 11:24 am
Hola:

Buscando mciSendString encontré algunas cosas.

Comandos.

status.

¿Qué información quieres sacar exactamente con status?

La verdad no se el motivo.

Mi objeto al tema principal que pregunto. Es conseguir el mismo resultado de abrir y cerrar la bandeja del lector de disco con el lenguaje F#. Puse otros lenguajes que si funciona de C#, VB y C++ para que lo entienda mucha gente. Mi problema que no se hacerlo con F#.

Saludos.

mmm no se programar en F# :-\

El objetivo del comando "status" era saber el estado de apertura del lector si abierto o cerrado. Al menos para eso creía yo que serbia.
193  Programación / .NET (C#, VB.NET, ASP) / Re: Hacer funcionar el lector de bandeja de discos con este lenguaje .net en: 16 Noviembre 2017, 08:41 am
Buen aporte Meta, gracias  ;-)

Lo que no entiendo es porqué al usar el comando "status" mciSendString siempre me devuelve "open"

Código
  1.  Const cchReturnLen As UInteger = 255
  2.        Dim sRet As New StringBuilder(CInt(cchReturnLen))
  3.        Dim err As UInteger = mciSendString("status cdaudio mode", sRet, cchReturnLen, IntPtr.Zero)
  4.        MessageBox.Show(sRet.ToString)
  5.  


Código
  1.    <DllImport("winmm.dll")> _
  2.    Private Shared Function mciSendString(sCommand As String, sReturn As StringBuilder, cchReturn As UInteger, hwnd As IntPtr) As UInteger
  3.    End Function
194  Foros Generales / Foro Libre / Re: Y esto damas y caballeros, es lo que se suele llamar "un tonto del culo" en: 14 Noviembre 2017, 15:48 pm
vaya, y si te lo pones "en otro sitio", no digo donde... ¿Qué pasa?
195  Foros Generales / Foro Libre / Re: Máquina inalámbrica para Cortar el Cabello y la Barba. en: 14 Noviembre 2017, 15:41 pm
No tengo espejos traseros, tendré que fiarme de la máquina, por eso tiene que ser buena.

buff, eres un poco corto "de pelo" ¿no? jeje.

Te pones delante de un espejo normal, con una mano sujetas la máquina y con la otra el espejo pequeño de mano, como los que llevan muchas mujeres en el bolso  o de tocador por ejemplo.



Te colocas de espaldas al espejo normal (el grande de pared) y el espejo pequeño (el de mano) te lo pones delante de los ojos de modo que puedas ver reflejado  el espejo que tienes a tu espalda. Así podrás ver tu parte trasera.

Algunos espejos pequeños que se usan para maquillaje no son totalmente planos y aumentan la imagen. Estos van muy bien.

Incluso puedes usar el móvil. (venga va, animaos a hacer un App para esto  ;))

En fin algo así:




Fuente:
Yo lo hago  :xD





196  Programación / Programación Visual Basic / Re: Seleccionar un Item de un Listview y darle click derecho en: 12 Noviembre 2017, 19:45 pm
Hola
Simplemente usa las coordenadas del mouse para mover el picture:

Código
  1.       PicContainer.Left = ListView1.ColumnHeaders.Item(1).Width '//Coloca la imagen al final de la columna
  2.           'PicContainer.Left = Item.Width + 50 '//Coloca la imagen al final de texto
  3.           'PicContainer.Left = x '//Coloca la imagen en el lugar del puntero
  4.           PicContainer.Top = Item.Top + Item.Height + 40

Ejemplo:
Código
  1. Private Sub Listview1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  2.    'variable para el item seleccionado
  3.    Dim Item As ListItem
  4.  
  5.    ' verifica que se presionó el botón derecho
  6.    If Button = vbRightButton Then
  7.  
  8.        ' HitTest devuelve la ferencia al item, a partir _
  9.          de las coordenadas del mouse
  10.        Set Item = ListView1.HitTest(x, y)
  11.  
  12.        ' chequea que haya un item seleccionado
  13.        If Not Item Is Nothing Then
  14.  
  15.            ' Selecciona el elemento
  16.            Set ListView1.SelectedItem = Item
  17.  
  18.            ' texto del elemento seleccionado
  19.            Me.Caption = Item.Text
  20.  
  21.            PicContainer.Visible = True
  22.            lblListaDe.Caption = ListView1.SelectedItem.SubItems(1)
  23.           PicContainer.Left = ListView1.ColumnHeaders.Item(1).Width '//Coloca la imagen al final de la columna
  24.           'PicContainer.Left = Item.Width + 50 '//Coloca la imagen al final de texto
  25.           'PicContainer.Left = x '//Coloca la imagen en el lugar del puntero
  26.           PicContainer.Top = Item.Top + Item.Height + 40
  27.        End If
  28.  
  29.     Else
  30.  
  31.        PicContainer.Visible = False
  32.  
  33.    End If
  34.  
  35. End Sub
  36.  
  37.  

Como ves he deshabilitado varias líneas de código a la hora de colocar la imagen, una al final de la columna (habilitada), otra al final del texto, y otra justo en el mismo lugar en el que se encuentre el puntero. Según te guste más.


suerte
197  Foros Generales / Foro Libre / Re: El e-mail de SCAM más absurdo del mundo... en: 11 Noviembre 2017, 14:29 pm
Tengo la duda de si se trata de estafa o captación por una  secta  :-\
198  Foros Generales / Foro Libre / Re: EEUU lanza en Afganistán una bomba de 10 toneladas contra ISIS en: 11 Noviembre 2017, 12:00 pm
Yo soy católico porque me bautizaron, pero no soy practicante.

Hombre, a mi también me bautizaron pero no me considero católico, más que nada porque se hizo en contra de mi voluntad. Qué podía hacer yo si solo era un bebe.  Que un cura me echara agua en la cabeza no me convierte en católico.

Igualmente un musulmán me dijo - tu eres cristiano porque eres español - si hombre, lo que tu digas. Por esta regla de tres un  musulmán nacido en España es cristiano  aunque practique el Islam ¿no? O un árabe o de oriente medio  que es cristiano es musulman porque es árabe.  ;-)

Por cierto, a buenas horas comentas, este tema es de abril.
199  Foros Generales / Foro Libre / Re: Matemática, ¿cómo puedo mejorar velocidad de hacer cuentas ? en: 11 Noviembre 2017, 10:52 am
Hola

Hay técnicas para mejorar el cálculo mental.

Lo bueno del siguiente sistema:
 -  Lo puedes hacer donde quieras y cuando quieras, cuando comes, ves la TV, corres, nadas, caminas, paseas, conduces, viajas, etc

 -  No necesitas ningún App, solo tu mente.

Lo malo del siguiente sistema:
 - Se requiere constancia y fuerza de voluntad.

Ejemplos:

Suma mentalmente...
+2 + 2 +2 +2 +2... hasta 100
+3 + 3 + 3 + 3+ 3 ... hasta 99
+4 + 4 ... hasta 100
...
Suma mentalmente...
+2 + 3 + 4 + 5 + 6 + 7  hasta 100 hasta donde puedas...
...
Suma mentalmente...
+2 + 3 + 2 + 3 + 2 ( cualquier pareja de números)
...

Resta mentalmente...
-2 - 2 - 2 - 2 - 2... hasta 0 desde 100
-3 - 3 - 3 - 3 - 3 ... hasta 0 desde 99
-4 - 4 ... hasta 0
...

Resta mentalmente...
-2 - 3 - 4 - 5 - 6 - 7  
...

Resta mentalmente...
-2 - 3 - 2 - 3 - 2 ( cualquier pareja de números)
...

Tablas de multiplicación:
2x2
2x3
...

3x2
3x3
...

con 4, 5, 6,7 8, 9,(10 no necesario), 11, 12, 13, 14, 15, 16, 17, 18, 19,
21

Una vez practicado lo anterior, suma números, resta y multiplica con cifras más complejas:

Ejemplo:
12 +25 +10 + 21 + 5=...
5 + 8 +12 +33 +45 +17 = ...
86 - 8 - 3 -14 -11=...
12 x 13= ...
21 x 42= ...
126 x 13= ...

NOTA:
Puedes usar en este caso, si es necesario, una calculadora sencilla, para comprobar resultados, por ejemplo, sumas mentalmente 12 + 75 y luego comprueba resultado, posteriormente le sumas mentalmente al resultado 21 y compruebas, le sumas, 51 y compruebas, etc.

En cuanto a división requiere dominar suma, resta y multiplicación, de modo que yo recomiendo practicar antes lo anterior, especialmente con divisiones grandes. Divisiones sencillas pueden practicarse, hay tablas.


Los ejercicios visuales, crean dependencia visual en el cálculo. De modo que cuando necesitas hacer algún cálculo sientes la necesidad imperiosa de hacerlo sobre con  papel, o ver representados en alguna parte los números y en orden.

Con el tiempo usando estos ejercicios mentales, tu mente será capaza de hacer cálculos complejos de forma instantánea. Sin necesidad de tener que visualizar el ejercicio o los números.


Se me olvidaba, trabaja pares e impares. Por ejemplo si vas sumando de 7 en  7 empieza desde 0 y luego lo mismo de 1, desde 2, desde 3.. Igualmente con restas.

7, 14, 21, 28 ...
8, 15, 22, 29 ...
9, 16, 23, 30 ...
10, 17, 24, 31 ...
...
200  Foros Generales / Foro Libre / Re: Activado el artículo 155 de la Constitución Española por primera vez. en: 8 Noviembre 2017, 22:38 pm
Ahora mismo los independentistas están cortando carreteras y ferrocarriles por la fuerza.

Espero que, los Mossos que ya no tienen a un jefe que defiende los intereses del independentismo hagan cumplir la ley

Un saludo.

Pues resulta que no.

Los estudiantes independentistas de la Universidad Autónoma de Barcelona han cortado la autopista AP7. Y los Mossos presentes no lo han impedido.

MOD: No hacer doble post. Usa el botón modificar.

Me cito a mis mismo:

No se, pero el 155 no es milagroso. Puede aplicarse emitiendo órdenes de tipo jurídico, pero lo que no puede evitar que cualquier mindungui cuelgue un  twitt en Twitter convocando a la gente a realizar movilizaciones a bloquear carreteras, evitar el acceso a Universidades, pintar coches de personas se sabe no son independentistas y cualquier cosa rara que se les ocurra como excusa o protesta contra la aplicación del artículo 155. En fin, crear inestabilidad y poner otra vez a los 'peones' al frente.

Era de esperar...
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 80
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines