Elikkä miten saisin ajettua esim. komentorivin komentoja visual basicilla?
esim. komentojonossa "md moikka"
tai sitten käynnistettyä toisen ohjelman?
minä en saa esim. tuota MD komentoa toimimana millään. Tuo ohje on hieman vajavainen. Jos joku voisin selventää asiaa hieman.
nyt kun tarkennetaan niin voisiko, joku antaa kaksi mallia toisessa ihan yksin kertaisesti luodaan moikka kansio c-juureen ja toisessa sitten ajetaan DIR ja sijoitetaan tiedot ankannokalla moikka.txt tiedostoon eli komentojonossa ajetaan dir >> moikka.txt.
Moi AdeRide!
Kokeile vaikka tota alla olevaa...
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 Private Sub Command1_Click() ShellExecute 0&, vbNullString, "cmd.exe", vbNullString, _ vbNullString, vbNormalFocus SendKeys " DIR{ENTER}" End Sub
...the code above is pure shit, but it works...
EDIT: Eli siis...
SendKeys " MD C:\MOIKKA | DIR >C:\MOIKKA\MOIKKA.TXT{ENTER}"
Tossa on vielä sellainen pikkunen häikkä, että tuo avaa suurin piirtein 6 noita ikkunoita ja toiveena olisi ettei se avaisi yhtään. Se vähän häirihtee ohjelman käyttöä, kun ohjelman tykittää ruutuun 6-8 tollasta komentojonoikkunaa ja sitten ei edes sulje niitä. Jos on mitenkään mahdollista niin olisi kuningasta jos se ajaisi ne ilman, että tuo ikkuna aukee.
Vaihda vbNormalFocus vbHidden:in, niin avautuvaa ikkunaa ei näytetä. Tuon jälkeen tosin SendKeys ei taida toimia, sillä SendKeys lähettää komentonsa aktiiviseen ikkunaan.
ShellExecute palauttaa avaamansa ohjelman kahvan paluuarvona, jos se avaamisessa onnistuu, joten kahvan avulla voit sulkea tarpeettomat ikkunat PostMessagella. Ohjelmien sulkemisesta löytyy esimerkkejä täältä putkastakin.
ei tuo auttanu tuo esimerkki. Se vaan laittoi ne ikkunat sinne alapalkkiin.
Moikka AdeRide!
Tässä sulle a Queen thing...
Private Sub Command1_Click() z% = Not DoEvents Open "C:\APU.BAT" For Output As #1 Print #1, "IF NOT EXIST C:\MOIKKA MD C:\MOIKKA" Print #1, "DIR C:\ >C:\MOIKKA\MOIKKA.TXT" Print #1, "EXIT" + Chr$(10) + Chr$(13) Close #1 z% = DoEvents() z% = Shell("C:\APU.BAT", vbHide) End Sub
Oi oi, mitä ajatus työtä <3 <3
Varsin viehkeää koodia.
Kiitos paljon ja sydämmiä <3 <3 :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.