Spuštění exe.souboru

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Martass
Level 1
Level 1
Příspěvky: 52
Registrován: červenec 12
Pohlaví: Nespecifikováno
Stav:
Offline

Spuštění exe.souboru

Příspěvekod Martass » 02 led 2013 09:41

Ahoj!
Potřeboval bych prosím poradit kde je problém.
Ve VBA(excel)

Kód: Vybrat vše

 
   Dim Program As String
   Dim TaskID As Long
    Program = "c:\pokus.exe"
    TaskID = Shell(Program, vbNormalFocus)

kod mi má spustit vytvořenou jednoduchou aplikaci,která při spouštění načítá i ini soubor.
Pokud exe soubor spustím kliknutím třeba v manageru tak ten program se normálně spustí,ale pokud
ho chci spustit z VBA,tak se ten exe soubor začne spouštet,ale ke konci to hlásí chybu programu,
protože to takovýmto způsobem nechce načíst ten ini soubor.Nevíte někdo jak to vyřešit v tom VBA,
existuje nějaký jiný způsob jak ten exe soubor spustit.
Děkuji

Reklama
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Spuštění exe.souboru

Příspěvekod Azuzula » 02 led 2013 10:55

V nápovědě VBA je přímo napsáno, že pomocí Shell se programy spouští asynchonně a pokud chápu ten zbytek, tak se tam píše že to může způsobovat problémy, ale už tam není možné řešení...
Osobně to taky používám, ale mám i alternativu ;)
Pozor, mezery a znaky s diakritikou v cestě a názvu souboru můžou dělat problémy!

Kód: Vybrat vše

Dim ws
Dim program as Long
Set ws = CreateObject("WScript.Shell")
program = ws.Run("c:\program.exe", 5)

PS: Parametr spouštěného programu:
0 skryté
4 neaktivní
5 aktivní
6 minimalizované
ostatní kódy fungují asi podobně jako tyto 4 vypsané a nebo v nich nevidím rozdíl
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

jar_st
Level 2.5
Level 2.5
Příspěvky: 354
Registrován: září 09
Pohlaví: Muž
Stav:
Offline

Re: Spuštění exe.souboru

Příspěvekod jar_st » 02 led 2013 11:09

Pro spouštění programů lze použít standardní funkce WinAPI -ShellExecute,ShellExecuteEx
Pro čekání na jeho spuštění,ukončení lze použít WaitForSingleObject

Martass
Level 1
Level 1
Příspěvky: 52
Registrován: červenec 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Spuštění exe.souboru

Příspěvekod Martass » 02 led 2013 11:26

Děkuji za rychlé odpovědi nicméně pokud použiji uvedený kod,
"tak to hlásí chybu Method Run of object IWsh Shell3 failed"
v příloze posílám jednoduchý soubor xls,který by měl spusitit ten pokus4a.exe
ten exe i ini soubor v tomto případě musí být přímo na c:
Takže kdybyste to mohli prosím zkouknout a vyzkoušet
Děkuji
Přílohy
pack.zip
(1.21 MiB) Staženo 48 x

jar_st
Level 2.5
Level 2.5
Příspěvky: 354
Registrován: září 09
Pohlaví: Muž
Stav:
Offline

Re: Spuštění exe.souboru

Příspěvekod jar_st » 02 led 2013 11:52

Spouštění programu jako takový funguje.Když jsem dal místo toho tvýho programu Notepad.exe ,tak ho to bez problému spustí.Hledal bych problém v tom souboru pokus4a.exe (je psanej v Delphi)

--- Doplnění předchozího příspěvku (02 Led 2013 11:59) ---

Zkus tohle:

Kód: Vybrat vše

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 CommandButton1_Click()
 Dim Program As String
 Dim TaskID As Long
 
 
TaskID = ShellExecute(0, "open", "c:\pokus4a.exe", "", "c:\", 1)
   
End Sub

Takhle mi to funguje zdá se bez problému.

Martass
Level 1
Level 1
Příspěvky: 52
Registrován: červenec 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Spuštění exe.souboru

Příspěvekod Martass » 02 led 2013 12:00

Ne,ne ten program je dělaný v Game Makeru a ano vše ostatní funguje ,jenom v této podobě ne,
dokonce i když tam v GM zkompiluji a vytvořím jiný .exe, ale který se neodkazuje na žádný ini soubor
tak to také jede.Tak to mám radost..... :thumbdown:

--- Doplnění předchozího příspěvku (02 Led 2013 12:08) ---

Zlatejjjjj,šikulka ,super funguje,spadla mi docela velká skála ze srdce.
Mhohokeré DÍKY

Martass
Level 1
Level 1
Příspěvky: 52
Registrován: červenec 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Spuštění exe.souboru

Příspěvekod Martass » 27 bře 2013 12:38

Ahoj!
Tak jsem zpět s podobným problémem,ovšem tentokráte uvedený program potřebuji
spustit ve VB2010(vědom si toho,že toto vlákno je pro jiné).Tak chci požádat zda nevíte
jak vyřešit stejný problém,akorát pro jinou aplikaci - VB2010.......
Pokud použiji stejný kód jaký je uveden výše tak to hlásí tuto chybu

Volání funkce PInvoke Mefi!WindowsApplication1.promena::ShellExecute způsobilo nevyváženost zásobníku. Důvodem je pravděpodobně skutečnost, že spravovaný podpis PInvoke neodpovídá nespravovanému cílovému podpisu. Ověřte, zda konvence volání a parametry podpisu PInvoke odpovídají cílovému nespravovanému podpisu.

děkuji


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Spuštění PC Příloha(y)
    od Elbeckho » 21 úno 2025 14:27 » v Problémy s hardwarem
    11
    4528
    od Kminek Zobrazit poslední příspěvek
    23 úno 2025 02:14
  • Nedetekován signál (černá obrazovka) při spuštění PC
    od zerbngr » 01 črc 2024 17:37 » v Problémy s hardwarem
    13
    4659
    od petr22 Zobrazit poslední příspěvek
    03 črc 2024 10:36
  • Blokování stahovaných souborů
    od Riviera kid » 07 čer 2025 16:47 » v Windows 11, 10, 8...
    10
    3638
    od Riviera kid Zobrazit poslední příspěvek
    16 čer 2025 06:56
  • Velikost souboru a složek na disku
    od L.L » 05 úno 2025 11:50 » v Vše ostatní (sw)
    5
    3296
    od L.L Zobrazit poslední příspěvek
    05 úno 2025 17:42
  • IDM hláška o nemožném stažení souboru Příloha(y)
    od bluenite » 04 črc 2024 11:08 » v Vše ostatní (inet)
    2
    4363
    od bluenite Zobrazit poslední příspěvek
    06 črc 2024 19:40

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti