|
462
|
Programación / Programación C/C++ / Re: Solucionando errores
|
en: 19 Noviembre 2017, 22:27 pm
|
Hola Señor. ¿Cómo estás? Tenía que poner std, no str, me esquivoqué al escribir, en el cual también da errores. Hice otro código pero sigue con errores. #include "stdafx.h" #include "stdio.h" #include "Windows.h" #include "iostream" #include "string" #include "conio.h" #include "cctype" using namespace std; int main() { // Título de la ventana. SetConsoleTitle(L"Abrir y cerrar bandeja del disco C++ Win32"); // Variable char entrada[] = "\0"; // Guarda A, a, C, y c tipo string que introduces desde la consola. while (true) { cout << "Control bandeja del lector : \n\n" << endl; // Muestra en pantalla textos. cout << "A - Abrir bandeja. \n" << endl; cout << "C - Cerrar bandeja. \n" << endl; cout << "========================== \n\n" << endl; cin >> entrada; // Aquí introduces letras A, a, C, y c. switch (tolower(entrada)) // Espera recibir A, a, C, y c. Transforma en minúscula. { // Abrir bandeja. case 'a': cout << "Abriendo..." << endl; // Muestra en pantalla textos. //printf("Abriendo..."); // Aquí va un evento para que aparezca la palabra Abirendo... mientra se está abriendo el lector. mciSendString(L"set cdaudio door open", nullptr, 0, nullptr); cout << "Abierto." << endl; // Muestra en pantalla textos. break; // Cerrar bandeja. case 'b': cout << "Cerrando..." << endl; // Muestra en pantalla textos. // Aquí va un evento. mciSendString(L"set cdaudio door closed", nullptr, 0, nullptr); cout << "Cerrado." << endl; // Muestra en pantalla textos. break; default: // Si haz pulsado otro caracter distinto de A, C, a, y c aparece cout << "Solo pulsar A o C." << endl; // este mensaje. } } return EXIT_SUCCESS; }
Errores: Si que me está dando guerra. Saludos.
|
|
|
464
|
Programación / Scripting / Crear formulario de estos lenguajes
|
en: 19 Noviembre 2017, 11:08 am
|
Hola: Antes pensaba que PowerShell solo era línea de comandos, el sustituto del CMD de Windows se puede decir. He descubierto hoy que se puede crear formulario tal como lo hace Windows Form de Visual C# o Visual Basic .net. Aquí hay un editor de formularios para hacerlo más rápido por vía Web y te genera el código para probarlo en el Power Shell. https://poshgui.com/#Aquí encuentras más enalces. # http://tianit.cloudapp.net/blog/index.php/2015/11/04/crear-formularios-con-powershell/Por ejemplo, abajo un formalario creado en visual solo con códigos de PowerShell. Mi pregunta es. ¿Se puede crear también formularios con el lenguaje Visual F#?Por todas partes se llama Visual F#, pero solo he visto códigos en modo consola. Saludos.
|
|
|
465
|
Programación / .NET (C#, VB.NET, ASP) / ¿Por qué me salen botones repetidos?
|
en: 19 Noviembre 2017, 09:24 am
|
Hola: Tengo esta ventana creada con PowerShell. Lo que no entiendo por mucho que observe el código, es que me aparezcan dos botones iguales en la parte de arriba. # Cargo los Assemblies (necesario para definir el form). [void][reflection.assembly]::loadwithpartialname("System.Windows.Forms") [void][reflection.assembly]::loadwithpartialname("System.Drawing")
$label_Mensaje = New-Object System.Windows.Forms.Label $button_Abrir = New-Object System.Windows.Forms.Button $button_Cerrar = New-Object System.Windows.Forms.Button $groupBox_Bandeja = New-Object System.Windows.Forms.GroupBox
# # label_Mensaje # $label_Mensaje.Location = New-Object System.Drawing.Point(12, 9) $label_Mensaje.Name = "label_Mensaje" $label_Mensaje.Size = New-Object System.Drawing.Size(58, 13) $label_Mensaje.Text = "Abriendo..." # # button_Abrir # $button_Abrir.Location = New-Object System.Drawing.Point(31, 30) $button_Abrir.Name = "button_Abrir" $button_Abrir.Size = New-Object System.Drawing.Size(75, 23) $button_Abrir.Text = "Abrir" # # button_Cerrar # $button_Cerrar.Location = New-Object System.Drawing.Point(139, 30) $button_Cerrar.Name = "button_Cerrar" $button_Cerrar.Size = New-Object System.Drawing.Size(75, 23) $button_Cerrar.Text = "Cerrar" # # groupBox_Bandeja # $groupBox_Bandeja.Controls.Add($button_Cerrar) $groupBox_Bandeja.Controls.Add($button_Abrir) $groupBox_Bandeja.Location = New-Object System.Drawing.Point(15, 118) $groupBox_Bandeja.Name = "groupBox_Bandeja" $groupBox_Bandeja.Size = New-Object System.Drawing.Size(250, 97) $groupBox_Bandeja.Text = "Bandeja"
# # Form1 # #$AutoScaleDimensions = New-Object System.Drawing.SizeF(6F, 13F) #$AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font $Form.ClientSize = New-Object System.Drawing.Size(284, 261) $Form.Controls.Add($groupBox_Bandeja) $Form.Controls.Add($label_Mensaje) $Form.Name = "Form1" $Form.Text = "Ventana PowerShell"
# Ejecuto el formulario. [void]$Form.ShowDialog() Saludos.
|
|
|
466
|
Programación / Scripting / Hacer un menú sencillo con este Script
|
en: 19 Noviembre 2017, 07:22 am
|
Hola a todos y a todas: Quiero hacer un menú sencillo que las funciones se hará después. Por ahora he hecho esto de esta manera haciendo pruebas. ╔====================================╗ ║ Control bandeja del lector ║ ╠====================================╣ ║ ║ 1) Primera Opción 2) Segunda Opción 3) Tercera Opción S) Presiona 'S' para salir Elegir una Opción: Como puedes ver, pulso el número 2), luego Enter para poder entrar en el menú. Mi idea es, desde que pulses la tecla número 2), entre directamente a la Segunda opción sin tener que pulsar Enter. { param ( [string]$Titulo = ' Control bandeja del lector ' ) cls Write-Host "╔====================================╗" Write-Host "║ $Titulo ║" Write-Host "╠====================================╣" Write-Host "║ ║"
Write-Host "1) Primera Opción" Write-Host "2) Segunda Opción" Write-Host "3) Tercera Opción" Write-Host "S) Presiona 'S' para salir" }
do { mostrarMenu $input = Read-Host "Elegir una Opción" switch ($input) { '1' { cls 'Primera Opción' } '2' { cls 'Segunda Opción' } '3' { cls 'Tercera Opción' } 's' { return } } pause } until ($input -eq 's') ¿Cómo se hace lo que quiero? Saludos.
|
|
|
467
|
Programación / Programación C/C++ / Re: Adaptar C++ CLR a C++ Win32
|
en: 19 Noviembre 2017, 04:29 am
|
Hola:
Una aclaración de lo que quiero hacer.
Puedo introducir estas letras, A, a, C y c. Si introduzco otra cosa, las ignora.
Si en el teclado pulso la letra A mayúscula, pues con el str.ToLower quería que cualquier letra que pulse mayúscula, lo convierta en minúscula.
He comprobado que tu código al final si funciona, si pongo el teclado en mayúscula activado. Solo falta la soltura de vovler a preguntar siempre las teclas en vez de cerrarse el programa.
Aún así, tu código, buen trabajo. Ya vamos paso a paso.
Saludos.
|
|
|
468
|
Programación / .NET (C#, VB.NET, ASP) / Re: Hacer funcionar el lector de bandeja de discos con este lenguaje .net
|
en: 19 Noviembre 2017, 01:52 am
|
Hola: Ya está está solucionado. Hay que leerse bien hasta las narices los tutos estos deF#. https://msdn.microsoft.com/es-es/library/ee241126(v=vs.110).aspx https://msdn.microsoft.com/es-es/library/dd233160(v=vs.120).aspx Código F#: // Más información acerca de F# en http://fsharp.org open System open System.Runtime.InteropServices open System.Text; // importar librería o dll externo. [<DllImport("winmm.dll")>] extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, IntPtr hwndCallback) let rt = StringBuilder(127) // Evento. let DoEvents (transition:string) = Console.SetCursorPosition(0, 6) Console.Write transition let action state transition (mensaje:string) = Console.SetCursorPosition(0, 6); DoEvents transition; mciSendString(state, rt, 127, IntPtr.Zero) |> ignore Console.SetCursorPosition(0, 6) Console.Write(" ") Console.SetCursorPosition(0, 6) Console.Write(mensaje) // Pulse letra A para abrir bandeja o C para cerrar bandeja. let rec loop() = match Console.ReadKey(true).Key with | ConsoleKey.Escape -> () | ConsoleKey.A -> action "set CDAudio door open" "Abriendo..." "Abierto." loop() | ConsoleKey.C -> action "set CDAudio door closed" "Cerrando..." "Cerrado." loop() | _ -> loop() [<EntryPoint>] let main argv = // Título de la ventana. Console.Title <- "F#" // Tamaño ventana consola. Console.WindowWidth <- 29 // X. Ancho. Console.WindowHeight <- 8 // Y. Alto. // Cursor invisible. Console.CursorVisible <- false // Posición del mansaje en la ventana. Console.SetCursorPosition(0, 0) Console.Write(@"Control bandeja del lector: A - Abrir bandeja. C - Cerrar bandeja. ===========================") loop() 0 // return an integer exit code
Por cierto. Los códigos GeSHI no inclute F# de este foro. ¿Se incluirán en el futuro y no se puede? Saludos.
|
|
|
469
|
Programación / Programación C/C++ / Re: Adaptar C++ CLR a C++ Win32
|
en: 19 Noviembre 2017, 00:10 am
|
Buenas: Tu programa ejecuta pero no pasa nada si pulso las teclas. Intenté hacerlo como pude a mi manera pero no ejecuta. #include "stdafx.h" #include "stdio.h" #include "Windows.h" #include "iostream" #include "string" #include "conio.h" using namespace std; int main() { // Título de la ventana. SetConsoleTitle(L"Abrir y cerrar bandeja del disco C++ Win32"); // Variable char entrada[] = "\0"; // Guarda A, a, C, y c tipo string que introduces desde la consola. while (true) { printf("Control bandeja del lector : \n\n"); printf("A - Abrir bandeja. \n"); printf("C - Cerrar bandeja. \n"); printf("========================== \n\n"); cin >> entrada; // Aquí introduces letras A, a, C, y c. switch (srt.tolower(entrada)) // Espera recibir A, a, C, y c. Transforma en minúscula. { // Abrir bandeja. case 'a': cout << "Abriendo..." << endl; // Muestra en pantalla textos. //printf("Abriendo..."); // Aquí va un evento para que aparezca la palabra Abirendo... mientra se está abriendo el lector. mciSendString(L"set cdaudio door open", nullptr, 0, nullptr); cout << "Abierto." << endl; // Muestra en pantalla textos. break; // Cerrar bandeja. case 'b': cout << "Cerrando..." << endl; // Muestra en pantalla textos. // Aquí va un evento. mciSendString(L"set cdaudio door closed", nullptr, 0, nullptr); cout << "Cerrado." << endl; // Muestra en pantalla textos. break; default: // Si haz pulsado otro caracter distinto de A, C, a, y c aparece cout << "Solo pulsar A o C." << endl; // este mensaje. } } return EXIT_SUCCESS; }
Algo se nos escapa. Saludos.
|
|
|
470
|
Programación / Programación C/C++ / [SOLUCIONADO] Solucionando errores Menú abrir y cerrar unidad CD-ROM
|
en: 18 Noviembre 2017, 21:06 pm
|
Hola: He hecho este programa para poder abrir y cerrar la bandeja con C++ Win32. Lo que tiene que hacer es si pulsa la tecla A, se abre el lector, si pulsas C, cierra la bandeja del lector de discos. #include "stdafx.h" #include "stdio.h" #include "Windows.h" #include "iostream" #include "string" #include "conio.h" using namespace std; int main() { // Título de la ventana. SetConsoleTitle(L"Abrir y cerrar bandeja del disco C++ Win32"); // Variable char entrada[] = "\0"; // Guarda A, a, C, y c tipo string que introduces desde la consola. while (true) { printf("Control bandeja del lector : \n\n"); printf("A - Abrir bandeja. \n"); printf("C - Cerrar bandeja. \n"); printf("========================== \n\n"); cin >> entrada; // Aquí introduces letras A, a, C, y c. switch (srt.tolower(entrada)) // Espera recibir A, a, C, y c. Transforma en minúscula. { // Abrir bandeja. case 'a': cout << "Abriendo..." << endl; // Muestra en pantalla textos. //printf("Abriendo..."); // Aquí va un evento para que aparezca la palabra Abirendo... mientra se está abriendo el lector. mciSendString(L"set cdaudio door open", nullptr, 0, nullptr); cout << "Abierto." << endl; // Muestra en pantalla textos. break; // Cerrar bandeja. case 'b': cout << "Cerrando..." << endl; // Muestra en pantalla textos. // Aquí va un evento. mciSendString(L"set cdaudio door closed", nullptr, 0, nullptr); cout << "Cerrado." << endl; // Muestra en pantalla textos. break; default: // Si haz pulsado otro caracter distinto de A, C, a, y c aparece cout << "Solo pulsar A o C." << endl; // este mensaje. } } return EXIT_SUCCESS; }
¿Qué tengo mal? Saludos.
|
|
|
|
|
|
|