Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: vb ja shellexecutesta

Aku2 [25.05.2003 20:23:54]

#

Pienoinen ongelma

Haen Commondialogilla muuttujaan ohjelman sijainnin kokonaisena: Esim:
c:\kansio\ohjelma.exe

Kuinka tuo ajetaan Shellexecutella?

Kokeilin mm. tällaista, jossa tuo muuttuja sisältää tuon ohjelman sijainnin, kuten yllä kirjoitin.

ShellExecute 0&, vbNullString, muuttuja, vbNullString, vbNormalFocus

Joka aiheuttaa virheen
Kokeilin myös:

ShellExecute 0&, vbNullString, vbNullString, muuttuja, vbNullString, vbNormalFocus

joka avaa kyllä oikean kansion, mutta ei itse ohjelmaa

Antti Laaksonen [25.05.2003 22:45:26]

#

Minusta tuo ensimmäinen tapa on kyllä oikein. Minkälaisen virheilmoituksen saat? Ja jos haluat vain ajaa ohjelman tavallisesti, niin eikö VB:n oma Shell riitä?

Aku2 [26.05.2003 10:43:29]

#

Virheilmoitus:
Compile error:
Argument not optional

VB:n omakin Shell kelpaisi, mutta kun en saa ajettua sitä normalfocuksella:

Shell (muuttuja,vbNormalFocus)
Tai
Shell (muuttuja, 1)

Antaa virheilmoituksen jo ennen ohjelman ajoa:
Compile error:
expected: =

Pelkällä Shell (muuttuja) kyllä toimii, mutta se vie avattavan ohjelman alimmaiseksi, kun se pitäisi saada päällimmäiseksi.

Jälkeenpäin:
Sainkin tuon toimimaan vb shellillä.
Yritin ajaa shelliä suoraan, kun piti ajaa se muuttujan kautta.

eli toimivana:
Dim ajaohjelma
Dim ohjelma
ohjelma = GetSetting("kansio", "koe", "ohjelman sijainti")
ajaohjelma = Shell(ohjelma, 1)

thefox [26.05.2003 10:49:17]

#

Shell "c:\windows\notepad.exe", vbNormalFocus

Eli tosiaan, sulut funktiokutsuihin vain ja ainoastaan jos niiden palauttama arvo halutaan ottaa talteen. Eli tuokin olisi toiminut näin:

a = Shell(muuttuja, vbNormalFocus)

Antti Laaksonen [26.05.2003 10:51:04]

#

lainaus:

Virheilmoitus:
Compile error:
Argument not optional

Mitä riviä tuo näyttää? Onko funktion määrittely ohjelman alussa varmasti oikein?

lainaus:

VB:n omakin Shell kelpaisi, mutta kun en saa ajettua sitä normalfocuksella:

Shell-funktiota voi kutsua ainakin kahdella tavalla, joista kummatkin toimivat minulla oikein, myös vbNormalFocus-parametrin kanssa.

'aliohjelmana
Shell "notepad", vbNormalFocus

'funktiona
Dim x As Double
x = Shell("notepad", vbNormalFocus)

edit: fawkz ehti ensin

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta