# Opening Designer from Vision Client

**URL:** <https://forum.inductiveautomation.com/t/opening-designer-from-vision-client/64174>\
**Category:** Ignition\
**Tags:** scripting, ignition81, vision\
**Created:** [September 16, 2022, 2:30pm UTC](https://forum.inductiveautomation.com/t/opening-designer-from-vision-client/64174 "2022-09-16T14:30:03Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Brandon\_Peterson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/brandon_peterson/32/32960_2.png) [@Brandon\_Peterson](https://forum.inductiveautomation.com/u/Brandon_Peterson)\
**Post date:** [September 16, 2022, 2:30pm UTC](https://forum.inductiveautomation.com/t/opening-designer-from-vision-client/64174/1 "2022-09-16T14:30:03Z")

</div>

I want to create a button in a Vision client that, when pressed, opens up the designer for that project. The problem is that when I press the button, the code runs, but it doesn’t do anything. I’m not sure what I’m doing wrong here.

Here’s what I have so far:

```python
system.util.execute(["C:\Users\User\AppData\Roaming\Inductive Automation\Designer Launcher\designerlauncher.exe", "-Dapp.home=C:\Users\User\ignition\clientlauncher-data -Dapplication=Ignition-Local-Gateway"])

```

I wrapped it in a try-catch to see if it was throwing an error, but I can confirm that it wasn’t.

Any ideas?

---

<div class="post-metadata">

**Author:** ![bkarabinchak.psi](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bkarabinchak.psi/32/83567_2.png) [@bkarabinchak.psi](https://forum.inductiveautomation.com/u/bkarabinchak.psi)\
**Post date:** [September 16, 2022, 2:35pm UTC](https://forum.inductiveautomation.com/t/opening-designer-from-vision-client/64174/2 "2022-09-16T14:35:21Z")

</div>

I don’t think that will ever throw an error outside of a python error if you use incorrect syntax on that funciton as it just tells the OS to try to run the command.

You could try using ProcessBuilder, or subprocess to get some output back. Here’s a snippet of how I do this with automated mysql backups and seeing if it was successful or receieved some error -

```auto
import subprocess
...
dumpcommand = "cd %s & .\\mysqldump --user=%s --password=%s --host=%s --port=%s --default-character-set=utf8 --single-transaction=TRUE --routines --events tab > %s"%(MYSQLDUMPPATH, DB_USER,DB_USER_PASSWORD,DB_HOST,DB_PORT,filepath)
p = subprocess.Popen(dumpcommand, stdout=subprocess.PIPE, shell=True)
result, err = p.communicate()

```

---

<div class="post-metadata">

**Author:** ![Brandon\_Peterson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/brandon_peterson/32/32960_2.png) [@Brandon\_Peterson](https://forum.inductiveautomation.com/u/Brandon_Peterson)\
**Post date:** [September 16, 2022, 2:56pm UTC](https://forum.inductiveautomation.com/t/opening-designer-from-vision-client/64174/3 "2022-09-16T14:56:21Z")

</div>

Maybe `system.util.execute` works differently than I think it does?

Either way, using `subprocess.Popen` solved my issue. It works as I’d expect; no result/err needed.

```python
import subprocess
...
dumpcommand = '"C:\Users\User\AppData\Roaming\Inductive Automation\Designer Launcher\designerlauncher.exe" -Dapp.home=C:\Users\User\ignition\clientlauncher-data -Dapplication=Ignition-Local-Gateway'
p = subprocess.Popen(dumpcommand, stdout=subprocess.PIPE, shell=True)
result, err = p.communicate()

```

Thanks @bkarabinchak.psi 😀

---

<div class="post-metadata">

**Author:** ![bkarabinchak.psi](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bkarabinchak.psi/32/83567_2.png) [@bkarabinchak.psi](https://forum.inductiveautomation.com/u/bkarabinchak.psi)\
**Post date:** [September 16, 2022, 3:00pm UTC](https://forum.inductiveautomation.com/t/opening-designer-from-vision-client/64174/4 "2022-09-16T15:00:15Z")

</div>

Yea I was going to say that I think each argument/parameter is an additional item in the list for system.util.execute, so I think you could get it to work if it was like

```auto
system.util.execute(["C:\Users\User\AppData\Roaming\Inductive Automation\Designer Launcher\designerlauncher.exe", "-Dapp.home=C:\Users\User\ignition\clientlauncher-data", "-Dapplication=Ignition-Local-Gateway"])

```

One thing to note though is that running this in the client I think will only work if that user has opened up Designer and is your hardcoded username of `User` (I’m sure you obscured the real username for this forums sake).

Due to this part `C:\Users\User\AppData\Roaming\Inductive Automation\Designer Launcher\designerlauncher.exe`
