Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-03-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question c++ Builder enviar parametros

hola en C++ Builder

¿como puedo pasar parametros ¡?

especialmente al enviar parametros con espacios

por ejemplo abrir archivo que esta en

C:\miapp.exe

tengo este codigo pero no se como hacerle

por que los parametros que la aplicacion recibe.

se muestran asi.

c:\miapp.exe
parametro
1
parametro
2
parametro
_3


y yo quiero que salgan asi.
c:\miapp.exe
parametro 1
parametro 2
parametro _3



Código:
 
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
     BOOL CreateProcess(
  LPCWSTR pszImageName,
  LPCWSTR pszCmdLine,
  LPSECURITY_ATTRIBUTES psaProcess,
  LPSECURITY_ATTRIBUTES psaThread,
  BOOL fInheritHandles,
  DWORD fdwCreate,
  LPVOID pvEnvironment,
  LPWSTR pszCurDir,
  LPSTARTUPINFOW psiStartInfo,
  LPPROCESS_INFORMATION pProcInfo
);

void __fastcall TForm1::Button1Click(TObject *Sender)
{
STARTUPINFO StartInfo;// name structure
PROCESS_INFORMATION ProcInfo; // name structure
memset(&ProcInfo, 0, sizeof(ProcInfo)); // Set up memory block
memset(&StartInfo, 0 , sizeof(StartInfo)); // Set up memory block
StartInfo.cb = sizeof(StartInfo); // Set structure size
 

     char *sCmdLin =  "C:\\miapp.exe   'parametro 1'   'parametro 2'    'parametro _3' " ;
  int res = CreateProcess(NULL, sCmdLin  , NULL, NULL, NULL, NULL, NULL, NULL, &StartInfo, &ProcInfo);

}
//---------------------------------------------------------------------------
ayuda no entiendo

gracias por su atencion.
Responder Con Cita
  #2  
Antiguo 27-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cuando hay espacios debes indícar el texto entre comillas, ejemplo: "c:\documents and settings\tu carpeta\tuprograma.exe"
Responder Con Cita
  #3  
Antiguo 28-03-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Question

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Cuando hay espacios debes indícar el texto entre comillas, ejemplo: "c:\documents and settings\tu carpeta\tuprograma.exe"

entonces asi.


char *sCmdLin = "C:\\miapp.exe "parametro 1" "parametro 2" "parametro _3" " ;


mm char *sCmdLin = "C:\\miapp.exe 'parametro 1' 'parametro 2' 'parametro _3' " ;

dejame revisarlo.


ptra cosas a fuerzas se tiene que poner la doble barra??
C:\\

o solo con C:\

si es doble barra a fuerza. como la pongo???
si se supone que el programa lo obtiene el directorio de windows.
o de archivos de texto que manejan solo C:\archivos de programa\mi app\
Responder Con Cita
  #4  
Antiguo 28-03-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Con CreateProcess:
Código:
   PROCESS_INFORMATION pi = {0};
   STARTUPINFO si = {0};
   si.cb = sizeof(si);
   si.dwFlags = STARTF_USESHOWWINDOW;
   si.wShowWindow = SW_SHOW;
   bool bRet = CreateProcess(0, "C:\MiPrograma.exe param1 param2,0,0,0,0,0,0,&si,&pi);
Con ShellExecute:
Código:
ShellExecute(0, 0, "C:\MiPrograma.exe", "param1 param2", 0, SW_SHOW);


Saludos.
Responder Con Cita
  #5  
Antiguo 28-03-2011
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
Con CreateProcess:
Código:
   PROCESS_INFORMATION pi = {0};
   STARTUPINFO si = {0};
   si.cb = sizeof(si);
   si.dwFlags = STARTF_USESHOWWINDOW;
   si.wShowWindow = SW_SHOW;
   bool bRet = CreateProcess(0, "C:\MiPrograma.exe param1 param2,0,0,0,0,0,0,&si,&pi);
Con ShellExecute:
Código:
ShellExecute(0, 0, "C:\MiPrograma.exe", "param1 param2", 0, SW_SHOW);


Saludos.
funciona pero solo en parte.

por que yo quiero pasar paramtros.
asi

bool bRet = CreateProcess(0, "C:\MiPrograma.exe param 1 param 2 ,0,0,0,0,0,0,&si,&pi);

son 2 parametros

y que pueda recibirllos asi.

param 1

param 2


en la forma que me propnene salen asi

C:\MiPrograma.exe
param
1


lo que quiero es poder pasarle la ruta de otra aplicacion .
y de otros documentos. a mi aplicacion.

la ruta es

c:\archivos de programa\winrar.exe

y
el archivo a comprimir es

C:\Users\jxj\Documents\mi carpeta\archivo emails.txt



como ven hay espacios. y no se como manejarlos.
con c++ builder 6..
Responder Con Cita
  #6  
Antiguo 28-03-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código:
   PROCESS_INFORMATION pi = {0};
   STARTUPINFO si = {0};
   si.cb = sizeof(si);
   si.dwFlags = STARTF_USESHOWWINDOW;
   si.wShowWindow = SW_SHOW;
   CreateProcess(0, "Miprograma.exe \"c:\\archivos de programa\\winrar.exe\" \"C:\\Users\\jxj\\Documents\\mi carpeta\\archivo emails.txt\"",0,0,0,0,0,0,&si,&pi);
Saludos.

Última edición por escafandra fecha: 28-03-2011 a las 15:01:20.
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
Enviar parámetros al Browser MaMu API de Windows 0 15-04-2008 08:11:32
Enviar Parámetros a una form Manuel Varios 4 16-08-2006 04:24:38
Recibir parámetros desde php con una aplicación c++Builder Panchisco C++ Builder 0 04-06-2005 22:32:35
Enviar parametros a un informe (QuickReport) Lionel Impresión 1 08-06-2004 15:25:45
Parametros entre Delphi i c++ Builder jsb Varios 7 20-02-2004 18:25:05


La franja horaria es GMT +2. Ahora son las 20:43:28.


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