[ acatheking @ 08.06.2004. 14:21 ] @
Pokusacu problem ovako da predstavim.
VB kod, kojim se izvrsava neka win32 aplikacija izgleda ovako:

Code:

Dim Putanja As String
Dim z As Long
Putanja = "c:\bilosta.exe"

z = Shell(Putanja, 1)



Kako, medjutim, da iz shell-a pokrenem neki dos program?
Npr bilo bi pozeljno sa dodatnim parametrima?
Npr. da startuje cmd.exe i da izvrsi dir /w, a da prozor sa ispisom ostane otvoren i da prompt ceka narednu komandu.

Pokusavao sam dosta varijanti, guglao, ali ne ide.
Vrucina udarila u glavu.
[ acatheking @ 09.06.2004. 16:02 ] @
Hm... mozda nisam bio jasan, ili sam bas zahtevan u problemu.
Evo da pojednostavim jos malo.
Potrebno mi je da iz VB startujem cmd.exe, da iz VB izvrsim neku komandu u tom prozoru npr. dir, pa zatim i ver, i da cmd prozor i dalje bude otvoren.
[ mladenovicz @ 09.06.2004. 16:13 ] @
Ono sto tebi treba je SendKeys

Code:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
    Shell "cmd.exe", vbNormalFocus
    Sleep 1000 'wait 1 sec
    SendKeys "{D}{I}{R}", True
    Sleep 1000 'wait 1 sec
    SendKeys "{ENTER}", True
End Sub

[ jc denton @ 09.06.2004. 16:34 ] @
Npr. :
Code:

Shell "cmd.exe /k dir", vbNormalFocus
[ VRKY @ 09.06.2004. 20:18 ] @
Ne treba da piše "exe" može i bez,isto radi.....
Code:
Shell "cmd /k dir", vbNormalFocus
[ acatheking @ 09.06.2004. 22:03 ] @
Ok. Prihvatljive su ove varijante... samo kod resenja mladenovicz-a, prozor cmd mora biti fokusiran, inace dolazi do prekida u slanju karaktera pomocu SendKeys.
Hteo sam da pitam na koji nacin pomocu SendKeys mogu da posaljem kombinaciju tastera, npr. da prikaze full screen sa ALT+ENTER?
I druga stvar, koja je razlika ako se otkuca dir i {d}{i}{r}?
[ mladenovicz @ 10.06.2004. 09:33 ] @
1) SendKeys "%{ENTER}", pogledaj SendKeys u MSDNu za vise detalja o kombinaciji tastera
2) Naravno da treba koristiti "Dir" umesto "{D}{I}{R}" :). Kad se salje string treba ga slati unutar "". {} se koriste za F1, F2, .. SPACE, ENTER, ...
[ fLuXx @ 22.06.2004. 13:28 ] @
Ja mislim da imam pametnije resenje. Upises sve naredbe u Batch file:
Code:

open "c:\test_bat.bat" for output as #1
cmd$=inputbox("Unesi komandu")
print #1, cmd$
close #1
retval=shell("c:\test_bat.bat",vbNormalFocus)


Meni radi, e sad zavisi sta ti treba...