Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ejecutar programa a trves del PcAnyWhere (https://www.clubdelphi.com/foros/showthread.php?t=36186)

Iskariote0087 04-10-2006 16:15:52

Ejecutar programa a trves del PcAnyWhere
 
;) Hola un saludete para todos.
vereis tengo un programa desde el cual llamo al Symantec pcAnywhere pasandole una variable.Dependiendo de lo que contiene la variable me conecto con un Host o con otro.Es decir, desde mi ordenador me conecto a 120 equipos, he hecho un programa para no tener que estar entrando en el pcAnywhere buscando el Host al que quiero conectarme etc... de tal forma que lo que hago es hacer la llamada pasandole el parametro requerido (codigo de tienda) y se conecta.Bueno, despues del rollo ahi va, lo que necesito es que desde este programa una vez que ya me he conectado al Host, hacer una llamada a un programa que esta en ese Host. Seguro que es posible pero a mi se me escapa, quien me echa un cable?:(

Un saludo y gracias
Iskariote

Caral 04-10-2006 18:29:08

Hola IsKariote0087
Interesante concepto, tambien uso pcAnywhere y no se me habia ocurrido algo asi, suena interesante.
Si pones el codigo del programa por aqui, tal vez entre varios podamos hechar a andar esto, repido es interesante.
Comparteo.
Saludos

Iskariote0087 04-10-2006 18:43:35

De esta manera con poner en la caja de texto 'TxtCod.text' el codigo del Host y hacindo click sobre el boton se conecta directamente.Una cosa curiosa y que no he conseguido solucionar es que cuando se conecta te deja la conexion minimizada, es una chorrada porque con maximizarla ya esta pero no he encontrado la manera de que se ejecute maximizado.
Espero que te sirva la verdad es que si estas constantemente conectandote a diferentes equipos es una manera de ganar tiempo.
De todas formas si a alguien sabe como ejecutar un programa que este en el Host al que te has conectado desde el programa que esta en el servidor pues ya sabe......un saludo

Código Delphi [-]
procedure TForm1.BtPcAnywhereClick(Sender: TObject);
var
  sinHandle1: THandle;
  tienda:string;
  searchResult : TSearchRec;
  codigo:string;
  tiendaAejecutar:string;
begin

    
  if FindFirst('C:\Documents and Settings\All Users\Datos de programa\Symantec\pcAnywhere\*.CHF', faAnyFile, searchResult) = 0 then   // si es o ha encontrado algo
  begin
    repeat
      Codigo:=AnsiMidStr(searchResult.Name, 1, 5);
      tienda:=AnsiMidStr(searchResult.Name, 6, 35);
      tiendaAejecutar:= Codigo+  tienda;
      If txtCod.Text= codigo then
        shellexecuteA(sinHandle1,'open',
             pansichar('C:\Documents and Settings\All Users\Datos de programa\Symantec\pcAnywhere\'+ tiendaAejecutar) ,nil,nil,sW_normal);
    until FindNext(searchResult) <> 0;
  end;
  findclose(searchResult);
  Form1.Enabled:=false;
  Form1.Enabled:=true;
 
end;



Un saludete Perretes
Iskariote

Caral 04-10-2006 18:54:52

Hola denuevo
Me esta dando un error esto y no se porque:
Cita:

[Error] Unit1.pas(40): Undeclared identifier: 'AnsiMidStr'
Cita:

[Error] Unit1.pas(44): Undeclared identifier: 'shellexecuteA'
Me falta declarar estos, donde los declaras ? en el uses ?
Y como ?
Saludos

Iskariote0087 04-10-2006 19:28:45

tienes que declarar en
USES
StrUtils,Shellapi
creo que con esto te funcionará

Un saludo
Iskariote

Caral 04-10-2006 19:32:14

Gracias IsKariote0087
Pero me sigue dando error, ahora solo este:
Cita:

[Error] Unit1.pas(40): Undeclared identifier: 'AnsiMidStr'
Supongo que el problema biene por el Ansi, no se?
Saludos

Caral 04-10-2006 19:49:10

Este es una copia del tuyo tal vez me indicas que falta en el uses:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StrUtils, Shellapi, StdCtrls;

type
  TForm1 = class(TForm)
    TxtCod: TEdit;
    BtPcAnywhere: TButton;
    procedure BtPcAnywhereClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BtPcAnywhereClick(Sender: TObject);
var
  sinHandle1: THandle;
  tienda:string;
  searchResult : TSearchRec;
  codigo:string;
  tiendaAejecutar:string;
begin
  if FindFirst('C:\Documents and Settings\All Users\Datos de programa\Symantec\pcAnywhere\*.CHF', faAnyFile, searchResult) = 0 then   // si es o ha encontrado algo
  begin
    repeat
      Codigo:=AnsiMidStr(searchResult.Name, 1, 5);
      tienda:=AnsiMidStr(searchResult.Name, 6, 35);
      tiendaAejecutar:= Codigo+  tienda;
      If txtCod.Text= codigo then
        shellexecuteA(sinHandle1,'open',
             pansichar('C:\Documents and Settings\All Users\Datos de programa\Symantec\pcAnywhere\'+ tiendaAejecutar) ,nil,nil,sW_normal);
    until FindNext(searchResult) <> 0;
  end;
  findclose(searchResult);
  Form1.Enabled:=false;
  Form1.Enabled:=true;
end;

end.

Este es el error:
Cita:

[Fatal Error] Unit1.pas(7): File not found: 'AnsiUtils.dcu'
Saludos

Iskariote0087 04-10-2006 19:51:40

strutils, con esta libreria el Ansi tiene que funcionar, acabo de hacer la prueba.La quito me da error la pongo ya no me da error.

un saludo
Iskariote

Caral 04-10-2006 19:54:52

Sera el delphi 6 el problema, No me funciona ?
Lo quite o lo ponga es lo mismo, vi en la lib del delphi y si esta.
Que sera ?
Saludos

Iskariote0087 04-10-2006 19:59:21

Yo creo que el problema es que no tienes el componente que te permita trabajar con esa libreria.
Por Component\InstallComponet y añadirlo.Esto que te estoy diciendo te lo digo sin tenerlo muy claro, yo taambien soy un principiante y normalmente me ayudo mucho del foro para acabar mis programillas.
En cualquier caso si ves que no funciona quita el AnsiMidStr.Y prueba a meter en la variable codigo y tienda el codigo y el nombre a pelo a ver si te funciona.Luego ya pensaremos como hacer que funcione el Ansi...

Un saludete
Iskariote


La franja horaria es GMT +2. Ahora son las 13:37:26.

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