Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 18 odgovora
  • 5.174 pregleda

Najnovija ↓

Kako otvoriti ne-exe program ili fajl ? 29.06.2007. u 11:44 · pre 235 meseci #1
Pomoću izraza Shell(putanja) se pozivaju (otvaraju) programi koji imaju "exe".
Meni je potrebna naredba, koja bi otvorila neki program (dokument), koji nije exe, napr. exelov dokument, ili jpg slika.
Pokušavao sam i pomoću "sendkeys", ali ni to ne radi kada je jedan od "keys" neko slovo.
"^+" radi...
Potpis
...neki drugi pogled na svet...
Re: Kako otvoriti ne-exe program ili fajl ? 29.06.2007. u 14:53 · pre 235 meseci #2
za to se koristi ShellExecute API funkcija, o tome je pisano vec milion puta ovde na forumu, mogao si da koristis pretragu :)
skini API-Guide (imash link u TOP temi) u njemu imash primere, evo paste iz njega:
Code:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: [email protected]
    'Send an E-Mail to the KPD-Team
    ShellExecute Me.hwnd, vbNullString, "mailto:[email protected]", vbNullString, "C:\", SW_SHOWNORMAL
End Sub

ovo je kod koji ce da ti otvori default mail klijent, a da bi otvorio bilo koji tip fajla (u default programu za taj tip fajlova) onda treba da prosledis "open" kao lpOperation:
Code:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1

Private Sub Form_Load()
   ShellExecute Me.hwnd, "open", "C:\document1.doc", vbNullString, "C:\", SW_SHOWNORMAL
End Sub

ovo ce ti pokrenuti Word i otvoriti C:\document1.doc fajl...
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Kako otvoriti ne-exe program ili fajl ? 29.06.2007. u 21:08 · pre 235 meseci #5
Meni radi.
Naravno, moras imati taj test.txt na c:, ili upisi putanju do svog fajla koji hoces da pokrenes.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako otvoriti ne-exe program ili fajl ? 29.06.2007. u 21:22 · pre 235 meseci #6
To mi je jasno, tako sam i u predhodnom slučaju upisao putanju, i radi.
Da li u ovom slučaju treba deklarisati neku funkciju, ili nešto tako, kao što je u onom slučaju gore?
Mada sam rešenje već dobio, nije loše znati više načina...
Potpis
...neki drugi pogled na svet...
Re: Kako otvoriti ne-exe program ili fajl ? 29.06.2007. u 21:43 · pre 235 meseci #7
Radi sad i meni. Ja imam dva OS, tako da sam umesto C napisao F, i nije radilo:
Shell ("cmd.exe /F F:\test.txt")
Kada sam napisao:
Shell ("cmd.exe /C F:\test.txt")
radi, ali se uz traženi fajl otvara i "cmd.exe", ali ne C, već F. Kada zatvorim traženi fajl, zatvori se i to, tj nestaje sa task bara.
Sve u svemu, zadovoljan sam odgovorima, i hvala još jednom.
Potpis
...neki drugi pogled na svet...
Re: Kako otvoriti ne-exe program ili fajl ? 29.06.2007. u 21:53 · pre 235 meseci #8
Zapravo, upravo /C parametar bi trebao da natera prozor konzole da se odmah zatvori. Probaj umesto navedenog shell("cmd.exe /C start f:\test.txt")
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako otvoriti ne-exe program ili fajl ? 29.06.2007. u 22:35 · pre 235 meseci #10
Ovako :)
Ti funkciom Shell pokreces cmd.exe program. Njemu kao parametre prosledjuces /C start f:\test.txt. Pri tome /C oznacava da komanda bude izvrsena a cmd.exe se zatvori odmah (ne znam zasto ne radi). cmd.exe izvrsava program ili pokrece fajl ili izvrsava komandu koja mu se prosledi (nakon ovih /nesto parametara). Zato smo prosledili putanju do fajla. E sad, to iz nekog razloga tebi nije radilo pa smo umesto fajla pokrenuli komandu start koja radi slicnu stvar - pokrece program ili fajl koji joj je prosledjen.

Za vise informacija, Start > Run, upisi cmd.exe, enter. Kada se pokrene Command prompt, probaj komande cmd /? i start /?
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Kako otvoriti ne-exe program ili fajl ? 05.07.2007. u 15:49 · pre 235 meseci #11
Imao bih još jedno pitanje, ako nije problem:
Zašto mi tako napravljen exe fajl u VB-u ne radi na drugom računaru?
Ništa komplikovano, samo jedna forma (sa satom) i dugme za otvaranje nekog programa. Kod mene radi u obe varijante, a na drugom računaru se pojavi samo sat, a dugme ne radi.
Potpis
...neki drugi pogled na svet...
Re: Kako otvoriti ne-exe program ili fajl ? 24.07.2007. u 20:07 · pre 234 meseca #14
Pa ako ne postavis kod, mi jedino mozemo da ti pomognemo uz pomoc nekih natprirodnih sposobnosti (ja ih nemam)
Re: Kako otvoriti ne-exe program ili fajl ? 24.07.2007. u 23:50 · pre 234 meseca #15
Kod je sledeći:
Code:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Private Sub Label1_Click()
ShellExecute Me.hwnd, "open", "E:\KUVAR.xls", vbNullString, "C:\", SW_SHOWNORMAL
End Sub
Private Sub Label2_Click()
ShellExecute Me.hwnd, "open", "E:\KUVAR.xls", vbNullString, "C:\", SW_SHOWNORMAL
End Sub
Private Sub Label3_Click()
ShellExecute Me.hwnd, "open", "E:\KUVAR.xls", vbNullString, "C:\", SW_SHOWNORMAL
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Format(Time, "hh:mm:")
Label2.Caption = Format(Date, "d.mmmm.yyyy.")
Label3.Caption = Format(Time, "ss")
End Sub
Private Sub Form_Load()
Timer1.Interval = 500
End Sub
Private Sub Form_Click()
ShellExecute Me.hwnd, "open", "E:\KUVAR.xls", vbNullString, "C:\", SW_SHOWNORMAL
End Sub

Uradio sam tako, da bilo gde da se klikne mišem otvara se dokument "KUVAR.xls". Adresa tog dokumenta je identična i na drugom računaru, ali tamo ne radi.
Potpis
...neki drugi pogled na svet...
Re: Kako otvoriti ne-exe program ili fajl ? 26.07.2007. u 10:37 · pre 234 meseca #18
Iskreno da ti kazem, nemam pojma - to sam ti predlozio jer je taj parametar u sustini visak, a sve ostalo mi se cinilo da je korektno. Mozda ce ti neko drugi izneti tacan razlog, ja se nisam previse udubio u problematiku (nisam cak ni probao tvoj kod), ali nema veze - bitno da je problem otklonjen.

Pozdrav!
Re: Kako otvoriti ne-exe program ili fajl ? 26.07.2007. u 12:34 · pre 234 meseca #19
Citat:
Da, tako radi. Ako nije previše komplikovano, objasni mi zašto je to tako.

lpDirectory je pointer na defaultni direktorijum i ako navedeš u lpFile kompletnu putanju do dokumenta, on uopšte nije potreban. U većini slučajeva nije bitno šta navedeš kao lpDirectory, trebalo bi da radi, ali očigledno ne uvek, što si video i na svom primeru. Dakle, ako navedeš kompletnu putanju do fajla, slobodno ostavi lpDirectory prazno, tj. ili "" ili vbnullstring. lpDirectory navodiš onda kada ne stavljaš kompletnu putanju do fajla. Recimo, ovo bi takođe trebalo da ti radi
Code:
Private Sub Label3_Click()
ShellExecute Me.hwnd, "open", "KUVAR.xls", vbNullString, "E:\", SW_SHOWNORMAL
End Sub
Potpis
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme