Avatar billede gf Nybegynder
06. november 2003 - 22:01 Der er 10 kommentarer og
1 løsning

Få delphi program til at "trykke" på en knap

Hej

Jeg er ved at lave et lille program der skal logge nogle klient computere på en terminal server. Jeg starter forbindelsen til fjernskrivebord med:

ShellExecute (0,'open','C:\winnt\System32\mstsc.exe',nil,nil,SW_NORMAL);

Kan det lade sig gøre at få delphi programmet til automatisk at "trykke"/aktivere knappen opret forbindelse. således at brugeren ikke får lov til det?

Mvh GF
Avatar billede kallesen01 Nybegynder
06. november 2003 - 22:45 #1
hmm, jada det kan sagtens lade sig gøre... du kan jo bare lade være med at ligge en knap på formen og så skal du bare ligge koden ned i
FormOnCreat eller OnShow... der er mange muligheder! jeg vil da gerne hjælpe dig nermere hvis du har msn eller icq... kan self også hjælpe dig her du bestemmer!

/Kallesen
Avatar billede gf Nybegynder
06. november 2003 - 22:49 #2
Jeg er på msn
glenn@mail1.stofanet.dk
Avatar billede gf Nybegynder
06. november 2003 - 22:55 #3
Hej kallesen01

Jeg tror måske du har misforstået mig lidt, det er ikke knappen opret forbindelse i mit delphi program. Men knappen opret forbindelse I Windows programmet "Forbindelse til fjernskrivebord"

Mvh GF
Avatar billede kallesen01 Nybegynder
06. november 2003 - 23:09 #4
`hmm, arh! nu er jeg med, der må jeg nok skuffe dig en smule for det api kald kan jeg ikke men søg lidt på delphi3000.com mener de har det du søger

/Kallesen
Avatar billede gf Nybegynder
06. november 2003 - 23:15 #5
Ok det prøver jeg
Avatar billede Slettet bruger
07. november 2003 - 15:11 #6
Prøv det her:

procedure TForm1.Button1Click(Sender: TObject);
var
ButtonHwnd:hwnd;
begin
ButtonHwnd:=FindWindowEx(FindWindow(nil, '<vinduets titel>'),0,'BUTTON','<Knappens ');
PostMessage(ButtonHwnd,BM_CLICK, 0, 0);
end;
Avatar billede gf Nybegynder
07. november 2003 - 15:33 #7
Hej hejhej :)

Det virker desværre ikke, der er ingen fejlmeddelelser eller noget.
Ved vindues tittel og navn på knappen skriver jeg den danske tittel, kan det være, at jeg skal bruge de engelske titler?

Mvh GF
Avatar billede dl Nybegynder
18. november 2003 - 13:59 #8
Du har husket at indtaste brugernavn, password og ip.. i Windows fjernskrivebord ?

//dl
Avatar billede gf Nybegynder
18. november 2003 - 16:44 #9
Hej dl

Jeg ønsker ikke at den skal logge mig på, blot "trykke" på opret forbindelse knappen. det er så brugeren selv der skal udfylde adgangskode og password. Ip er indtastet korrekt

Mvh Glenn
Avatar billede kaper Nybegynder
08. december 2003 - 06:33 #10
Testet og virker:

procedure TForm1.Button1Click(Sender: TObject);
var
ButtonHwnd:hwnd;
begin
ButtonHwnd:=FindWindowEx(FindWindow(nil, 'Forbindelse til Fjernskrivebord'),0,'BUTTON','&Opret forbindelse');
PostMessage(ButtonHwnd,BM_CLICK, 0, 0);
end;

PS Benyt Winsight til at se knappens (rigtige) navn :D
Avatar billede gf Nybegynder
08. december 2003 - 14:40 #11
Hej

først virkede det ikke, men nu virker det :)
Jeg satte en Sleep(100); mellem program eksekvering og trup på knap funktionen.
Jeg har nok sat den til at trykke på knappen inden formen er fuldt åbnet.
Så hejhej's forslag virkede nok også, men han har ikke givet et svar, så point til kasper. Håber det er ok.

Mvh Glenn
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester