En realidad no se bien como se llaman este tipo de formularios pero creo que se entiende.

Esta orientado a los dos lenguajes por que se utiliza principalmente el Framework que es el mismo para los 2.

Los códigos adjuntos están escritos en VS.Net 2008.

Primero el resultado final


VB.Net – - – CSharp.Net


Continue reading »

Como sabemos en Visual Basic existe un funcion shell que nos permite ejecutar aplicaciones desde el codigo, esto no sucede en C#, pero no es que no se pueda.

En C# existe una clase Process que nos permite ejecutar programas.

ejemplo:

System.Diagnostics.Process process = new System.Diagnostics.Process(); //creamo un proceso
process.EnableRaisingEvents=false;
process.StartInfo.FileName="iexplore"; // aqui ponemos el programa que queremos ejecutar
process.StartInfo.Arguments="http://www.kasbeel.cl"; //parametros
process.Start();  //ejecutamos el programa
process.WaitForExit(); // esperamos a que termine

Como podemos ver es un poco diferente pero lo podemos encapsular en una funcion shell(), y quedaria muy parecido.

Si le quitamos el WaitForExit nuestro codigo continuara aunque no termine el programa que ejecutamos.

Siempre que intentaba instalar netbeans en ubuntu me encontraba con mas de un problema y en los foros muy poca informacion.

Pero eso cambio en la version 8.04 Hardy Heron (no recuerdo si es valido para la version 7.10 Gutsy Gibbon). Tan solo con apt-get instalamos tanto el sdk 6 y el netbeans sin problemas.

ahora los codigos.
[code]
sudo apt-get install sun-java6-jdk
sudo apt-get install netbeans (para la ultima version)
sudo apt-get install netbeans5.5 (para los que quieran la antiagua)
[/code]

Y bravo con esto se acabo el problema de que netbeans no se quiera instalar con el tema Human de Gnome y todos esos otros errores raros.

Mas de alguna vez me pregunta cual era la diferencia entre cada una de las ediciones de Visual Studio.

Por ejemplo: Que diferencia existia entre el Professional y el Enterprise.

Bueno aqui dejo la respuesta.

Este paquete de software se distribuye en diferentes conjuntos segun la necesidad de cada tipo de desarrollo o desarrollador.
Continue reading »

En varias ocaciones cuando se necesita ejecuta un programa dentro de otro, puede que se requiera espera que el programa ejecutado termine para continuar con la ejecucion del programa que lo a llamado.

Uppss

que raro quedo eso pero bueno, los que necesiten esto me van ha entender.

ShellAndWait

Creamos un modulo con el siguiente contenido.
estas funciones de la API nos sirven para obtener el ProcessID y luego con getExitCodeProcess podemos saber si salio o esta pendiente.
[vb]
Option Explicit

Private Declare Function OpenProcess Lib “kernel32″ _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib “kernel32″ _
(ByVal hProcess As Long, lpExitCode As Long) As Long

Private Const STATUS_PENDING = &H103&
Private Const PROCESS_QUERY_INFORMATION = &H400
[/vb]

Pueden poner la funcion en el mismo modulo o en otro.
aqui el codigo.

[vb]
Public Function ShellandWait(ExeFullPath As String, _
Optional TimeOutValue As Long = 0) As Boolean

Dim lInst As Long
Dim lStart As Long
Dim lTimeToQuit As Long
Dim sExeName As String
Dim lProcessId As Long
Dim lExitCode As Long
Dim bPastMidnight As Boolean

On Error GoTo ErrorHandler

lStart = CLng(Timer)
sExeName = ExeFullPath

‘Deal with timeout being reset at Midnight
If TimeOutValue > 0 Then
If lStart + TimeOutValue < 86400 Then
lTimeToQuit = lStart + TimeOutValue
Else
lTimeToQuit = (lStart - 86400) + TimeOutValue
bPastMidnight = True
End If
End If

lInst = Shell(sExeName, vbMinimizedNoFocus)

lProcessId = OpenProcess(PROCESS_QUERY_INFORMATION, False, lInst) 'Optenemos el ProcessID

Do 'Aqui se genera un ciclo hasta que el proceso sea distinto de pendiente, o sea, Alla terminado.
Call GetExitCodeProcess(lProcessId, lExitCode) ' Optenemos el si hay exits code o todavia esta en ejecucion (pending)
DoEvents
If TimeOutValue And Timer > lTimeToQuit Then
If bPastMidnight Then
If Timer < lStart Then Exit Do
Else
Exit Do ‘ Se sale del ciclo si se acavo el tiemo de espera
End If
End If
Loop While lExitCode = STATUS_PENDING

ShellandWait = True

ErrorHandler:
ShellandWait = False
Exit Function
End Function
[/vb]

Ahora para ocupar esta funcion ponemos
ShellAndWait “import.exe “, 0
en esta llamado solo espera a que termine el proceso.
ShellAndWait “import.exe “, 1000
aqui espera 1000 milisegundos o el termino del proceso para salir.