How to launch a program from perl? - windows

How do i launch firefox from perl? i just need to launch the browser so WWW::Mechanize::Firefox can manipulate it. Searching around stackoverflow ive seen a few solutionsl like system('start cmd.exe /k $cmd) where $cmd is arguments to throw as input once cmd is started.
However, these have not helped me to solve my problem at all.
solutions ive tried
system("start cmd.exe /k start firefox");
system("firefox");
system("cmd","start","firefox");
system("cmd start firefox");
Basically a lot of the alternatives ive found, but i could not launch Firefox browser at all.

You're on the right track. Your second line is almost correct. If firefox is not in your PATH environment variable, you need to supply the complete path.
Click on the Firefox icon on your desktop, open the properties and check where the firefox executable is located. Then use that with your system call.
For me, it looks like this (the ' are for Perl's string, the " are for the Windows shell, because the path has spaces in it):
system('"C:\Programme\Mozilla Firefox\firefox.exe"');
You can test it by opening a new command line (win + r, cmd), cding to the directory where your Perl program is run from, and just entering the command:
C:\Dokumente und Einstellungen\simbabque>"C:\Programme\Mozilla Firefox\firefox.exe"
It will not print anything, but just open a new Firefox window after a couple of seconds. So you'd probably need to hold your program execution in Perl while the browser is starting up.

WWW::Mechanize::Firefox will launch firefox for you but you can use
system 1, qq{$ENV{PROGRAMFILES}\\Mozilla Firefox\\firefox.exe}

Related

Why does this command work in Terminal but not in CMD?

Dopusrt.exe /acmd Go "c:/"
The above command works, last active Window goes to c:/ but the below command does not work.
Dopusrt.exe /info documents\filelist1.txt,listsel,0
The weird thing is it works just fine in Windows Terminal. Does CMD reserve commas for something? I really need to use CMD in this case, Since Auotohotkey seems to only speak to CMD.
Thank you.
CMD and Windows Terminal are not the same type of application. CMD is a shell, and WT is a terminal. See this post for more details.
You can run any shell you'd like in WT - CMD, PowerShell, whatever.
CMD.exe does not by itself reserve commas (to the best of my knowledge). And running cmd.exe in WT vs running it in conhost (the default console on Windows) shouldn't make a difference either.

code.exe ignoring command-line arguments

I hope this is an easy fix, but I couldn't find any documentation or other posts on the matter. I'm trying to write a script (cmd or pwsh) that will launch vscode with my preferences on a portable install.
When trying to execute vscode's code.exe with any arguments, it ignores them and just launches the program as if I had typed nothing else. I'm following this doc in my testing. Using alias switches doesn't work, either. The only argument that does seem to process is if I include a path.
code.exe --help
code.exe --version
Additionally, after launching code.exe, the console kind of hangs, then vscode status messages are sent to that console (even without use of the --wait switch). If I close the console, vscode shuts down. Is there a way to work around this?
When using Code via shell (cmd or pwsh), it does not use Code.exe, but the script/batch files located under Bin folder (code.cmd). These are the applications which really recognizes the command line switches.
This is not entirely clear in the Command Line Documentation page, but looking closer at the Note you will see that it does say the Program Files\Microsoft VS Code\bin folder.

Windows Run dialog and cmd

I have a simple problem in which I can launch a program with the Run dialog n windows, but not from the CMD (or PowerShell).
The command is steam://run/<app-id>
I would like to know how to run the same command from the console. I tried steam steam:// Steam.exe but none worked (the last one only opened steam)
In the command window, use the start command
start steam://run/<app-id>
Not really the right forum for this Q, but a quick google leads to Valve's pages that show the command-line options for steam.exe. I'd recommend a google yourself, but for completeness it looks like steam.exe accepts a -applaunch parameter.

How to launch a new cmd window with the correct path from Cygwin?

When I start cmd.exe from start menu, I get the registered (in registry) PATH variable, in a new window.
I want to have exactly the same effect from my cygwin+mintty, and try the followings:
Firstly I try:
bash$ cmd
This gives me a cmd shell, right inside mintty. But I want it to be in a fresh new window. emm... Perhaps I can try:
bash$ cmd /c start cmd
It nicely gives me a cmd shell in a new window. Good. However, the PATH inside that command shell is not the same as a fresh new one.
C:\>path
PATH=C:\cygwin64\usr\local\bin;C:\cygwin64\bin;C:\ProgramData\Oracle\Java\javapa
th;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\W
indowsPowerShell\v1.0;C:\opencv\myrelease\bin;C:\Qt\5.3\mingw482_32\bin;C:\Progr
am Files (x86)\Skype\Phone;C:\Program Files (x86)\Windows Kits\8.1\Windows Perfo
rmance Toolkit;C:\Program Files\Microsoft SQL Server\110\Tools\Binn;C:\cygwin64\
lib\lapack;D:\home\robin_hsu\bin
C:\>
You can see those paths with cygwin64 are not wanted. So, what can I do to get a new fresh cmd window, with correct PATH?
Note: I believe the problem is due to PATH is inheritable, from bash to cmd.
Perhaps someone can give me some hint to get the registered PATH of windows system under cygwin's bash. If that is possible, I can first change the PATH to the desired one, and then call cmd
So, this is basically a duplicate question to Start new cmd.exe and NOT inherit environment?. However, that question doesn't ask to open a new window, and at least for me the answers there didn't give me a correct path. The following command gives both (for me, on XP).
cygstart "$WINDIR\explorer.exe" "$WINDIR\system32\cmd.exe"
The only issue is that it also brings up dialog boxes 'File Download - Security Warning' AND 'Windows Explorer - Security Warning'. This link shows how you can avoid this in general, but I'm not sure if it's possible to remove the warnings for just one specific file. There are also a couple of answers here and here on superuser.com about disabling the warnings.
Hope this helps.

Open chrome with cygwin

I am using a cygwin shell in windows 10. I am trying to figure out how to open chrome from the command line. I have tried typing chrome, google-chrome, chromium-browser, start chrome, open chrome, and many variations. I have even tried using my python shell, and I have also tried going to the folder where chrome.exe is located and opening it from there. The main reason I want to figure it out is because I plan to write HTML documents with python and then open them in chrome. Any ideas?
Did you try ./chrome.exe while being in the directory where the file is located? The path ./ is probably needed before the file name since the executable is not in a standard system path. You can of course also specify the full path to the file as well.
Use
cygstart "C:\path\to\chrome.exe"
or to open a specific URL,
cygstart "http://my/url.htm"

Resources