Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: MS Access - problemy z wygaszaczem
dietert




Typ: neutral
Postów: 6
Zarejestrowany: Mar 2005
MS Access - problemy z wygaszaczem

Witam wszystkich,

mam nastepujacy problemik i szczerze powiedziawszy skonczyly mi sie pomysly.
Napisalem w Accesie bazke, ktora chodzi sobie 24h na kompie i wywoluje rozne inne aplikacje.
Ostatnio dodalem wywolywanie nowej aplikacji, ktora wykonuje raporty oparte na bazie danych DB2 i tu pojawil sie malutki problemik. Moze ktos z was slyszal o takim programie jak "BusinessObjects 6.1", to wlasnie ta aplikacja. Do uruchomienia tego programu uzylem standardowego polecenia SHELL podajac sciezke dostepu do aplikacji sciezke pliku do otwarcia oraz dodatkowo parametry usera, haslo, i wyglada to tak:

Dim appBO
Dim strAppAdres As String
Dim strBoAdres As String

strAppAdres = "C:\Programme\Business Objects\BusinessObjects Enterprise 6\bin\busobj.exe "
strBoAdres = "D:\BO\BO_DOKU\BO_AUTO_UP_DATE\BO_LOGIS_Buchung_Aus_Ohne_AUFTRAG_II.rep"

appBO = Shell(strAppAdres & strBoAdres & " /user xxx /pass  xxx", 2)

Do While OpenProcess(1, 0, appBO) <> 0
        AppActivate appBO
        SendKeys "{Enter}", True
        DoEvents
        Exit Do
Loop

Jak widac powyzej uzylem polecenia SendKeys gdyz ten program nawet poprzez uruchamianie z konkretnie podanymi parametrami zada potwierdzenia "OK" w oknie startowym.
Ten kodzik dziala calkiem niezle do póki na kompie nie wlaczy sie wygaszacz ekranu "WINDOWS" - to ten ktory blokuje po dluzszym czasie spoczynku dostep do kompa.
Kiedy moja bazka ma uruchomic tę aplikacje w czasie dzialania wygaszacza po prostu tego nie robi gdyz mimo iz kod zostal wykonany i nawet polecenie Sendkeys wyslalo zew o klawisz alpikacja BO nie reaguje i wisi przez 8 godzin i czeka na potwierdzenia "OK" wprowadzonych parametrów. Najciekawsze jest to iz w oknie startowym user oraz pass sa podane z polecenia Shell !!??!! Kiedy natomiast sie zaloguje i powtorze wywolanie aplikacji to zadziala bez problemu. Stąd wlasnie wywnioskowalem iz problem lezy wlasnie w wygaszaczu ekranu, a nie moge go wylaczyc z dwoch powodow.
Jest to zawsze jakies zabezpieczenie przed osobami trzecimi no i drugi powod nie jestem adminem sieciowym tylko lokalnym a to cos jest ustawione w profilu sieciowym i ten wygaszacz laduje sie razem z profilem przy logowaniu.
Czy ktos moze mi pomoc rozwiazac ten "maly" problemik ???? Z gory dziekuje za jaką kolwiek wskazówke i czekam na posty.

P.S.

Sorka za ewentualne bledy

11-03-2005 01:10
Pokaż profil dietert  Wyślij email do dietert   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Nie znam tej aplikacji, ale zastanowiło mnie czy nie można otwierać jej nie za pomocą shell, lecz przez automatyzację, być może wtedy można byłoby  logować się bez tego "klawisza enter" i chociaż dyskusja na na stronie
http://www.visualbasicforum.com/printthread.php?t=172432 dotyczy innego problemu jest tam taki fragment kodu:

VB:
--------------------------------------------------------------------------------
Dim oBO As Object
Dim doc, doc2 As Object
Dim loginBO As Boolean
Dim BOreport As Object
Dim myvariable As String

'Set oBO = GetObject("http:\serverBUSOBJ.exe", "BusinessObjects.application" )
Set oBO = CreateObject("BusinessObjects.application", "http:\serverfoldersBUSOBJ.exe" )
MsgBox ("Done" )

'Set oBO = CreateObject("BusinessObjects.application" )
oBO.Visible = True
oBO.interactive = True
Dim username, password As String
username = supervisor
password = bosdm01

loginBO = oBO.LoginAs(username, password)
Set doc = oBO.Documents.Open("F:reportname.rep" )


Set BOreport = oBO.ActiveReport

myvariable = "=<Transaction Type>=" & Chr(34) & response & Chr(34)

MsgBox ("Variable is " & myvariable)


Call BOreport.AddComplexFilter("Transaction Type", myvariable)

MsgBox ("Filter Created" )
oBO.Activedocument.saveas ("c:xxx" & reportname & ".pdf" )
MsgBox ("Report Saved as " & "c:xxx" & reportname & ".pdf" )

response2 = MsgBox("would you like to quit?", vbOKCancel)
If response2 = vbOK Then
oBO.Activedocument.save
oBO.Activedocument.Close
MsgBox ("Business Objects Exiting Now" )
oBO.Quit
End If
Set oBO = Nothing
End Sub

być może ta metoda byłaby lepsza ?
Sorry za niekompetencję, jakby co ,ale nie mam tej aplikacji, by to sprawdzić.

[Post edytowany dnia 11-03-2005 09:19 przez karolinavb]


_____________________________________________
Karolina

11-03-2005 09:17
Pokaż profil karolinavb  Wyślij email do karolinavb   
dietert




Typ: neutral
Postów: 6
Zarejestrowany: Mar 2005

Witaj Karolina

nie przejmuj sie nie kompetencja bo to ja sie okazalem nie kompetentny.
Mowiac krotko dalem ciala, w ogole nie pomyslalem o automatyzacji, kod ktory mi podeslalas, po dostosowaniu go do moich potrzeb, wykonal polecenia bez blednie, nawet przy wlaczonym wygaszaczu.
Jak na razie puscilem to w trybie testowym, jak sie do jutra nie wywali to przelacze go w tryb produkcyjny i zapominam o problemie.
Jeszcze raz seredczne dzieki za wskazówkę.

A tak nawiasem mówiac to kod, który przeslalas jest zywcem wziety z aplikacji Business Objects.

Pozdr
Marek

12-03-2005 03:52
Pokaż profil dietert  Wyślij email do dietert   
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1