baffer tastature

baffer tastature

offline
  • thotto 
  • Novi MyCity građanin
  • Pridružio: 24 Feb 2008
  • Poruke: 4

Nadam se da ce mi neko znati pomoci u sledecem:

U firmi u kojoj radim imam program koji treba da filujem sa podacima.
To treba da radim rucno (ponekad veliku kolicinu). Mnogo dosadno.
Da si olaksam zivoti napisao sam par malih programa.
Imam program koji mi na elegantan nacin skuplja podatke.
Imam program koji pokrce firmin program preko shell naredbe i sa sendkey naredbom puni baffer tastature.
Sve je to lepo i funkcionisalo dok negde oko nove godine nisu odneli firmin racunar na servis.
Od onda jedan od prozora firminog programa ne preuzima korektno karaktere koje salje moj program.

Sada trazim neko pouzdanije resenje.
Znaci treba mi ideja kako da sa programom glumim kucanje na tastaturi i da to drugi program prihvati.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Cek, ti si pisao taj program?

Jel lociras onaj drugi program preko imena prozora (title forme)?
Mozda su menjali taj title, pa samo treba da ga promenis i u tvom programu.

Ja ne znam za drugi nacin kako pristupiti GUI kontrolama drugog programa osim preko nalazenja prozora, pa onda prozivkom kontrola dok se ne naidje na onu ciji sadrzaj zelis da promenis.



offline
  • thotto 
  • Novi MyCity građanin
  • Pridružio: 24 Feb 2008
  • Poruke: 4

Evo tu je programska sekvenca koja mi sve to radi
'-------------- 'obrada CuDcWin '-------------- Sub ObradaCuDcWin()    Dim i, j    Dim RetId    Dim Izbor    Dim PunoImeDxf As String    Dim PunoImeCdw As String    Dim ImeBezExt As String    Dim TehOldIme As String    Dim TehOldDeb As Double    Dim fs    Set fs = CreateObject("Scripting.FileSystemObject")    TehOldIme = ""    TehOldDeb = 0 '--glavna petlja    For i = 1 To ObjBroj    DoEvents        PunoImeDxf = TekaDir & ImeDXF(i)        PunoImeCdw = TekaDir & ImeCDW(i)        ImeBezExt = ImeNoe(i) '-provera ima li teka   If fs.FileExists(PunoImeCdw) Then          GoTo L1   End If   If Not fs.FileExists(PunoImeDxf) Then          GoTo L1   End If '-poziv na promenu tehnologije   If Not TehOldIme = TehIme(i) Or Not TehOldDeb = DebMat(i) Then      TehOldIme = TehIme(i)      TehOldDeb = DebMat(i)      Izbor = MsgBox("Technologiát válts a következőre" & vbCr & vbCr _            & TehIme(i) & "  " & Str(DebMat(i)) & "mm" _            , vbInformation, "ZZManóFia üzeni")   End If '-amin na obradu   Izbor = MsgBox(ImeDXF(i) & vbCr _         & "kerül feldolgozásra" & vbCr & vbCr _         & "Tovább", vbInformation + vbYesNo, "ZZManóFia üzeni")   If Izbor = vbNo Then Exit For '-CuDcWin        Shell "C:\CuDcWin\CuDcWin.exe", vbMaximizedFocus        SendKeys "~", 1                'enter pokrece editor        DoEvents        SendKeys "%(T) {DOWN 5} ~", 1  'otvara *.dxf input prozor        SendKeys PunoImeDxf, 1         'upisuje ime        SendKeys "~", 1                'enter input        DoEvents        SendKeys "~", 1                'enter deselect        SendKeys "%(T) {RIGHT 6} {DOWN 3} ~", 1 'analiza        DoEvents        SendKeys "%(T) {DOWN 4} ~", 1  'otvara output prozor        SendKeys PunoImeCdw, 1         'upisuje ime        SendKeys "~", 1                'enter output        DoEvents        SendKeys "%(T) {DOWN 9} ~", 1  'otvara baza prozor        SendKeys BazaPunoIme, 1        'upisuje ime baze        SendKeys "~", 1                'enter        SendKeys "~", 1                'enter        SendKeys "~", 1                'enter        DoEvents        SendKeys ImeBezExt, 1          'upisuje ime        SendKeys "~", 1                'enter        SendKeys "~", 1                'enter        DoEvents        SendKeys SeceSe(i), 1          'upisuje broj        SendKeys "~", 1                'enter        SendKeys "%(T) {UP 1} ~", 1    'exit CuDcWin        DoEvents L1: Next End Sub

Meni treba ideja kako preneti podatke iz jednog programa u drugi a da ta dva programa nisu u bili kakvoj vezi. O programu koji imam u firmi ne znam nista. To je program koji vrsi analizu delova koji ce biti seceni sa CNC plazma masinom. Posto ne zelim da rucno punim podatke trazim nacin kako da to resim programom. Asinhroni Shell i SendKeys su do sada, ne znam zasto funkcionisali.

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

A verzija tog CNC programa je ostala potpuno ista ili su uradili update na noviju?

offline
  • thotto 
  • Novi MyCity građanin
  • Pridružio: 24 Feb 2008
  • Poruke: 4

bobby
Tvoja ideja da nadjem prozor pa onda zeljenu kontrolu mi je pokrenula fantaziju. Nasao sam na netu primer koji preko API funkcija nalazi trazeni prozor. Ono sto nisam nasao je kako onda naci zeljenu kontrolu.
Molim te pomagaj kako sada da dodjem do kontrole i kako da joj menjam sadrzaj.

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

Uh, ja sam duduk za Visual Basic.
Potrebno je da uradis enumeraciju svih komponenti forme, pa da vidis koja je onog tipa (TMemo, TEdit itd) kakvog je komponenta koja tebi treba.
To ti je nacin da nadjes komponentu koja ti treba.

Ko je trenutno na forumu
 

Ukupno su 809 korisnika na forumu :: 7 registrovanih, 1 sakriven i 801 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: draggan, pein, prle122, Shilok, stalja, zlaya011, šumar bk2