• Sábado 14 de Diciembre de 2024, 09:30

Autor Tema:  Saber Si Se Está Ejecutando Un Programa.  (Leído 19701 veces)

vane_arg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Saber Si Se Está Ejecutando Un Programa.
« en: Miércoles 6 de Diciembre de 2006, 20:19 »
0
Estoy haciendo un programa que necesita llamar a otro y cuando éste termina, seguir haciendo otras cosas. Y quiero que tenga un botón de cancelar por si uno no quiere que se ejecute más ese otro programa.
El problema es que con la función WaitForSingleObject el programa se queda totalmente clavado mientras espera al otro, por lo que por más que presione el botón de cancelar, el programa no responde hasta que no salga de WaitForSingleObject.
Hay alguna forma de que chekee permanentemente si se presionó alguna tecla mientras espera a que se termine el otro programa sin bloquearse?. Sería algo como DoEvents en visual basic, pero no sé cómo hacerlo en borland c++.

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #1 en: Miércoles 6 de Diciembre de 2006, 22:16 »
0
Conseguiste hacerlo?
 Sino yo te puedo pasar unos programas al efecto.
Haciendo llamadas a estos programas externos a través de una llama de C al shellexecute u otro,  uno que te devuelve si el programa que quieres esta activado, y por otro lado, otro ejecutable externo que te cierre ese programa y te devuelve si lo pudo cerrar al pulsar el botón cancelar que dices.

Citar
Editado por juank - Estas haciendo SPAM

vane_arg

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #2 en: Jueves 7 de Diciembre de 2006, 00:57 »
0
Cita de: "Eternal Idol"
PD. El titulo no parece tener que ver con la pregunta.
Quiero saber si se está ejecutando o no para no tener que esperarlo con WaitFor SingleObject y poder chekear si sigue en ejecución o no.

dBase.. me mandarías por mail lo que sea que hayas escrito antes que lo editaron..? escribime_a_esta_direccion@hotmail.com desde ya gracias..

La verdad que es un buen foro para resolver las dudas pero es un tanto irritante los abusos de los moderadores..

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #3 en: Jueves 7 de Diciembre de 2006, 01:13 »
0
<_< SPAAAAAAAAAM........

No, en serio. ¿Que paso?
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #4 en: Jueves 7 de Diciembre de 2006, 02:49 »
0
@Vane Haces click en Autoit en Españól que está en mi firma y me mandas allí un P.M., un mensaje personal. Hablamos.
Sorry si es mucho Spam pero hay q currar un poco más de lo normal con el programa que quiere hacer, si ella quiere que lo postee luego por aqui.

P.S. Por si no saben de que va, es hacer unos programitas externos para unas funcionalidades.

Gracias Mods.

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #5 en: Jueves 7 de Diciembre de 2006, 11:39 »
0
Citar
¿Currar? Se nota que no hiciste un programa en tu vida. De eso se trata, si quisieramos tener todo hecho no estariamos en este subforo de C/C++.

Yo paso de Currar ni de hacer un programa en mi vida currando. Despues de probar un montonazo de lenguajes con el unico que es divertido hacer programas es con AUTOIT.
Lo del C y el Visual Basic da miedo y es aburrido, además de dar dolores de estomago.l
Si puedo divertirme con mejores resultados y sin Fat CODE, con ejecutables de 250kb, porque hacer algo tan serio como tu me propones.

Citar
¿Programitas externos? Por favor, no nos des explicaciones ridiculas y date cuenta que para su programa uso ShellExecute y no la basura de codigo inutil que dejaste. Si ahora quisiera hacerlo en ese "lenguaje" seria por una sola razon: no lo puede hacer en C/C++.

Creo que si te pones a leer te das cuenta que te equivocas como siempre, puse bien clarito:  
Citar
Conseguiste hacerlo?
Sino yo te puedo pasar unos programas al efecto.

Citar
Vale pues
De nada spammer.
Da la casualidad que el spamm lo haces tu porque la vane esta lleva ya diez dias con el mismo programa dando vueltas por este foro, que parece que está mendigando, y parece que sigue en el mismo punto que en el primer post que hizo.
Citar
NO ha avanzado nada.
Jorrr, No se si te has dado cuen.Con ir a vane y ver sus posts verás que estoy en lo cierto. Asi o se lo solucionas, o no me des la lata si le doy una solución aunque no sea "TU SOLUCIÓN PERFECTA" si le funciona.

Además si no te gusta hazle tu el codigo, que ya es suficiente que yo curre gratis aquí. Si no te molesta.

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #6 en: Jueves 7 de Diciembre de 2006, 13:01 »
0
De lo que no conoces no puedes hablar, logicamente. Creo que te estas perdiendo algo.

Que pasa Santo Tomas, no crees lo que no ves,pues para que veas todo el tema ese que queres hacer con el C++ y con la que necesita ayuda, mira como se hace, en 2 lineas de codigo no hay más:

RUN("elprogramitaquequieras.exe",,@sw_hide) ;ejecutas el programa escondido

RUNWAIT("elprogramitaquequieras.exe",,@sw_hide) ; si queres esperar a que acabe

PROCESSCLOSE("elejecutabledelprograma.exe") ; cierras el proceso cuando quieras

o PROCESSWAITCLOSE("elejecutabledelprograma.exe"); si quieres q espere a que se cierre el proceso

Esto es divertido y no volverse loco apretando ALTGR y {}{}[][], con los parentesis y cosas asi, será q tienes el tecaldo inglés, por q a mi no me hace gracia.

Solo era compilar una linea de estas y es el programita externo.
Si las soluciones son soluciones si funcionan, si no da igual, por eso la propuse. No obstante siempre tiene abierto hacerlo por C, yo no dije q lo dejara.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #7 en: Jueves 7 de Diciembre de 2006, 13:57 »
0
Cita de: "dBase3"
Además si no te gusta hazle tu el codigo, que ya es suficiente que yo curre gratis aquí. Si no te molesta.
Llevo 2 años "currando" gratis aca, JuanK lleva desde sus inicios, Blag lleva desde que empezo el foro y Eternal_Idol curra desde hace mucho y nadie se ha puesto a decir que lo hace por dinero.

De verdad te agradezco lo que me haz explicado, pero eres patetico al decir estas palabras.
El pasado son solo recuerdos, el futuro son solo sueños

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #8 en: Jueves 7 de Diciembre de 2006, 14:12 »
0
Cita de: "dBase3"
Además si no te gusta hazle tu el codigo, que ya es suficiente que yo curre gratis aquí.
Gracias!!!! que detalle.... claro que un detalle muy pequeño...
eternal idol y yo llevamos mucho tiempo más en el foro que tu y esta claro que yo se mucho mas de C/C++ que Tú... y que ni que hablar de cuanto más sabe eternal idol de C / C++... creo que esta muy pero muy por encima de ti.

Cita de: "vane_arg"
La verdad que es un buen foro para resolver las dudas pero es un tanto irritante los abusos de los moderadores..

Bueno el foro tiene reglas y jerarquías que hay que respetar... las correcciones de eternal fueron puntuales y acertadas para tu caso.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #9 en: Jueves 7 de Diciembre de 2006, 14:47 »
0
Citar
Además si no te gusta hazle tu el código, que ya es suficiente que yo curre gratis aquí. Que parece esta situación como de tener un jefe, y me pagaran
Si lo queres de otra manera. Voy a traducir para que lo entendes:
Citar
Si no te gusta mi solución, haz tu el código de la tuya en vez de protestarme. ¿Que es que no ves que le hago el codigo por gusto y sin cobrar, o es que me pagas?.

Quiero decir con eso: que no me merezco esa respuesta y si estoy trabajando mi solución, pues cada uno con la suya. [/color]:smartass:  Y es de C y tiene que ejecutar un programa externo, lo siento, cosas más difíciles he visto.

Si el piensa que mi solución NO FUNCIONA, QUE ME LO DEMUESTRE en vez hablar.
Yo le he demostrado que por lo menos en la décima parte de lineas de código hago lo mismo QUE en C.
Me enseñaron que el mejor programador es el que menos lineas emplea para un programa(código optimizado) o de que escuela SOS. Solo al no usar las declaraciones ya es el 50% del codigo. ¿Por que no haces un concurso? o no los tenes puestos?.

 :devil:

Y tambien digo que no es justo que si me gusta Autoit, y no lo conoces, pues ya esta es vuestro problema, igual q a otros les gusta el Ada o el Cobol, es muy respetable y veo que algunos no respetan los gustos de los demás.

Eoooo, despertaaadd. Que si estoy aqui es porq quiero estar nadie me ha obligado.¿No os gusta el Freeware,Gpl?y similares o vas a seguir toda la vida con el PagaWare o bien de pirateo.
Y si las opiniones del Spammer ese no os gustaron, sorry, es porq ODIO el SPAMM, principalmente porque abusan de gente informáticamente inculta e inocente .

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #10 en: Jueves 7 de Diciembre de 2006, 14:49 »
0
Yo estoy de acuerdo con que cada aporte es valioso.. pero trata de no convertir en el foro en una ventana publicitaria para el lenguaje del que tanto has hablado.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #11 en: Jueves 7 de Diciembre de 2006, 16:16 »
0
Tu sin faltar ... :alien:    Para que veas que soy de palabra... alla vaa
4 Lineas de código no esta nada mal.
Código: Text
  1.  
  2. Opt("RunErrorsFatal", 0)&#59;1=fatal, 0=silent set @error
  3. $pid = Run("notepad.exe", @ScriptDir, @SW_HIDE)
  4. If @error or not ProcessWait("notepad.exe", 15) or  MsgBox(3, "Mi Autoit", "Esperando:: CANCELAMOS?")=6 Then Exit
  5. msgbox(0,"Programa de Control","Seguimos con lo que sea",5)
  6.  
  7.  



Compara CancelTread
Código: Text
  1.  
  2. Func CancelThread()
  3.   Return MsgBox(3, "Programa de Control", "Esperando:: CANCELAMOS?")=6
  4. EndFunc;==>CancelThread
  5. ==================================
  6. DWORD WINAPI CancelThread(LPVOID lpParameter)
  7. {
  8.  printf("Esperando:: CANCELAMOS? Y/N\r\n");
  9.  for (;!Seguir;)
  10.  {
  11.    char x = getchar();
  12.    if (x == 'Y')
  13.    {
  14.      Seguir = 1;
  15.      break;
  16.    }
  17.  }
  18.  return 0;
  19. }
  20.  

Esto me sobró porque ya estaba incluido en el compilador:
Código: Text
  1.  
  2. #include <windows.h>
  3. #include <stdio.h>
  4.  
  5. BOOL Seguir = 1;
  6. DWORD WINAPI WaitThread(LPVOID lpParameter)
  7. {
  8.  PPROCESS_INFORMATION pi = (PPROCESS_INFORMATION)lpParameter;
  9.  WaitForSingleObject(pi->hProcess, INFINITE);
  10.  Seguir = 1;
  11.  CloseHandle(pi->hProcess);
  12.  CloseHandle(pi->hThread);
  13.  return 1;
  14. }
  15.  

Touchee'....
Sumaste fueron 4 lineas de código en Autoit, a cambio de 50 Lineas en C. Haciendo cálculos serán de 12.5 lineas a 1, no esta mal, no? Se que no son los 50kb de C pero para 200Kb no pesa nada.
Y si quieres compilarlo te bajas el paquete  sin explicaciones y lo instalas en 10 minutos.Aqui el link

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #12 en: Jueves 7 de Diciembre de 2006, 16:45 »
0
Citar
Jajaja, el problema es que tu programa NO ES equivalente al mio, tu programa tiene un solo hilo, si abris el notepad (visible obvio) y lo cerras, tu programa se queda preguntando como un imbecil si queres cancelar la ejecucion.
:blink:  :whistling: Creo que no lo has probado, verás que si lo ejecutas el notepad se abre por su lado.

Citar
El mio no, se da cuenta de cualquier evento. En sintesis, tu programa no esta esperando a que se termine el otro, esta haciendo una consulta sobre si ya se termino y despues mostrando un MessageBox.
Creo que estas confundido eso me pasa por no documentar.
La funcion que use es ProcessWait que espera hasta que efectivamente esté en ejecución el programa/proceso, porque (el tuyo no lo comprueba, corrigeme). Como bien sabes puede tardar entre que llamas al ejecutble y luego lee el ejecutable del disco duro unos milisegundos, y evito que se salte sin esperar por el programa.

Si hubiera usado la orden ProcessWaitClose("notepad.exe",15) sería lo tu dices, que lo que haces es que espera que se cierre.

Si quieres esperar a que termine el otro proceso pongo 1 linea más, ahora 5 contra 50, 1 a 10.

Código: Text
  1. Opt("RunErrorsFatal", 0);1=fatal, 0=silencioso @error; Para q no sea Fatal lo de ejecutar algo y no exista
  2. $pid = Run("notepad.exe", @ScriptDir, @SW_SHOW);arranco el notepad
  3. ProcessWait("notepad.exe", 15); Espero hasta q realmente este bien cargado el notepad
  4. msgbox(0,"Programa de Control","Seguimos con lo que sea",5);mensajito informativo
  5. ProcessWaitClose("notepad.exe",15);espero que se cierre el programa ejecutado
  6.  
Edit:Como se que me vas a decir el multihilo, con poner if ProcessExist("notepad.exe") en mitad del programa me comprueba cuando quiera que esta en marcha

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #13 en: Jueves 7 de Diciembre de 2006, 16:59 »
0
Cita de: "Eternal Idol"
Ah, y me olvidaba de decirte que cualquiera de esos dos programas los puedo meter en menos de 2KB.
Pfff de 2 a 200, prefiero el que ocupa menos, como sera cuando sea un trabajo grande creo que aumentaria horriblemente los ejecutables. :lightsabre:
El pasado son solo recuerdos, el futuro son solo sueños

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #14 en: Jueves 7 de Diciembre de 2006, 17:08 »
0
Por supuesto hay una diferencia notable entre uno y otro, tal como lo dice eternal idol su programa usa tres hilos, uno es el hilo principal, el otro esta ejecutando el proceso y el otro esta esperando a que le digan cuando parar....

Es una gran diferencia.

Para eternal idol: en vez de arremeter con grocerias en contra de spammer explicale el programa porque puede ser que no lo ha entendido tal como le ha pasado a RadicalEd.  :smartass:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #15 en: Jueves 7 de Diciembre de 2006, 17:20 »
0
Siguen siendo 18 contra 4 lineas en la version de hilo único. 4,3 contra 1.

Si lo entendí perfectamente, porlo que normalmente cuando le pides a un usuario que elija si quiere seguir o no con un tema, puedes parar la ejecución, del programa porque el notepad no se ha parado sino que sigue ejecutandose por su lado.
Además la misma pregunta lo dice
Citar
Seguimos con lo que sea?

Deberias cambiar la pregunta a Paramos el notepad?

No obstante, voy a hacer la situación ideal, q no real, sin problema unas pocas lineas más de codigo.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #16 en: Jueves 7 de Diciembre de 2006, 17:25 »
0
El de eternal idol es de 18 porque quizo, porque de resto es pura cuestion de formato... incluso puede hacerlo más pequeño si quiere creo que lo puede dejar de 2 lineas...  :whistling:

Código: Text
  1. 1 #include <windows.h>
  2. 2 void main()
  3. 3 {STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb 4 = sizeof(si); ZeroMemory(&pi, sizeof(pi));
  4. 5  if (CreateProcess("c:\\windows\\notepad.exe", 0, 0, 0, 0, 0, 0, 0, &si, &pi))
  5. 6  {int res = MessageBox(0, "Cancelamos?", "Esperando", MB_YESNO);
  6. 7    if (res != IDOK)
  7. 8      WaitForSingleObject(pi.hProcess, 15000);}
  8. 9  MessageBox(0, "Con lo que esa", "Seguimos", 0);}
  9.  
 :smartass:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #17 en: Jueves 7 de Diciembre de 2006, 17:27 »
0
:brickwall:

"C/C++" vs "Autoit"

Dios mio, que ridiculez  :bad:

 :clown:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #18 en: Jueves 7 de Diciembre de 2006, 17:36 »
0
Las lineas de código y la cantidad de caracteres no dicen nada... lo que si dice es el esfuerzo utilizado, el consumo de recursos y la funcionalidad creada...   :rolleyes:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #19 en: Jueves 7 de Diciembre de 2006, 18:05 »
0
Ahora sí....
De 50 lineas de Código pasamos a 16.Un tercio de tecleo y sin {}}. Ejecuta el código que quieras poner donde pone ;corre el código que quieras aquí.
No vas a comparar la calidad de la ventana gráfica comparada con el msgbox. Con un botón bien grandito, para que se vea bien el cancelar
El notepad.exe corre solo llamandolo.

Código: Text
  1.  
  2. #include <GUIConstants.au3>
  3. Opt("RunErrorsFatal", 0);1=fatal, 0=silent set @error
  4. Local $pid = Run("notepad.exe", @ScriptDir, @SW_HIDE);
  5. Local $gui = GUICreate("MI Ventana Guapa", 200, 150, 50, 50)
  6. Local $lbl = GUICtrlCreateLabel("Esperando:: CANCELAMOS?", 15,15, 100, 50)
  7. Local $btn = GUICtrlCreateButton("CANCEL", 15, 45, 180, 70)
  8. GUISetState(@SW_SHOW)
  9. While ProcessExists($pid)
  10.   If MsgHandler() = 0 Then ProcessClose($pid)
  11. ; corre el código que quieras aquí ..............
  12. WEnd
  13. Func MsgHandler()
  14.   Local $msg = GUIGetMsg()
  15.   If $msg = -3 Or $msg = $btn Then Return 0
  16.   Return 1
  17. EndFunc &#59;==>MsgHandler
  18.  

Versión buena del otro programa sin multihilo, q hace lo misma que el tuyo a 1/4 de código.
Código: Text
  1. Opt("RunErrorsFatal", 0);1=fatal, 0=silent set @error
  2. $pid = Run("notepad.exe", @ScriptDir, @SW_HIDE)
  3. If @error or not ProcessWait("notepad.exe", 15) Then Exit
  4. if MsgBox(3, "Mi Autoit", "Esperando:: CANCELAMOS?, El notepad no se para")=6  then ProcessClose("notepad.exe")
  5.  

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #20 en: Jueves 7 de Diciembre de 2006, 18:13 »
0
Bueno si te doy la razón lo de los threads es una gozada y esta muy bien, pero realmente siempre se hacen trucos para obviarlo (sin quitarle el valor a lamultitarea)

Como ves la pantalla gráfica simula el multihilo corriendo en un while y esperando a que respondan, al Cancelar. como ves el codigo no se ha parado, sigue ejecutandose dentro del while

El usuario como que no se da cuenta, del hilo.

Yo se que el se es más potente en cuanto a multihilo y objetos, y algún detalle más, pero eso no obvia que las ventajas de trabajar  con tres funciones hacer un monton de cosas y que los tipos no sean tan rígidos. Pues sí.

Solo queria que comprobaran el ahorro de código que hay y que cambiaran el concepto, ese ya que no hay ningún sistema que tenga todo ventajas.

Para hacer algo rápido que te piden tampoco esta mal, de sobre la marcha.
De todas maneras compila lo de la ventanita, que no ha quedado mal del todo..

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #21 en: Jueves 7 de Diciembre de 2006, 18:18 »
0
Bueno, lastima que eternal haya borrado algunos post...

Dbase3 si bien tu código se aproxima mas a lo que piden que antes.. le falta mucho para hacer lo que hace el de eternal idol tal cual... siguen habiendo grandes diferencias.

pero bueno ya fin.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #22 en: Jueves 7 de Diciembre de 2006, 18:20 »
0
lo reconozco pero tambien reconoce que:

Mira para que sepas el multihilo que dices tambien es simulado porq el procesador por mucho que quieran tampoco trabaja en multihilo real. Llevan con el Windows por lo menos mucho tiempo con eso. (no digo el Linux) :lol:

Lo que se basa es en dividir el tiempo del procesador en varias tareas y asi hacer varias cosas distribuyendo el procesador y lo demás. Con poner una cola de mensajes y de tareas ya está.

Pero bueno seguro que parece multihilo.. :ph34r: .

Además en todos los programas que he hecho, no visto reales problemas con eso porq siempre hay truquitos y colas, y banderas, etc... vaya que el if se usa...  :hola:

Me pareció muy entretenido esto de la carrera de programas, si van a hacer más entre varios lenguajes me avisan (dejando simular lo que un lenguaje no tenga), por lo menos se aprende algo. Gracias Gente.

@Radikal_ed lo máximo que ocupa cualquier código son 600kb, como mucho.
Es tonto quien dice que el C no es lo más potente y nunca lo diré. Es C, vaya con lo que hicieron el Linux y el Windows. Fundamentalmente potente.

Aunq funcione muy bien, no quiere decir que sea lo perfecto que nos dicen del windows,  todo es un truco con una cola de procesos del sistema(ineficiente claro), aqui lo explican:
Es el time Slicing o hacernos creer que las instrucciones va en paralelo cuando
van   en serial
LLevan desde el Windows 3.11 sin cerrar el tema, Link aqui, porque actualmente nuestras CPUs sólo pueden ejecutar un proceso cada vez :whistling:  :devil:
Al final son colas de procesos a nivel del S.O. :angry:
:)

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #23 en: Jueves 7 de Diciembre de 2006, 19:47 »
0
Cita de: "dBase3"
Me pareció muy entretenido esto de la carrera de programas, si van a hacer más entre varios lenguajes me avisan (dejando simular lo que un lenguaje no tenga), por lo menos se aprende algo. Gracias Gente.
 
Si quieres de verdad promocionar tu lenguaje preferido sin hacer SPAM te invito a demostrar tus conocimientos y las capacidades tuyas y del lenguaje con esto:

http://foros.solocodigo.com/index.php?showtopic=23479
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

dBase3

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Saber Si Se Está Ejecutando Un Programa.
« Respuesta #24 en: Jueves 7 de Diciembre de 2006, 19:57 »
0
Bueno no quiero seguir ya que considero que en esta carrera, debería haber un arbitro imparcial, pero objetivamente:

(Si corriges y funciona) Tu ganaste en calidad de código Por multiHilo Real (no simulado), está bueno y currado.

Yo gané en cuanto longitud en número de lineas, y entorno gráfico, cubriendo en un mínimo los objetivos. No se si los comparaban con las mujeres, un tipazo pero no le envies a ganar un maratón.
 :devil:

@Juank, Vaya retazo, voy a estudiar si cojo el testigo, va a ser un reto de verdad ya que lo mio no son los gráficos , sino las bases de datos, contabilidades, parsing y gestión de strings.

Ahora que se esta acabando este, Porque no haces el siguiente  reto:
 Hacer un lenguaje tipo CGI que compita con el PHP y lo mejore,  con funciones de desarrollo rápido.