Poslao: 30 Jun 2006 14:34
|
offline
- Strog
- 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 ) 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.
|
|
Poslao: 30 Jun 2006 15:07
|
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
|
|
|
|
Poslao: 30 Jun 2006 16:44
|
offline
- Srki_82
- Moderator foruma
- 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.
|
|
|
|
Poslao: 30 Jun 2006 17:55
|
offline
- bobby
- Administrator
- 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.
|
|
|
|
Poslao: 30 Jun 2006 19:05
|
offline
- beli0135
- Executor
- 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.
|
|
|
|
Poslao: 30 Jun 2006 21:05
|
offline
- Srki_82
- Moderator foruma
- 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
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.
|
|
|
|
Poslao: 30 Jun 2006 21:09
|
offline
- beli0135
- Executor
- 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.
|
|
|
|
|
Poslao: 30 Jun 2006 21:53
|
offline
- Strog
- 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 ...
@bobby
Hvala, pogledacu to.
@Srki_82
Cujemo se mi jos po pitanju toga ...
|
|
|
|
Poslao: 01 Jul 2006 07:41
|
offline
- IgorMedo
- Građanin
- 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.
|
|
|
|