vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest wtorek, 14 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

sendkeys, drukowanie pdf i appactivate


otwartyotwarty rozpoczął: Radek postów: 3



napisał: adamekp
postów: 3


umieszczony:
2 grudnia 2008
20:13

edytowany:
2 grudnia 2008
20:16

  
Witaj,
rozwiazanie jest proste zamiast Sleep 10000 wstawiasz

PDF.WaitForAppAvailable
PDF.WaitForInputReady


Pozdrawiam
Adam
napisał: kabu
postów: 30


umieszczony:
16 kwietnia 2008
15:04

  
Co do pierwszego problemu - mozna to zapewne rozwiazac jakos ladnie choc ja nie mam pomyslu:). Co do "brzydkiego" rozwiazania to rob zrzuty ekranu i sprawdzaj czy program juz zakonczyl drukowanie - choc bawic sie w cos takiego w vba to wg mnie pomylka. Jesli chcesz robic "makra", ktore "zarzadzja" innymi programami to lepiej uzyj autoit lub autohotkey (sa prosztsze niz vba wiec nie powinienes miec problemu a obsluga ekranu jest tam dosc intuicyjna).
napisał: Radek
postów: 8


umieszczony:
15 kwietnia 2008
20:11

  
Witam wszystkich,

Napisałem program, który umożliwia drukowanie dowolnej liczby plików pdf. Makro w zasadzie działa poprawnie ale poczucie niepewności dają mi te linijki:
Set PDF = CreateObject("Wscript.Shell")
PDF.Run (jakis adres kolejnego pdf)
PDF.SendKeys ("%fp")
PDF.SendKeys "~"
Sleep 10000
PDF.SendKeys ("%fx")

Otóż, po wydaniu polecenia drukowania Adobe Reader zwykle potrzebuje paru sekund aby je wykonać. Dlatego wprowadziłem 10 sekundową przerwę przed uruchomieniem kolejnych poleceń, tj. zamknięcia dokumentu i uruchomienie w pętli tej samej procedury dla następnego, pdf. 10 sekund najczęściej wystarcza, ale jest metoda nieefektywna, czas oczekiwania jest zwykle za długi, a z drugiej strony zawsze może się zdarzyć spory plik, dla którego 10 sekund to za mało. Czy można sobie jakoś poradzić z tym problemem?

Moje drugie pytanie dotyczy polecenie AppActivate. W przypadku otwierania kolejnych plików pdf działało ono bez zarzutu, natomiast nie wiem jak odnieść się do adresu strony internetowej (poniższy przykład nie działa):

Set ADRES = CreateObject("Wscript.Shell")
ADRES.Run ("http://vbamania.pl")
ADRES = "http://vbamania.pl"
Do Until test = True
test = ADRES.AppActivate("vbamania.pl")
Sleep 500
Loop


pozdrawiam
Radek


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z