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 - Meta

#301
Hola:

Tengo este archivo de texto llamado Hola.txt, creado con C#. Sus atributos son estos.


El código para crear este archivo de texto es el siguiente.

Código (csharp) [Seleccionar]
using System;
using System.IO; // No olvidar.

namespace Crear_txt_Consola_02_cs
{
    class Program
    {
        static void Main(string[] args)
        {
            // Título de la ventana.
            Console.Title = "Crear archivo txt Consola 02 C#";

            // Tamaño ventana consola.
            Console.WindowWidth = 55; // X. Ancho.
            Console.WindowHeight = 18; // Y. Alto.

            /* Creo que te estás complicando innecesariamente. Si tienes la ruta y el fichero,
             * no hay más que juntar la ruta con el fichero (poniendo la "\" entre medias igual
             * que si fueses a escribir la ruta a mano en el explorador de Windows). Es una simple
             * concatenación de strings:
             */

            /*
             string strFileName = @"Hola.txt"; // Nombre del archivo.
             string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // Ruta.
             string ficheroAGrabar = ruta + @"\" + strFileName;
            */

            // Variables.
            string strFileFullName = @"Hola.txt"; // Nombre del archivo.
            string ruta = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); // Ruta.
            string ficheroAGrabar = Path.Combine(ruta, strFileFullName); // Concatenar ruta.

            // Muestra la ruta en pantalla.
            Console.WriteLine(ruta); // C:\Users\Usuario\Desktop

            // Si no existe el archivo.
            if (!File.Exists(ficheroAGrabar))
            {
                // Crea el contenido al archivo de texto.
                File.WriteAllText(ficheroAGrabar, "Hola Mundo.");
            }

            else // Si existe...
            {
                // Codigo a ejecutar si existe...
                Console.WriteLine("El archivo existe, así que no se sustituirá.");

                // Pulse cualquier tecla para salir.
                Console.ReadKey();
            }
        }
    }
}


¿Existe hacer de alguna manera, cambiar los datos de los atributos como fecha y hora indicada en la imagen de arriba?

No quiero que se sepa cuando se creó el archivo. O poner otra fecha muy al pasado.

Saludos.
#302
Cita de: insider dealing en 30 Enero 2018, 18:47 PM
Hola mi nombre es insider, y me gustaría aprender a programar en C Sharp, pero no se por donde empezar, soy algo nuevo en este foro,y quisiera que alguien que sea un programador de  de este lenguaje me de algunos consejos, que debo hacer para aprender a programar en el lenguaje c#? que pasos debo tomar?. y si es posible aprender desde Internet?. GRACIAS Y SALUDOS.


· Tema movido C# no es C/C++ es .NET
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex


Empieza viendo estos vídeos con cosas muy básicas.

[youtube=640,360]https://www.youtube.com/watch?v=tjrx_JfuV5s[/youtube]

SAludos.
#303
Scripting / Re: Crear funciones en est script
28 Noviembre 2017, 17:13 PM
Lo tendré en cuenta, voy a investigar lo que dices. Gracias. ;)
#304
Scripting / Crear funciones en est script
28 Noviembre 2017, 09:57 AM
Hola:

Estoy usando desde ISE con PowerShell este código. Lo que hace ahora es crear un formulario Windows Form en el cual abre y cierra la bandeja del lector del disco.

$MemDef = @"
[DllImport("winmm.dll", CharSet = CharSet.Ansi)]
   public static extern int mciSendStringA(
   string lpstrCommand,
   string lpstrReturnString,
   int uReturnLength,
   IntPtr hwndCallback);
"@

$winnm = Add-Type -memberDefinition $MemDef -ErrorAction 'SilentlyContinue' -passthru -name mciSendString
function Set-CDAudioDoor {
Param(
  [ValidateSet("open", "closed")][String[]]$Mode = 'open'
)
$winnm::mciSendStringA("set cdaudio door $mode", $null, 0,0)}

[void][reflection.assembly]::loadwithpartialname("System.Windows.Forms")
[void][reflection.assembly]::loadwithpartialname("System.Drawing")


$Form = New-Object system.Windows.Forms.Form
$Form.Text = "PowerShell 2017"
$Form.TopMost = $true
$Form.Width = 300
$Form.Height = 300
$Form.StartPosition = "CenterScreen"



$button_Abrir = New-Object system.windows.Forms.Button
$button_Abrir.Text = "Abrir"
$button_Abrir.Width = 75
$button_Abrir.Height = 23
$button_Abrir.location = new-object system.drawing.point(40, 150)
$button_Abrir.Font = "Microsoft Sans Serif,10"
$Form.controls.Add($button_Abrir)


$button_Cerrar = New-Object system.windows.Forms.Button
$button_Cerrar.Text = "Cerrar"
$button_Cerrar.Width = 75
$button_Cerrar.Height = 23
$button_Cerrar.location = new-object system.drawing.point(174, 150)
$button_Cerrar.Font = "Microsoft Sans Serif,10"
$Form.controls.Add($button_Cerrar)




$label_Mensaje = New-Object system.windows.Forms.Label
$label_Mensaje.Text = "?"
$label_Mensaje.AutoSize = $true
$label_Mensaje.Width = 25
$label_Mensaje.Height = 10
$label_Mensaje.location = new-object system.drawing.point(54,26)
$label_Mensaje.Font = "Microsoft Sans Serif,36,style=Bold"
$Form.controls.Add($label_Mensaje)

# Abrir  bandeja.
$label_Mensaje.Text = "Abriendo..."
$button_Abrir.Add_Click({Set-CDAudioDoor open})
$label_Mensaje.Text = "Abierto."

# Cerrar bandeja.
$label_Mensaje.Text = "Cerrando..."
$button_Cerrar.Add_Click({Set-CDAudioDoor closed})
$label_Mensaje.Text = "Cerrado."

[void]$Form.ShowDialog()
$Form.Dispose() 


Al ejecutar este Script, muestra esta imagen.


Com podrás observar, siempre se ejecuta una detrás otra esta instrucción de mensajes.
$label_Mensaje.Text = "Cerrado."

Mi idea es, que al pulsar el botón Abrir, aparezca el mensaje "Abrriendo...", se abre la bandeja del todo, sale otro mensaje, "Abierto.", lo mismo al pulsar el botón Cerrar.

¿En que fallo?

Saludos.
#305
Se me pasó por alto, ajajjajaja.

Gracias por todo campeón.  ;-)
#306
Java / Otro estilo en Java
22 Noviembre 2017, 23:52 PM
Hola:

Aquí hay un código hecho en Java usando WMPlayer.OCX.7. Quiero usar en Java mciSendString(L"Set CDAudio Door Open Wait", 0, 0, 0);
Es para abrir y cerrar la bandeja.

Código (java) [Seleccionar]
/**

*

*/

package com.sabado;



import java.io.File;

import java.io.FileWriter;







/**

* -.-

*

*/

public class Unidad {



/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

//mostramos mensajes antes de abrir las bandejas de CD DVD

javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)

               null, "Pulsa OK para abrir las bandejas de los " +

       "lectores/grabadores de CD/DVD del equipo.", "Abrir CD/DVD",

               javax.swing.JOptionPane.DEFAULT_OPTION);

    Unidad.abrirBandejaCDDVD();



//mostramos mensaje antes de cerrar las bandejas de CD DVD

javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)

         null, "Pulsa OK para cerrar las bandejas de los " +

       "lectores/grabadores de CD/DVD del equipo.", "Cerrar CD/DVD",

         javax.swing.JOptionPane.DEFAULT_OPTION);

    Unidad.cerrarBandejaCDDVD();



}



public static void abrirBandejaCDDVD ()

  {



  try

  {

        File file = File.createTempFile("abrirbandejacd",".vbs");

        file.deleteOnExit();

        FileWriter fw = new java.io.FileWriter(file);

        String vbs = "Set objPlayer = CreateObject(\"WMPlayer.OCX.7\") \n"

                   + "Set collCDROM = objPlayer.cdromCollection \n"

                   + "if collCDROM.Count >= 1 then \n"

                   + "For i = 0 to collCDROM.Count - 1 \n"

   + "collCDROM.Item(i).Eject \n"

   + "Next \n"

   + "End If \n";

        fw.write(vbs);

        fw.close();

        Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();

    }

    catch(Exception e)

{

        e.printStackTrace();

    }

  }



public static void cerrarBandejaCDDVD()

  {

    try

    {

        File file = File.createTempFile("cerrarbandejacd",".vbs");

        file.deleteOnExit();

        FileWriter fw = new FileWriter(file);

        //para cerrar las bandejas de CD hay que ejecutar "eject" dos veces

        String vbs = "Set objPlayer = CreateObject(\"WMPlayer.OCX.7\") \n"

                   + "Set collCDROM = objPlayer.cdromCollection \n"

                   + "if collCDROM.Count >= 1 then \n"

                   + "For i = 0 to collCDROM.Count - 1 \n"

   + "collCDROM.Item(i).Eject \n"

   + "collCDROM.Item(i).Eject \n"

   + "Next \n"

   + "End If \n";

        fw.write(vbs);

        fw.close();

        Runtime.getRuntime().exec("wscript " + file.getPath()).waitFor();

    }

    catch(Exception e)

{

        e.printStackTrace();

    }

  }

}


¿Algún ejemplo usando mciSendString en Java?

Lo pregunto porque el de arriba es mucho código para lo que hay que hacer, abrir y cerrar la bandeja.

Un ejemplo en C++ se hace en menos líneas de códigos, por ejemplo este indicado abajo.

Paso 1:


Paso 2:


Paso3:
Escribir Winmm.lib.


Paso 4:


Sólo se necesita tres includes.

Código (cpp) [Seleccionar]
#include "stdafx.h"
#include "Windows.h"
#include "iostream"

using namespace std;

int main()
{
// Título de la ventana.
SetConsoleTitle(L"Consola C++ Win32 2017");

// Variable.
char entrada[] = "\0"; // Guarda A, a, C, y c tipo string que introduces desde la consola.

while (true)
{
// Muestra en pantalla textos.
cout << "Control bandeja del lector: " << endl << endl;
cout << "A - Abrir bandeja." << endl;
cout << "C - Cerrar bandeja." << endl;
cout << "==========================" << endl;

cin >> entrada; // Aquí introduces letras A, a, C, y c.

cout << "\n" << endl;

// Abrir bandeja.
if ((entrada[0] == 'a') || (entrada[0] == 'A'))
{
cout << "Abriendo..." << endl << endl; // Muestra en pantalla textos.
mciSendString(L"set cdaudio door open", nullptr, 0, nullptr);
cout << "Abierto." << endl << endl; // Muestra en pantalla textos.
}
// Cerrar bandeja.
else if ((entrada[0] == 'c') || (entrada[0] == 'C'))
{
cout << "Cerrando..." << endl << endl; // Muestra en pantalla textos.
mciSendString(L"set cdaudio door closed", nullptr, 0, nullptr);
cout << "Cerrado." << endl << endl; // Muestra en pantalla textos.
}
// Si haz pulsado otro caracter distinto de A, C, a, y c aparece
else
{
cout << "Solo pulsar A o C." << endl << endl; // este mensaje.

}
}
return EXIT_SUCCESS;
}


Saludos.
#307
Hola:

Ya he sido capaz de abrir y cerrar la bandeja con PowerShell. LA fomra como es el menú no me hace gracia. Hay que pulsar una letra, luego Enter y después Enter para pulsar otra tecla más para cerra la bandeja.

Mi idea es que al pulsar la letra A o a, Abra la bandeja y preparado para que pulses otra letra. Nada de pulsar la A y luego Enter, para luego otra vez Enter. Si saben hacerlo mejor, avisen. De momento aquí funciona, es capaz de abrir y cerrara la bandeja.

Código (cpp) [Seleccionar]
$MemDef = @"
[DllImport("winmm.dll", CharSet = CharSet.Ansi)]
  public static extern int mciSendStringA(
  string lpstrCommand,
  string lpstrReturnString,
  int uReturnLength,
  IntPtr hwndCallback);
"@

$winnm = Add-Type -memberDefinition $MemDef -ErrorAction 'SilentlyContinue' -passthru -name mciSendString
function Set-CDAudioDoor {
Param(
 [ValidateSet("open", "closed")][String[]]$Mode = 'open'
)
$winnm::mciSendStringA("set cdaudio door $mode", $null, 0,0)}

function mostrarMenu
{
    param (
          [string]$Titulo = ' Control bandeja del lector '
    )
    cls
    Write-Host "╔====================================╗"
    Write-Host "║    $Titulo    ║"
    Write-Host "╠====================================╣"
    Write-Host "║                                    ║"
    Write-Host "║    A) Abrir.                       ║"
    Write-Host "║    C) Cerrar.                      ║"
    Write-Host "║    I) Información.                 ║"
    Write-Host "║    S) Presiona 'S' para salir.     ║"
    Write-Host "║                                    ║"
    Write-Host "╚====================================╝"
}

do
{
    mostrarMenu
    $input = Read-Host "      Elegir una Opción"
    switch ($input)
    {
          'a' {
               cls
               'Abriendo...'
               Set-CDAudioDoor open
               'Abierto.'
               ' '
          } 'c' {
               cls
               'Cerrando...'
               Set-CDAudioDoor closed
               'Cerrado.'
          } 'i' {
               cls
               'PowerShell'
               '=========='
               Get-Host
          } 's' {
               return
          }  
    }
    pause
}
until ($input -eq 's')


Saludos.
#308
Hola NEBIRE:

Ya descubrí el motivo, menudo despiste por mi parte. Antes hay que hacer esto. Lo pongo aquí por si alguien lo necesita.

Paso 1:


Paso 2:


Paso3:
Escribir Winmm.lib.


Paso 4:


Sólo se necesita tres includes.

Código (cpp) [Seleccionar]
#include "stdafx.h"
#include "Windows.h"
#include "iostream"

using namespace std;

int main()
{
// Título de la ventana.
SetConsoleTitle(L"Consola C++ Win32 2017");

// Variable.
char entrada[] = "\0"; // Guarda A, a, C, y c tipo string que introduces desde la consola.

while (true)
{
// Muestra en pantalla textos.
cout << "Control bandeja del lector: " << endl << endl;
cout << "A - Abrir bandeja." << endl;
cout << "C - Cerrar bandeja." << endl;
cout << "==========================" << endl;

cin >> entrada; // Aquí introduces letras A, a, C, y c.

cout << "\n" << endl;

// Abrir bandeja.
if ((entrada[0] == 'a') || (entrada[0] == 'A'))
{
cout << "Abriendo..." << endl << endl; // Muestra en pantalla textos.
mciSendString(L"set cdaudio door open", nullptr, 0, nullptr);
cout << "Abierto." << endl << endl; // Muestra en pantalla textos.
}
// Cerrar bandeja.
else if ((entrada[0] == 'c') || (entrada[0] == 'C'))
{
cout << "Cerrando..." << endl << endl; // Muestra en pantalla textos.
mciSendString(L"set cdaudio door closed", nullptr, 0, nullptr);
cout << "Cerrado." << endl << endl; // Muestra en pantalla textos.
}
// Si haz pulsado otro caracter distinto de A, C, a, y c aparece
else
{
cout << "Solo pulsar A o C." << endl << endl; // este mensaje.

}
}
return EXIT_SUCCESS;
}


Muchas gracias por darme ideas campeones. Me han ayudado mucho entender.

Un cordial saludos.
#309
Hola:

Después de varios días machacándome las neurones, por fin di con el problema.



Jamás tocar Command bar, arriba a la derecha, no tocar ese comboBox ni loco.
#310
Lo he probado y no funciona. Pero no se ma había ocurrido. ;)

Tampoco este.
Código (cpp) [Seleccionar]
$items.closed()

Saludos.