![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Exacto , es lo que necesito, pero ¿ se puede hacer desde un ejecutable y dejar la salia en una variable ?
Gracias por responder. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#2
|
||||
|
||||
|
¿Cual es el comando que te interesa?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
||||
|
||||
|
Cita:
Quiero hacer un programa que controle los accesos a mi pc. Hice ayer una pregunta en el foro pero creo que la planteé mal porque nadie me ha respondido. Al grano, creo que algunos 'compañeros' se conectan a mi pc y me extraen ficheros que son de mi propiedad, que utilizo como diarios de incidencias - soy responsable de un departamento y tengo problemas con un par de 'rebeldes' -. Como no me hacen caso los administradores del sistema - yo no lo soy - ni tengo potestad para instalarme programas de auditoría, ... me hice un script que se lanza cada 5 minutos con el comando arp -a >> fichero. En el fichero busco las macadress de los equipos desde los que creo que se conectan. Esto, hace que se me abra una ventana cmd cada 5 minutos, que se me 'cuela' en el escritorio y me hace perder letras en la aplicación en la que estoy trabajando ( word, excel, correo), ... lo que útlimamente ya me está cansando. Quiero una solución un poco más elegante - seguro que hay alguna manera muuuucho más sencilla - , y como de sistema no controlo mucho, se me ocurrió la 'brillante' idea. O sea, que aquí estoy dándole vueltas al tema. Por cierto, quiero pillarles 'in fraganti' para por lo menos sacarles los colores y pillarles con mi disco mapeado, porque lo denuncié y no me han hecho demasiado caso. Como mi orgullo ha salido herido, pues eso.... pero sin que la sangre llegue al río. Perdonad la chapa, pero cuando alquien viola tu intimidad, pues eso, te calientas y el derecho al pataleo es lo único que nos queda. Un saludo a todos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#4
|
||||
|
||||
|
Cita:
En el caso del arp, ya lo tenes redireccionado a un fichero, por lo que no necesariamente tenes que "asignar el resultado a una variable" como lo habias planteado. Cuando lanzas el comando, si lo haces con ShellExecute, podes enviarle sw_hide en el parámetro nShowCmd, de manera que la ventana de consola no sea visible, y seguir tratando el archivo generado por la captura de la salida estándar al concluir su ejecución. Cita:
![]() Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
||||
|
||||
|
Hola amigos ( me tomo la libertad de trataros como tal ...
)He estado haciendo pruebas con el tema este de marras y me dice que el fichero donde redirecciono la salida no existe, por lo que parece que no se ejecuta el comando. Pistas: - strCommand contiene 'arp -a > c:\borrar.txt', confirmado. - Si pongo SW_SHOW arranca una ventana porque la veo abrirse y cerrarse. - Y poco más. Muestro las líneas para comprobar que lo hago bien. En la ayuda no he encontrado documentación de winexec. Utilizo Delphi 7 Agradecería cualquier sugerencia o similar. Adjunto el código Código:
**************************************************** procedure TFormMain.comprobar; var n: integer; strCommand : String; zCommand : array[0..79] of Char; begin strCommand:= EComando.Text+' > '+FileListBox2.Directory+Esalida.text; winexec(StrPCopy(zCommand, StrCommand), SW_HIDE); Salida.LoadFromFile(ESAlida.Text); For n:=0 to Salida.Count-1 do showmessage(Salida[n]); end; Error: Cuando hace el LoadFromFile dice que el fichero que tiene ESalida.Text no existe. ****************************************************
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#6
|
||||
|
||||
|
Hola,
He hecho la prueba que mencionabas y no se crea el fichero porque winexec no interpreta bien la orden, si la ejecutas desde el dos arp -a > c:\result.txt funciona sin problemas pero parece que winexec interpreta el > y el nombre de fichero como parametros de arp y no del sistema, genera un error y no crea el fichero destino. Si pruebas a ejecutar un bat (WinExec('c:\proceso.bat',.SW_..); y dentro del bat tienes arp -a > c:\result.txt, lo genera sin problemas. Puedes modificar el código para que autogenere el bat y lo ejecute. Con respecto a arp, puedes usar tambien net file, que te da la lista de ficheros propios abiertos por otras máquinas en la red, indicando el usuario que lo hace y todo. |
|
#7
|
||||
|
||||
|
Gracias, lo porbaré en cuanto pueda.
Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#8
|
|||
|
|||
|
Buenas,
Si es eso lo que buscas si se puede. Deberías hacer un programa que ejecute lo que necesitas en línea de comandos y que luego obtenga la salida del archivo. Fijáte en este hilo que hay un ejemplo de WinExec: http://www.clubdelphi.com/foros/show...hlight=winexec Para leer el archivo y poder manipularlo con facilidad podrías utilizar un TStringList. De todas formas en este foro se habló bastante de este tipo de temas, quizás sea más útil que te des una vuelta por la búsqueda del foro.
__________________
Suerte .: Gydba :. |
|
#9
|
||||
|
||||
|
Creo que me vale más que suficientemente. Todo el desarrollo por encima ya lo prepararé con calma.
Busqué en los foros antiguos, pero a veces es difícil a bote pronto acertar con las palabras claves a utilizar y que encuentres lo que quieres, sobre todo cuando andas un poco despistado. Gracias por vuestra ayuda, me habeis dado luz. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|