Cita:
Empezado por ecfisa
Hola.
Tal vez te refieras a que la ventana de login del programa ya se este ejecutando... En ese caso fijate si este ejemplo te sirve de base para lo que buscas,
Código Delphi [-]
...
implementation
uses ShellApi;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShellExecute(Handle, 'open',
PWideChar(GetEnvironmentVariable('SYSTEM')+'notepad.exe'),
'', '', SW_SHOWNORMAL);
end;
procedure TForm1.Button1Click(Sender: TObject);
procedure VKeyPress(const aKey: Char);
var
ti: TInput;
begin
ZeroMemory(@ti, SizeOf(ti));
ti.Itype := INPUT_KEYBOARD;
ti.ki.wVk := vkKeyScan(aKey);
ti.ki.dwFlags := 0;
SendInput(1, ti, SizeOf(ti));
end;
var
H : HWND;
i : Integer;
begin
H := FindWindow(nil, PChar('Sin título: Bloc de notas'));
if H <> 0 then
begin
SetForegroundWindow(H);
EnableWindow(H, False);
try
for i := 1 to Length(EditUserName.Text) do
vKeyPress(EditUserName.Text[i]);
vKeyPress(#13);
for i := 1 to Length(EditUserPassword.Text) do
vKeyPress(EditUserPassword.Text[i]);
finally
EnableWindow(H, True);
SetForegroundWindow(Handle);
end;
end
else
ShowMessage('No se encontró la ventana');
end;
...
El ejemplo escribe el nombre de usuario y contraseñas almacenados en las propiedades Text de los edits en el Bloc de notas. No es muy específico ya que, como te indicó Antonio, tendríamos que conocer bastante mas acerca del programa externo.
Saludos
|
Muchas gracias Ecfisa, disculpa la demora en mi respuesta, tuve que formatear mi pc.
Pedazo de código te mandaste! Intenté compilarlo, pero me salta el error "incompatible types: 'WideChar' and 'Char'"
Según pude averiguar si uso pchar, tengo que enviarle char y no argumentos, en teoría lo comprendo, pero al momento de "pasar" a char, no entiendo cómo funcionaría (es más, a decir verdad, leyendo las páginas de como se usa shellexecute y sus parámetros también me pierdo)
De nuevo gracias por todo ese trabajo! Aunque el código parece corto, se el trabajo que cuesta.