Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - okik

#381
.NET (C#, VB.NET, ASP) / Re: Quitar el menu
25 Noviembre 2016, 15:22 PM
¿que versión de visual usas?
¿Dónde aparece dicho menú exactamente?

¿Al ejecutar qué programa aparece?, ¿Visual o al iniciar el modo depuración?
#382
muy simple...

noticias sensacionalista +  publi = money, money, money...
#383
Usa Console.ReadKey().KeyChar


Al pulsar 1 crea los números aleatorios:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           char op = '\0';
          // int num = 0;
           Console.WriteLine("Elija una opcion:");
           op = Console.ReadKey().KeyChar;

           switch (op)
           {
               case '1':
                   Opcion1();
                   break;
               case '2':
                   Opcion2();
                   break;
               case '3':
                   break;
               case '4':
                   break;
           }

           Console.ReadLine();
       }
       public static void Opcion1()
       {


           Random rdn = new Random();
           int a = rdn.Next(10, 30);
           int b = rdn.Next(10, 30);
           Console.WriteLine(Environment.NewLine);
           Console.WriteLine("Números aleatorios: {0} y {1}", a, b);

       }


       public static void Opcion2()
       {
       }
   }
}





Usa Console.ReadLine() en lugar de Console.ReadKey(), pero tienes que pulsar Enter para iniciar la función

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           int op = 0;
          // int num = 0;
           Console.WriteLine("Elija una opcion:");
           op = Convert.ToInt32(Console.ReadLine());

           switch (op)
           {
               case 1:
                   Opcion1();
                   break;
               case 2:
                   Opcion2();
                   break;
               case 3:
                   break;
               case 4:
                   break;
           }

           Console.ReadLine();
       }
       public static void Opcion1()
       {


           Random rdn = new Random();
           int a = rdn.Next(10, 30);
           int b = rdn.Next(10, 30);
           Console.WriteLine(Environment.NewLine);
           Console.WriteLine("Números aleatorios: {0} y {1}", a, b);

       }


       public static void Opcion2()
       {
       }
   }
}



También:
Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           string op = null;
          // int num = 0;
           Console.WriteLine("Elija una opcion:");
           op = Console.ReadLine();

           switch (op)
           {
               case "1":
                   Opcion1();
                   break;
               case "2":
                   Opcion2();
                   break;
               case "3":
                   break;
               case "4":
                   break;
           }

           Console.ReadLine();
       }
       public static void Opcion1()
       {


           Random rdn = new Random();
           int a = rdn.Next(10, 30);
           int b = rdn.Next(10, 30);
           Console.WriteLine(Environment.NewLine);
           Console.WriteLine("Números aleatorios: {0} y {1}", a, b);

       }


       public static void Opcion2()
       {
       }
   }
}

#384
Foro Libre / Re: descargar libros de cisco por mega
24 Noviembre 2016, 16:10 PM
Cita de: seekdestroy en 24 Noviembre 2016, 15:29 PM
Hola estuve mirando a ver si podia descargar libros de cisco por mega pero no encuentro en este foro alguien me los puede pasar gracias

¿Hello? Deberías poner un título  que defina un poco mejor el mensaje o la pregunta que quieres hacer.

y ¿qué és cisco?

https://es.wikipedia.org/wiki/Certificaci%C3%B3n_Cisco
#385
Puedes usar la clase System.Math y la función Sqrt

Código (vbnet) [Seleccionar]

Dim Raiz As Decimal = Math.Sqrt(36)
MessageBox.Show(Raiz)


Aunque no existiera tal función, sabiendo un poco de matemáticas y qué es una raíz cuadrada deberías saber que una raíz cuadrada de un numero es igual que la potencia del radicando con exponente 1/2

a(1/2)


Código (vbnet) [Seleccionar]

MessageBox.Show(36^(1/2)) 'devuelve 6  ya que 6 x 6 = 36



La raíz cúbica sería:

a(1/3)

Código (vbnet) [Seleccionar]

MessageBox.Show(125^(1/3)) 'devuelve 5  ya que  5 x 5 x 5 = 125


#386
No había entendido tu pregunta pero tras ver la respuesta de engel lex. Creo que entendí lo que quieres.

Supongo que lo que quieres es mediante una línea de comandos de consola llenar un textbox de tu aplicación del modo:

WindowsApplication1 text "hola mundo"
(donde WindowsApplication1 es el nombre de la aplicación)

Como te ha mostrado @engel lex, se puede obtener una entrada de comandos mediante Environment.GetCommandLineArgs()

Código (vbnet) [Seleccionar]
Dim Command() As String = Environment.GetCommandLineArgs()

Se obtiene una matriz donde cada palabra añade un elemento a la matriz:
Por ejemplo, si pones "WindowsApplication1  mañana es domingo", obtendrías:

Command(0) = WindowsApplication1
Command(1) = mañana
Command(2) = es
Command(3) = domingo


Entonces para crear una línea de comandos compuesta debes tener en cuenta esto. Así puedes establecer que si el primer comando es "open", ejecutar un proceso que sería el elemento (2) de la matriz.

Código (vbnet) [Seleccionar]
If Command(1) = "open" then Process.Start(Commmand(2))


Ejemplo:

Código (vbnet) [Seleccionar]
 
       Dim Command() As String = Environment.GetCommandLineArgs
       Select Case Command(1)
           Case "open"
               Process.Start(Command(2).ToString)
           Case "text"
               TextBox1.Text = Command(2).ToString
       End Select



Crea un archivo CMD junto en el mismo directorio de la aplicación y le pones:

WindowsApplication1  text "Hola mundo"
(WindowsApplication1 es el nombre de la aplicación)

Se llenará el Textbox con el texto 'Hola mundo' (sin las comillas).


Si pones
WindowsApplication1 open notepad

Se abrirá el bloc de notas de Windows.




para obtener la línea de comandos completa usa  Environment.CommandLine.

     
Código (vbnet) [Seleccionar]

       Dim Command As String = Environment.CommandLine
       MessageBox.Show(Command)



#387
¿has probado este para VB6?

Instalar Visual Studio 6.0 en Windows7 64 bits

Mira el apartado [OTRA FORMA DE INSTALAR VS6 EN W7-64BITS]


Por cierto, es mío.  




Acabo de probar con VB5, no hay problemas para instalarlo y además funciona. Tan solo as de hacer clic con el botón derecho sobre vb5cce.exe, seleccionar 'Propiedades' y cambiar la a compatibilidad en Windows95.

Claro que yo ya tengo instalado VB6, así que no se que pasaría en un W7 64bits, limpio, sin instalación previa de vb6.


Perdón, lo que he instalado es una versión reducida de VB5, por error perdí la imagen de disco original y se ve que la sustituí por una versión reducida, que lo único que hace es descomprimir los archivos en una carpeta. Ya me extrañaba a mi que no me pidiera el serial, ni me dejara elegir componentes :P




Vale ya lo encontré, lo tenía en otra carpeta.

Vale el problema es que para instalar se debe ejecutar 'F:\Vb\SETUP\SETUP.EXE'
que de 16bits y no se puede ejecutar en 64bits.

voy a mirar a ver.




INSTALAR VB5 EN WINDOWS 7 64 BITS


1. Crea una carpeta en el escritorio llámala VB5 (o lo que quieras)

2. Copia el contenido del disco o imagen de disco de VB5 en esa carpeta.

3. Dirígete a  [...\Desktop\VB5\Vb\SETUP]

4. Haz una copia de VB5STP.STF y lo renombras por  ACMSETUP.STF

5. Ejecuta ACMSETUP.EXE.

6. Sigue los pasos de instalación.




También es aplicable el truco para ejecutar el SETUP.EXE original de 16bits en Windows 7 64bits que usé en el apartado [OTRA FORMA DE INSTALAR VS6 EN W7-64BITS] en este tutorial para instalar VB6:
Instalar Visual Studio 6.0 en Windows7 64 bits

Que consiste en abrir .:\Vb\SETUP\SETUP.EXE con C++ en modo Resources y cambiar en Versión el valor [Programa de instalación de Microsoft para Windows]  por [Microsoft Setup for Windows] y guardar los cambios. Si se hace esto SETUP.EXE. de 16bits se ejecutará en Windows7 64bits.

También se puede usar un editor hexadecimal y reemplazarlo manualmente:

(Sustituye los caracteres que sobran por [00] que es igual a '.' (punto))


En VB6 se debía modificar ACMBOOT.EXE, pero con VB5 es SETUP.EXE (OJO  :rolleyes: el que se encuentra en [.:\Vb\SETUP\]

#388
usando API tienes SHFileOperation

Aquí te dejo una clase NativeMethods con la función SHfileOpDelete creada por mí para enviar archivos a la papelera de reciclaje. Puedes establecer si quieres eliminarlo directamente  o  enviar a la papelera y si mostrar mensaje de confirmación o no:


para VB.NET
Código (vbnet) [Seleccionar]
<System.Security.SuppressUnmanagedCodeSecurity()>
Friend NotInheritable Class NativeMethods
    Inherits Attribute
    Private Sub New()
    End Sub
    ''' <summary>
    ''' Copia un bloque de memoria de un lugar a otro.
    ''' https://msdn.microsoft.com/es-es/library/windows/desktop/aa366535(v=vs.85).aspx
    ''' </summary>
    ''' <param name="Destination">Un puntero a la dirección inicial del destino del bloque copiado.</param>
    ''' <param name="Source">Un puntero a la dirección inicial del bloque de memoria para copiar.</param>
    ''' <param name="Length">El tamaño del bloque de memoria para copiar, en bytes.</param>
    ''' <remarks></remarks>
    <DllImport("KERNEL32", EntryPoint:="RtlMoveMemory")> _
    Private Shared Sub CopyMemory(<MarshalAs(UnmanagedType.I1)> ByRef Destination As Byte,
                           <MarshalAs(UnmanagedType.AsAny)> ByVal Source As Object, ByVal Length As Integer)
    End Sub
    'SHGetPathFromIDListW (En VB se usa este entrada)
    ''' <summary>
    '''Copia, mueve, cambia el nombre o elimina un objeto de sistema de archivos. Esta función se ha reemplazado en Windows Vista por IFileOperation.
    '''https://msdn.microsoft.com/en-us/library/windows/desktop/bb762164(v=vs.85).aspx
    ''' </summary>
    ''' <param name="lpFileOp"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    <DllImport("shell32.dll", EntryPoint:="SHFileOperationA")> _
    Public Shared Function SHFileOperation(<[In], [Out](), MarshalAs(UnmanagedType.Struct)> ByRef lpFileOp As SHFILEOPSTRUCT) As Integer
    End Function
    ' Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _
    Public Structure SHFILEOPSTRUCT
        Public hWnd As IntPtr
        Public wFunc As Integer
        <MarshalAs(UnmanagedType.LPStr)> Public pFrom As String
        <MarshalAs(UnmanagedType.LPStr)> Public pTo As String
        Public fFlags As UShort
        <MarshalAs(UnmanagedType.Bool)> Public fAnyOperationsAborted As Boolean
        Public hNameMappings As IntPtr
        <MarshalAs(UnmanagedType.LPStr)> Public lpszProgressTitle As String
    End Structure


    Private Const FOF_CONFIRMMOUSE As Short = &H2S
    Private Const FOF_ALLOWUNDO As Short = &H40S   'Envía a la papelera de reciclaje
    Private Const FOF_FILESONLY As Short = &H80S
    Private Const FOF_MULTIDESTFILES As Short = &H1S
    Private Const FOF_NOCONFIRMATION As Short = &H10S '  No pedir confirmación al usuario.
    Private Const FOF_NOCONFIRMMKDIR As Short = &H200S
    Private Const FOF_NO_CONNECTED_ELEMENTS As Short = &H1000S
    Private Const FOF_NOCOPYSECURITYATTRIBS As Short = &H800S
    Private Const FOF_NOERRORUI As Short = &H400S
    Private Const FOF_RENAMEONCOLLISION As Short = &H8S
    Private Const FOF_SILENT As Short = &H4S   '  no crear avance/informe
    Private Const FOF_SIMPLEPROGRESS As Short = &H100S
    Private Const FOF_WANTMAPPINGHANDLE As Short = &H20S
    Private Const FOF_WANTNUKEWARNING As Short = &H2000S
    Private Const FOF_NORECURSION As Short = &H1000S '// don't recurse into directories.
     Private Const FO_DELETE As Short = &H3

    ''' <summary>
    ''' Función para borrar archivos
    ''' </summary>
    ''' <param name="Ounerhwnd"></param>
    ''' <param name="sFile">Archivo o carpeta a eliminar</param>
    ''' <param name="RecycleMode">boleano: True-> envía a la papelera de reciclaje, False ->no envía a la papelera</param>
    ''' <param name="DialogConfirmation">Boleano: True-> muestra un diálogo, False-> no muestra diálogo</param>
    ''' <remarks></remarks>
    Public Shared Sub SHfileOpDelete(ByVal Ounerhwnd As IntPtr, ByVal sFile As String, ByVal RecycleMode As Boolean, ByVal DialogConfirmation As Boolean)
        Dim Result As Integer = Nothing
        Dim lenFileop As Integer
        Dim foBuf() As Byte
        Dim SHFileOp As New SHFILEOPSTRUCT
        lenFileop = Marshal.SizeOf(SHFileOp)    ' double word alignment increase

        ReDim Preserve foBuf(CInt(lenFileop)) ' the size of the structure.

        With SHFileOp
            .hWnd = Ounerhwnd
            .wFunc = FO_DELETE
            .pFrom = sFile & vbNullChar & vbNullChar
            .hNameMappings = IntPtr.Zero
            If RecycleMode Then
                If DialogConfirmation Then
                    .fFlags = FOF_ALLOWUNDO 'Envía a la papelera de reciclaje con diálogo de confirmación
                Else
                    .fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION 'Envía a la papelera de reciclaje sin  mensaje de confirmación
                End If
            Else
                If DialogConfirmation Then
                    .fFlags = FOF_SILENT 'Elimina diréctamente con diálogo de confirmación
                Else
                    .fFlags = FOF_NOCONFIRMATION Or FOF_SILENT 'Elimina directamente sin diálogo de confirmación
                End If
            End If
        End With
        CopyMemory(foBuf(1), SHFileOp, lenFileop)
        CopyMemory(foBuf(19), foBuf(21), 12)
        Try
            Result = SHFileOperation(SHFileOp)

        Catch ex As Exception
            MessageBox.Show(Err.Description)
        End Try

    End Sub
End Class



Para llamar a la función se hace de la siguiente manera:

Código (vbnet) [Seleccionar]
     NativeMethods.SHfileOpDelete(Ounerhwnd:=Me.Handle,
                                     sFile:="D:\01.rtf",
                                     RecycleMode:=True,
                                     DialogConfirmation:=True)


Ejemplo:
Código (vbnet) [Seleccionar]
Imports System.Runtime.InteropServices

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     NativeMethods.SHfileOpDelete(Ounerhwnd:=Me.Handle,
                                     sFile:="D:\01.rtf",
                                     RecycleMode:=True,
                                     DialogConfirmation:=True)
    End Sub
End Class





#389
Accede a 'Propiedades de proyecto' en el menú 'PROYECTO' y selecciona Recursos

Selecciona 'Cadenas'

En la columna 'Nombre',  en la primera fila pones 'Button1_Spanish' y en Valor pones 'Examinar'

En la columna Nombre, en la segunda fila pones 'Button2_English' yen Valor pones "Browse'

Ahora para obtener la cadena pones:
Código (vbnet) [Seleccionar]

   Button1.Text = My.Resources.Button1_English


Código (vbnet) [Seleccionar]

   Button1.Text = My.Resources.Button1_Spanish





También puedes acceder a los recursos desde el Explorador de soluciones.

haz clic en 'Mostrar todos los archivos'

Abre 'MyProyect'

Haz doble clic en Resources.resx



Para crear recursos desde código

Recursos de cadenas/Crear recursos mediante código




EJEMPLO
Crea cadenas en el recurso en tiempo de ejecución.
Código (vbnet) [Seleccionar]

Imports System
Imports System.Collections
Imports System.Resources

Public Class Form1
    Public Sub New()
        'Añade cadenas al registro en tiempo de ejecución
        MyClass.InitializeComponent()
        ' First create the resource file and add strings.
        Dim rw As ResourceWriter = New ResourceWriter("sample.resources")
        rw.AddResource("4564", "Examinar")
        rw.AddResource("4565", "Browse")
        rw.AddResource("Title_Form2", "Diálogo")
        rw.Close()
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'Obtiene las cadenas del registro
        Dim rr As ResourceReader = New ResourceReader("sample.resources")
        Dim de As IDictionaryEnumerator = rr.GetEnumerator()
        'Obtiene las cadenas en orden de enumeración
        While de.MoveNext
            Select Case de.Key.ToString
                Case "4564" : MessageBox.Show(de.Value.ToString)
                Case "4565" : MessageBox.Show(de.Value.ToString)
            End Select
        End While
        rr.Close()

        'Abre el form2
        Form2.ShowDialog()
    End Sub
End Class
Public NotInheritable Class Form2 : Inherits Form

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim rr As ResourceReader = New ResourceReader("sample.resources")
        Dim de As IDictionaryEnumerator = rr.GetEnumerator()
        'Obtiene la cadena para el título del formulario 2
        While de.MoveNext
            Select Case de.Key.ToString
                Case "Title_Form2" : Me.Text = de.Value.ToString
            End Select
        End While
        rr.Close()
    End Sub
End Class
#390
Foro Libre / Re: la religión en el cine
14 Noviembre 2016, 13:26 PM
Cita de: Orubatosu en 14 Noviembre 2016, 09:52 AM
A ver, dejemos claro un tema.

Las religiones son parte de la historia de la humanidad. El pretender erradicarlas o eliminarlas "porque si" tiene un nombre: fascismo


¿perdona?




Tan solo he recalcado el modo en el que se usa el cine como medio para divulgar. Además que hay puro negocio detrás en algunos casos.