![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() 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); } //--------------------------------------------------------------------------- gracias por su atencion. |
#2
|
||||
|
||||
Cuando hay espacios debes indícar el texto entre comillas, ejemplo: "c:\documents and settings\tu carpeta\tuprograma.exe"
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
![]() Cita:
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\ |
#4
|
||||
|
||||
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); Código:
ShellExecute(0, 0, "C:\MiPrograma.exe", "param1 param2", 0, SW_SHOW); Saludos. |
#5
|
|||
|
|||
Cita:
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.. |
#6
|
||||
|
||||
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); Última edición por escafandra fecha: 28-03-2011 a las 15:01:20. |
#7
|
|||
|
|||
Cita:
sol una duda mas respecto a \\ casi siempre lo manjo asi \ en todo archivos ini. lo tengo asi. [winrar] AppPat=c:\archivos de programa\winrar.exe\ como se le agregan los 2 \\ si yo manejo \ he probado y no responde si pongo \ solo responde si pongo \\ mmm. reviso y aver que pasa. |
#8
|
||||
|
||||
Cuando escribes código C el carácter '\' es de control. El compilador espera recibir otro caracter (\n, \r. \"...) asi, cuando quieres poner un '\' debes poner '\\'. Para poner unas comillas en un texto debes poner \", para diferenciar esas comillas de las que debes poner en la sintaxis.
Cuando lees un ini con una ruta C:\loquesea, el compilador lo interpreta tal cual, no actúan los caracteres de control, porque no estamos escribiendo código. Los parámetros, cuando llevan espacios en su interior, deben ir encerrados entre comillas. Así, param numero uno, debe ir escrito en el código así: Código:
"\"param numero uno\"" Saludos. |
![]() |
|
|
![]() |
||||
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 |
![]() |
|