Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

llamar a la calculadora de windows

179 views
Skip to first unread message

Octavio Haro

unread,
Nov 30, 2002, 12:45:49 PM11/30/02
to
Hola..

como puedo llamar a la calculadora de windows, y obtener el resultado de la
operacion. ?


Valdov

unread,
Nov 30, 2002, 3:10:23 PM11/30/02
to
Hola, hace un par de dias pregunte lo mismo, me dieron mas
o menos tres formas de hacerlo, la pregunta fue del 28 de
Noviembre, pero aqui te pongo otra manera de hacerlo.

1. En el form importas System.Enviroment
2. En el Control donde llamas a la calculadora va el
siguiente Codigo:

Dim strPath as string

strpath=GetFolderPath(SpecialFolder.System)
Shell(strPath & "\calc.exe", AppWinStyle.NormalFocus,False)

Y Listo.

Tristan

unread,
Dec 1, 2002, 7:04:22 AM12/1/02
to
¿Obtener el resultado de la operación????

¿Imagino que será un ejemplo para saber como hacerlo con otras aplicaciones,
no?. No parece muy sensato utilizar la calculadora de windows para hacer
cálculos desde un programa.

Esto sería un ejemplo de como usar el portapapeles para copiar el resultado
de otra aplicación:

Dim proc As Process = Process.Start("calc.exe")
While Not proc.Responding
Threading.Thread.Sleep(100)
End While
SendKeys.SendWait("2{+}3{Enter}^C")
proc.Kill()
Dim resultado As String =
Clipboard.GetDataObject().GetData(GetType(String)).ToString()
MsgBox(resultado)


Si la aplicación usa entrada/salida de consola (una aplicación MS/DOS, por
ej.), en lugar de SendKeys y Clipboard, deberás redirigir la entrada/salida
hacia tus propios stream.

--
Juan Carlos Badiola
MVP - C#


Tristan

unread,
Dec 1, 2002, 7:49:14 AM12/1/02
to
Bueno, pues nada, que he visto una mejora a lo anterior y ya puestos.

Dim proc As Process = Process.Start("calc")
proc.WaitForInputIdle()
SendKeys.SendWait("5{+}3{Enter}^C")


proc.Kill()
Dim resultado As String =
Clipboard.GetDataObject().GetData(GetType(String)).ToString()
MsgBox(resultado)


No había visto hasta ahora el método WaitForInputIdle()

SqlRanger

unread,
Dec 1, 2002, 8:00:50 AM12/1/02
to
Hola Juan Carlos,
 
Eso que dices de redirigir la salida de un programa de consola a un stream me parece muy interesante. Te estaría muy agradecido si me contraras cómo se podría hacer esto, y si puedes poner un ejemplo mejor que mejor.
 
 

--

Saludos:
 
Jesús López
MCP SQL Server
 
"No darás tropezón ni desatino que no te haga adelantar camino"

Tristan

unread,
Dec 1, 2002, 8:49:49 AM12/1/02
to
Pues si, en algunos casos puede ser útil. En el ejemplo, lanzo un comando
CMD (o el que tenga comspec) para obtener una sesión DOS. Envío un comando
DIR y leo el resultado:

Dim procStart As New
ProcessStartInfo(Environment.GetEnvironmentVariable("COMSPEC"))
procStart.CreateNoWindow = True
procStart.UseShellExecute = False
procStart.RedirectStandardInput = True
procStart.RedirectStandardOutput = True
Dim proceso As Process = Process.Start(procStart)
Dim sIn As IO.StreamWriter = proceso.StandardInput
Dim sOut As IO.StreamReader = proceso.StandardOutput
sIn.WriteLine("dir c:\")
sIn.WriteLine("exit")
MsgBox(sOut.ReadToEnd())

SqlRanger

unread,
Dec 1, 2002, 10:17:18 AM12/1/02
to
Muchas gracias

Jorge Serrano Pérez - MVP

unread,
Dec 1, 2002, 12:59:05 PM12/1/02
to
Me agrego a las gratitudes por los comentarios de Juan Carlos, muchas gracias.
 
(da gusto estos foros).
 
Un abrazo para Jesús y Juan Carlos especialmente. :-)

--
Jorge Serrano Pérez
Microsoft Visual Basic MVP 2002
Microsoft Beta Tester - Visual Studio .NET 2003
http://www.portalvb.com/
Responsable de la Comunidad de Desarrolladores de Microsoft Visual Basic .NET en español
http://www.microsoft.com/latam/msdn/comunidad/comunidades/vbnet/
 
"SqlRanger" <jesuslmARROBAwanadooPUNTOes> escribió en el mensaje news:utuMzsUmCHA.2300@tkmsftngp07...
0 new messages