[Interest] QProcess to start a process at a higher priority

NoMercy nomercy at gmail.com
Tue Mar 10 20:32:36 CET 2015


Hello again,
BTW using this method you can put args in quotes too like QString( "cscript
C:\\progra~1\\yourpath\\your_vbs.vbs \"%1\" \"%2\" \"%3\" \"%4\"" ).arg(
arg_var_0).arg(arg_var_1).arg(arg_var_2).arg(arg_var_3);

Happy coding,
Emre

On Tue, Mar 10, 2015 at 9:27 PM, NoMercy <nomercy at gmail.com> wrote:

> Hello,
> I use it like this;
>
>> QProcess *procPort1 = new QProcess(this);
>>
>> QString cmdPort1 = QString( "cscript C:\\progra~1\\yourpath\\your_vbs.vbs  %1  %2 %3 %4" ).arg(arg_var_0).arg(arg_var_1).arg(arg_var_2).arg(arg_var_3);
>>
>>  procPort1->start(cmdPort1);
>
>
> hope it helps :)
>
> Happy coding,
> Emre
>
> On Tue, Mar 10, 2015 at 6:59 PM, Jason Kretzer <Jason at gocodigo.com> wrote:
>
>> One last thing.
>>
>> I am trying to start the VBS with:
>>
>> p->startDetached("go.vbs", arguments);
>>
>> However, this returns false and does not start the vbs.  I see that you
>> use cscript to start yours, but you do not pass any arguments.  How would
>> that be accomplished?  Basically, in the line above, the arguments is a
>> QStringList that I can pass to go.vbs.  How would I invoke cscript and pass
>> arguments to the vbs?
>>
>> -Jason
>>
>> //------------------------------//
>>    Jason R. Kretzer
>>    Lead Application Developer
>>    Jason at gocodigo.com
>> //-----------------------------//
>>
>>
>> From: "Jason R. Kretzer" <jason at gocodigo.com>
>> Date: Tuesday, March 10, 2015 at 12:02 PM
>> To: "Jason R. Kretzer" <jason at gocodigo.com>, NoMercy <nomercy at gmail.com>,
>> "interest at qt-project.org" <interest at qt-project.org>
>>
>> Subject: Re: [Interest] QProcess to start a process at a higher priority
>>
>> Answered my own question, it appears if I just wrap the arguments in
>> chr(34)’s it will retain the integrity of the argument.
>>
>> Thanks Emre.
>>
>> -Jason
>>
>> //------------------------------//
>>    Jason R. Kretzer
>>    Lead Application Developer
>>    Jason at gocodigo.com
>> //-----------------------------//
>>
>>
>> From: "Jason R. Kretzer" <jason at gocodigo.com>
>> To: NoMercy <nomercy at gmail.com>, "interest at qt-project.org" <
>> interest at qt-project.org>
>> Subject: Re: [Interest] QProcess to start a process at a higher priority
>>
>> Emre, thanks so much.
>>
>> I do indeed have a static number of arguments.  Unfortunately, the reason
>> they are quoted was because the arguments have spaces in them and
>> Wscript.Arguments wants to ignore the quotes :)
>>
>> -Jason
>>
>> //------------------------------//
>>    Jason R. Kretzer
>>    Lead Application Developer
>>    Jason at gocodigo.com
>> //-----------------------------//
>>
>>
>> From: NoMercy <nomercy at gmail.com>
>> Date: Tuesday, March 10, 2015 at 11:15 AM
>> To: "Jason R. Kretzer" <jason at gocodigo.com>, "interest at qt-project.org" <
>> interest at qt-project.org>
>> Subject: Re: [Interest] QProcess to start a process at a higher priority
>>
>> Hello again,
>> for that I have something like this (if you have a static number of
>> arguments);
>>
>> Set WshShell = CreateObject("WScript.Shell")
>>>
>>> WshShell.currentdirectory = "C:\Program Files\your_app_dir"
>>>
>>> 'wscript.echo WshShell.currentdirectory
>>>
>>> WshShell.Run chr(34) & "C:\Program Files\ your_app_dir\your_bat.bat" &
>>>> chr(34) & " " & Wscript.Arguments(0) & " " & Wscript.Arguments(1) , 0
>>>
>>> Set WshShell = Nothing
>>>
>>>
>> Happy Coding
>> Emre
>>
>> On Tue, Mar 10, 2015 at 5:09 PM, Jason Kretzer <Jason at gocodigo.com>
>> wrote:
>>
>>> Thanks!
>>>
>>> Honestly, I do not have much experience with Vbscript.  In your example
>>> below, how would I pass arguments to the your_bat.bat?  I have 8 quoted
>>> arguments that I need to pass the bat file.
>>>
>>> I have tried this
>>>
>>> Dim arg0
>>> arg0 = WScript.Arguments.Item(0)
>>> WScript.Echo arg0
>>> WshShell.Run chr(34) & "C:\Program Files\yourapp\your_bat.bat" & arg0 &
>>> chr(34) , 0
>>>
>>> But that is not quite right.  It echos the arg0 fine but I get a “The
>>> system cannot find the file specified” when I run that.
>>>
>>> Thoughts?
>>>
>>> -Jason
>>>
>>> //------------------------------//
>>>    Jason R. Kretzer
>>>    Lead Application Developer
>>>    Jason at gocodigo.com
>>> //-----------------------------//
>>>
>>>
>>> From: NoMercy <nomercy at gmail.com>
>>> Date: Monday, March 9, 2015 at 5:27 AM
>>> To: "Jason R. Kretzer" <jason at gocodigo.com>
>>> Subject: Re: [Interest] QProcess to start a process at a higher priority
>>>
>>> Our app uses an ugly method for exactly this reason and I intend to
>>> research and find a better solution on this subject when I have time but
>>> for the moment we use "cscript.exe /path/to/your/script.vbs"
>>> in vbs:
>>>
>>> Set WshShell = CreateObject("WScript.Shell")
>>>>
>>>> WshShell.currentdirectory = "C:\Program Files\ yourapp"
>>>>
>>>> 'wscript.echo WshShell.currentdirectory
>>>>
>>>> WshShell.Run chr(34) & "C:\Program Files\yourapp\your_bat.bat" &
>>>>> chr(34) , 0
>>>>
>>>> Set WshShell = Nothing
>>>>
>>>>
>>> And if I'm remembering correctly the zero ("0") at the end of line that
>>> starts with "WshShell.Run" makes it windowless.
>>>
>>> Happy coding
>>> Emre
>>>
>>> On Mon, Mar 9, 2015 at 1:53 AM, Jason Kretzer <Jason at gocodigo.com>
>>> wrote:
>>>
>>>> Hello all,
>>>>
>>>> I am tinkering a bit with QProcess on Windows7.  What I would like to
>>>> be able to do is to start a process with a “high” priority.  My application
>>>> spawns multiple processes and I am tinkering with them in order to help
>>>> ensure they get their processor time.
>>>>
>>>> On the command line, I would do this.
>>>>
>>>> start /high myspawn.exe arg1 arg2 arg3
>>>>
>>>> Unfortunately one of the requirements is that a DOS window not open to
>>>> run it.
>>>>
>>>> If I start the process like this:
>>>>
>>>> QString program = “myspawn.exe";
>>>> QStringList arguments;
>>>>
>>>> arguments << “arg1” << “arg2" << “arg3";
>>>>
>>>> QProcess *p = new QProcess(this);
>>>> QTimer::singleShot(30000, this, SLOT(deleteLater()));
>>>> qDebug() << "starting mysawn process -- " << p->startDetached(program,
>>>> arguments);
>>>>
>>>> It starts just fine, no DOS window, but at Normal priority.
>>>>
>>>> I have tried multiple ways using the “start /high…” command inside of
>>>> the various ways to execute a command with QProcess, but they always flash
>>>> a DOS window.
>>>>
>>>> I even create a .bat file with the command in it and passed arguments
>>>> in with the above code.  While it worked, it flashed the DOS window.
>>>>
>>>> Am I missing something here?
>>>>
>>>> -Jason
>>>>
>>>> //------------------------------//
>>>>    Jason R. Kretzer
>>>>    Lead Application Developer
>>>>    Jason at gocodigo.com
>>>> //-----------------------------//
>>>>
>>>>
>>>> _______________________________________________
>>>> Interest mailing list
>>>> Interest at qt-project.org
>>>> http://lists.qt-project.org/mailman/listinfo/interest
>>>>
>>>>
>>> ------------------------------
>>>
>>> No virus found in this message.
>>> Checked by AVG - www.avg.com
>>> Version: 2015.0.5645 / Virus Database: 4299/9221 - Release Date: 03/03/15
>>>
>>
>> ------------------------------
>>
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 2015.0.5645 / Virus Database: 4299/9221 - Release Date: 03/03/15
>> ------------------------------
>>
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 2015.0.5645 / Virus Database: 4299/9221 - Release Date: 03/03/15
>> ------------------------------
>>
>> No virus found in this message.
>> Checked by AVG - www.avg.com
>> Version: 2015.0.5645 / Virus Database: 4299/9221 - Release Date: 03/03/15
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150310/9e4e6d94/attachment.html>


More information about the Interest mailing list