Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] modificare testo e colori di una finestra a riga di comando
Forum - C# / VB.NET - [VB.NET] modificare testo e colori di una finestra a riga di comando

Avatar
amreo (Normal User)
Pro


Messaggi: 93
Iscritto: 18/03/2013

Segnala al moderatore
Postato alle 22:10
Mercoledì, 29/01/2014

come faccio a modificare il testo dei programmi console, senza usare possibilmente clear?

tipo, sulla console c'è scritto

---------------------------------------------------------------------
progresso di completamento: 56% <++-------->
---------------------------------------------------------------------
voglio modificare quel 56% non so in 75%.

come faccio??

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:19
Mercoledì, 29/01/2014
Se parliamo di Windows, allora

http://msdn.microsoft.com/en-us/library/windows/desktop/ms ...

ovviamente per avere un controllo completo, non solo per risolvere il piccolo problema che hai indicato.

Ultima modifica effettuata da nessuno il 29/01/2014 alle 22:20


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1702
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 2:57
Giovedì, 30/01/2014
La lista che nessuno ti ha fornito equivale a tutte le funzioni disponibili nel campo richiesto per la funzione.

in pratica devi spostare il cursore _ nella posizione interessata
ovvero prima di <++------> e sostituire il char,


PM Quote
Avatar
amreo (Normal User)
Pro


Messaggi: 93
Iscritto: 18/03/2013

Segnala al moderatore
Postato alle 15:16
Giovedì, 30/01/2014
ho trovato la funzione ma non mi va, ho avuto alcuni problemi con handle e non so se la funzione è quella giusta. ho fatto la prova ma niente, scrive dopo la stringa.
Codice sorgente - presumibilmente VB.NET

  1. Public Declare Function SetConsoleCursorPosition Lib "kernel32" Alias "SetConsoleCursorPosition" (ByVal hConsoleOutput As Integer, <MarshalAs(UnmanagedType.Struct)> ByRef dwCursorPosition As COORD) As Integer
  2.  
  3.     Public Declare Auto Function FindWindowByCaption Lib "user32.dll" Alias "FindWindow" (zeroOnly As IntPtr, lpWindowName As String) As IntPtr
  4.  
  5.     Sub Main()
  6.         Dim rnd As New Random
  7.         Console.Title = "test"
  8.         Dim handle As IntPtr = FindWindowByCaption(IntPtr.Zero, Console.Title)
  9.         Console.Write("cidsadsa dsa sad  10% das dsa sad ads dsa")
  10.         SetConsoleCursorPosition(handle.ToInt64, New COORD(18, 0))
  11.         MsgBox("")
  12.         Console.Write("20%")
  13.  
  14.     End Sub
  15.  
  16.     Public Structure COORD
  17.         Public x As Short
  18.         Public y As Short
  19.  
  20.         Sub New(x As Integer, y As Integer)
  21.             ' TODO: Complete member initialization
  22.             Me.x = x
  23.             Me.y = y
  24.         End Sub
  25.  
  26.     End Structure


PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1702
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 2:22
Venerdì, 31/01/2014
chiedo scusa ma il vb mi sta proprio antipatico.
ho provato a tirare su questo

Codice sorgente - presumibilmente C# / VB.NET

  1. Console.WriteLine("Caricamento 10% su 100%")
  2.  
  3.         Console.ForegroundColor = ConsoleColor.Red
  4.  
  5.         Console.WriteLine("Di quanto aumentare?")
  6.  
  7.         Console.ForegroundColor = ConsoleColor.White
  8.  
  9.  
  10.         Dim val As Integer = Console.ReadLine()
  11.         Console.WriteLine()
  12.  
  13.  
  14.         Console.WriteLine("Valore aumentato a " & val)
  15.  
  16.  
  17.         Console.ReadKey()
  18.  
  19.  
  20.         Console.SetCursorPosition(12, 0)
  21.         Console.Write("" + val.ToString + " su 100% ")
  22.  
  23.  
  24.         Console.ReadKey()





PM Quote
Avatar
amreo (Normal User)
Pro


Messaggi: 93
Iscritto: 18/03/2013

Segnala al moderatore
Postato alle 16:09
Venerdì, 31/01/2014
funziona!

PM Quote