Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-12-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
problema con shellexecute

Hola, intento pasar unos parametros al cmd usado con shellexecute pero me da error y la verdad no sé como solucionarlo, entonces buscando y buscando encontre este truco en el foro ¿podría usarlo para pasarle esos parametros que hasta ahora me da error? he probado el truco a parte y el resultado me lo da en lenguaje chino o primo hermano, en todo caso mi código es este:

Código Delphi [-]
ShellExecute(Form1.Handle, nil, 'cmd.exe',
  'c:\program files\blender foundation\blender\blender.exe -b c:\cubo.blend -f png', SW_SHOWNORMAL);

Y el error este:
Código:
[dcc32 Error] cons.pas(121): E2010 Incompatible types: 'PWideChar' and 'Integer'
Sé que es un error con los tipos de datos pero ¿por qué hace referencia al pwidechar?
Espero podais ayudarme. Un saludo y feliz año.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 29-12-2014
Avatar de BDWONG
BDWONG BDWONG is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 113
Poder: 11
BDWONG Va por buen camino
Wink

Bueno te da incompatibilidad de tipos porque te falta un parametro, antes del parametro del SW_SHOWNORMAL va otro que seria para especificar el directorio

bueno te dejo este ejemplo
Código Delphi [-]
ShellExecute(Form1.Handle, 'open',pchar('cmd'),pchar('/k notepad.exe'),nil, SW_SHOWNORMAL);


en este caso solo abre el cmd y mediante el ejecuta el bloc de notas

te dejo la referencia para que le des una mirada
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

saludos...
Responder Con Cita
  #3  
Antiguo 29-12-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola bdwong,

Ya había conseguido que no diese error, solo que ahora simplemente no hace nada, ni abre la consola ni nada. Tengo esto:

Código Delphi [-]
ShellExecute(Handle,'render', PChar('cmd'),
  PCHAR(sEdit1.Text+ ' --background '+sEdit2.Text+' --render-output //test_ --engine CYCLES --render-format PNG --use-extension 1 --render-frame 5'), nil, SW_SHOW

Independientemente de que los parametros de la aplicacion a llamar, el cmd debería abrirse ¿verdad?

Un saludo y gracias.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #4  
Antiguo 29-12-2014
Avatar de BDWONG
BDWONG BDWONG is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 113
Poder: 11
BDWONG Va por buen camino
Bueno en el segundo parametro la palabra 'render' creo que un valor valido porque segun la msdn de microsoft esta no existe, si quieres abrir el cmd cambia ese parametro por 'open'
ademas si quieres que te ejecute los comandos que le vas a mandar al cmd tienes que poner antes el '/k '
porque si no, no hara nada

Código Delphi [-]
ShellExecute(Handle,'open', PChar('cmd'),
  PCHAR('/k '+sEdit1.Text+ ' --background '+sEdit2.Text+' --render-output //test_ --' + 
  'engine CYCLES --render-format PNG --use-extension 1 --render-frame 5'),nil, SW_SHOWNORMAL);

Espero mas o menos se entienda
Responder Con Cita
  #5  
Antiguo 30-12-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
buenas, tenias razon bdwong, es open y no render, por otra parte y lo digo a titulo informativo, quite la "/k" y funciona bien. Una cosa que no sé si se podra hacer ¿sería posible capturar el porcentaje de progreso y enviarlo a una barra de progreso en el formulario? se me ocurre lo siguiente:


Cada una de esas lineas podría ser un tanto por cierto del progreso, por que van saliendo mientras no se acaba el render ¿podría usarlas para calcular el progressBar? y ¿hay alguna forma de contar esas lineas? en difinitiva ¿sería posible mostrar en un progressBar el progreso del render tomando la consola como referencia? ¿me daría esta opción este truco?

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con ShellExecute =( Ken_Masters API de Windows 6 06-06-2017 03:51:47
Problema con ShellExecute Angel Vicente API de Windows 3 02-06-2008 11:34:07
problema con el ShellExecute nogoncar C++ Builder 5 10-07-2007 10:42:44
Problema con shellexecute ebeltete API de Windows 4 21-10-2006 00:23:12
Problema con ShellExecute Walterdf Varios 9 18-11-2005 20:44:19


La franja horaria es GMT +2. Ahora son las 16:34:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi