Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

[Access2003] Otwieranie notatnika i drukowanie dokumentu: otwiera program w tle



 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Bazy danych
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
marzatela



Doczy: 13 Maj 2012
Posty: 406

PostWysany: Wto Sty 10, 2017 7:53 am  OP    Temat postu: [Access2003] Otwieranie notatnika i drukowanie dokumentu: otwiera program w tle Odpowiedz z cytatem Pisownia

Problem niby prosty: kodem VBA otwieramy plik tekstowy, drukujemy go, zamykamy plik bez zapisywania zmian. Niestety, co mi nie dziaa. Sam plik si otwiera (cho w tle, cay czas widoczny jest Access, nie notatnik) i nic nie drukuje si. W dodatku przy zamykaniu pojawia si komunikat czy zapisa zmiany.
Stosuj taki kod:
Kod:
JP = Shell("notepad.exe" & " " & NazwaPlik, vbNormalFocus)
     AppActivate JP
     'DoEvents
     SendKeys "^P", True
     SendKeys "D", True
     SendKeys "%{F4}", True
     SendKeys "N", True


Co robi le?

_________________
marzatela
http://www.szultaset.pl
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email Odwied stron autora
marcin_an



Doczy: 26 Maj 2005
Posty: 18822

PostWysany: Wto Sty 10, 2017 8:22 am      Temat postu: Odpowiedz z cytatem Pisownia

Bardzo duo robisz le. Masz hazard (w liniach 1-2), uywasz SendKeys, nieprawidowo obsugujesz spacje w nazwie pliku (linia 1), masz shell-injection (linia 1). 4 bdy, w tym krytyczna dziura w bezpieczestwie, w zaledwie 7 linijkach ;).

notepad.exe przyjmuje opcj /P, ktra pozwala drukowa dokument. Ponadto obejmij argumenty w cudzysowy i upewnij si, e same argumenty nie zawierajcudzysoww.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
marzatela



Doczy: 13 Maj 2012
Posty: 406

PostWysany: Wto Sty 10, 2017 8:55 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

C, tak naprawd - to nadal nie wiem co i gdzie powinnam zmieni i poprawi. Akurat z Shell chyba nigdy nie korzystaam, wic moja wiedza jest tu znikoma. To, e kod jest nieprawidowy widz po efektach.
Niemniej dzikuj za pomoc.

_________________
marzatela
http://www.szultaset.pl
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email Odwied stron autora
marcin_an



Doczy: 26 Maj 2005
Posty: 18822

PostWysany: Wto Sty 10, 2017 9:26 am      Temat postu: Odpowiedz z cytatem Pisownia

Niezbyt pamitam juVB, ale mniej wicej tak:
Kod:
If InStr(nazwaPliku, """", vbBinaryCompare) > 0 Then
    ' Powiadomienie o bdzie, gdy `nazwaPliku` zawiera cudzysw
ElseIf InStr(nazwaPliku, "%", vbBinaryCompare) > 0 Then
    ' Powiadomienie o bdzie, gdy `nazwaPliku` zawiera %
Else
    If Shell("notepad.exe /P """ & nazwaPliku & """") = 0 Then
        ' Powiadomienie o bdzie, gdy nie da si uruchomi notatnika
    End If
End If
Niech kto jeszcze rzuci na to okiem przed uyciem - nie mam nawet Windowsa pod rk, a jest to kod "wysokiego ryzyka". Funkcja Shell nie powinna by nigdy uywana, ale niestety w VB6 nie bardzo jest wybr.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
marzatela



Doczy: 13 Maj 2012
Posty: 406

PostWysany: Wto Sty 10, 2017 10:06 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Dziki pikne, teraz mi zadziaao :)
Musze zdecydowanie wicej poczyta na ten temat.

_________________
marzatela
http://www.szultaset.pl
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email Odwied stron autora
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Bazy danych Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.35928 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |