Upisivanje podataka u neki drugi program...

1

Upisivanje podataka u neki drugi program...

offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

Da li je moguce ( mislim garant jeste, ali kako Very Happy ) da moj program salje podatke nekom drugom programu i to tako da ja recimo pripremim sve potrebne podatke, a da onde popunim edit-e tog drugog programa?

U sustini bih hteo da pripremim neke podatke za stampu pa da onda te podatke posaljem drugom programu koji sluzi za popunjavanje raznih obrazaca ( koji nisam ja napisao ) da se ne bi morali popunjavati rucno.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 05 Sep 2005
  • Poruke: 34
  • Gde živiš: BGD

sad bas ako taj drugi nisi ti pisao, tj nemas source code, ne znam, a inace to ti je standardna client-server



offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Ako zelis da popunjavas edit box, list box, combo box i slicne kontrole mozes da uradis sledece:

Pronadji ID kontrola na prozoru ili njihov handle (ako imas neki Resource Editor mozes otvoriti exe fajl ili neki dll u kojem su sacuvani dialozi i procitati te ID) na neki nacin i onda im slati win msg da rade sta zelis.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Imao sam negde gotov primer kako da na drugom programu poukljucujes sve komponente kojima je Enabled := False ("osposobljavanje Demo verzija"). Radi na principu koji je Srki spomenuo, s tim sto je potrebno pronaci i prozor kome zelis da pristupis.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Bobby, nije to bas tako jednostavno...

@Strog, jel taj drugi program tvoj program ili neki levi?
Ako je tvoj, onda to uopste nije problem, ako je pak drugi, onda je to jako jako tesko, osim ako programeri tog drugog programa nisu to predvideli i ostavili u dokumentaciji.

Problem se javlja u tome sto je lako naci handle aplikacije i/ili neke njene otvorene forme. Sta je teze naci je handle kontrole. Kontrole koje su kreirane unutar neke forme su pod direktnom kontrolom OWNER-a, u tom slucaju ne mozes da napravis FOR za Control.count...

Kada mozes da nadjes handle:
Zamisli da je komponenta kreirana ovako

editbox:=TEditBox.create;
editbox.name:='mojEditBox';

onda se moze naci handle putem pretrazivanja prozora po imenu, pod uslovom da znas ime. Ako pak nije navedeno ime, kompajler ni ne popuni to, jer je njemu handle dovoljan i nemas kako da nadjes dati handle.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Nije bas tako tesko Smile

Kad pogledas neki kreiran proz\or vidis da se, recimo, neki edit nalazi na otprilike 10, 10 koordinati. Napravis program koji radi enumeraciju svih child prozora i kad nadjes neki prozor koji se nalazi na koordinati koju si otprilike procenio to je skoro 100% prozor koji zelis. Posle je lako u programu napisati uslov koji ce na ovom principu pronaci odredjeni prozor.
Postoji nacin kada znas ID neke kontrole. Onda je to jos lakse. Znas tacno handle prozora (dobijes ga na osnovu ID) i enumeracijom ga nadjes.
Takodje, mozes traziti prozore po klasi, velicini, tekstu koji sadrzi i slicno.

Nikad nisam probao to da radim pod novijim Windowsima pa ne znam da li je to jos uvek moguce, ali je sasvim glatko radilo pod Win3.1 i Win95.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

@Srki
to sto si opisao se zove "Botch" na engleskom. U slobodnom prevodu bih preveo "botch" kao "drzi vodu dok majstori odu" ili "rad preko k..."
To je losa programerska praksa i leglo za bagove.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Ne mogu vise da nadjem, ali imao sam Source za Windows Enabler ( http://www.angelfire.com/falcon/speedload/Enabler.htm ). Mislim da bi ti to dalo dovoljno podataka za pocetak.

offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

@belo0135

Taj drugi program nije moj program, ali bih mozda mogao da kontaktiram programera tog programa pa da se raspitam sta i kako, ili cak da mi dokumentuje malo taj deo svog programa, samo da ja saznam sta mi sve treba, pa da budem 100% potkovan, da ne idem u dogovor kao tele Very Happy...

@bobby

Hvala, pogledacu to.

@Srki_82

Cujemo se mi jos po pitanju toga Wink...

offline
  • Pridružio: 25 Mar 2006
  • Poruke: 67
  • Gde živiš: Doboj, Republika Srpska

procedure TForm1.Button1Click(Sender: TObject) ; var g,d:integer; begin   {Pronalazi glavni prozor aplikacije}   g:=FindWindow('Notepad',nil) ;   {Trazis text box}   d:=ChildWindowFromPoint(g,point(50,50)) ;   {Saljes karakter}   SendMessage(d,WM_CHAR,Ord('A'),0) ; end;

Probajo ovaj kod ovo radi sa notepadom.

Ko je trenutno na forumu
 

Ukupno su 484 korisnika na forumu :: 7 registrovanih, 1 sakriven i 476 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Drug pukovnik, hyla, mnn2, nikoladim, Ognjen D., Tas011, tomigun