Jacek Caban : schtasks: Added support for /f argument in create command.
Alexandre Julliard
julliard at winehq.org
Mon Jan 22 15:34:55 CST 2018
Module: wine
Branch: master
Commit: a6a5bca50942fe3b8a432ea99673bad00ef5013f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=a6a5bca50942fe3b8a432ea99673bad00ef5013f
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Jan 22 17:35:55 2018 +0100
schtasks: Added support for /f argument in create command.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
programs/schtasks/schtasks.c | 7 ++++++-
programs/schtasks/tests/schtasks.c | 3 +++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/programs/schtasks/schtasks.c b/programs/schtasks/schtasks.c
index 5967e4a..c6b8586 100644
--- a/programs/schtasks/schtasks.c
+++ b/programs/schtasks/schtasks.c
@@ -183,6 +183,7 @@ static int create_command(int argc, WCHAR *argv[])
{
const WCHAR *task_name = NULL, *xml_file = NULL;
ITaskFolder *root = NULL;
+ LONG flags = TASK_CREATE;
IRegisteredTask *task;
VARIANT empty;
BSTR str, xml;
@@ -217,6 +218,10 @@ static int create_command(int argc, WCHAR *argv[])
task_name = argv[1];
argc -= 2;
argv += 2;
+ }else if(!strcmpiW(argv[0], f_optW)) {
+ flags = TASK_CREATE_OR_UPDATE;
+ argc--;
+ argv++;
}else {
FIXME("Unsupported argument %s\n", debugstr_w(argv[0]));
return 1;
@@ -245,7 +250,7 @@ static int create_command(int argc, WCHAR *argv[])
V_VT(&empty) = VT_EMPTY;
str = SysAllocString(task_name);
- hres = ITaskFolder_RegisterTask(root, str, xml, TASK_CREATE, empty, empty,
+ hres = ITaskFolder_RegisterTask(root, str, xml, flags, empty, empty,
TASK_LOGON_NONE, empty, &task);
SysFreeString(str);
SysFreeString(xml);
diff --git a/programs/schtasks/tests/schtasks.c b/programs/schtasks/tests/schtasks.c
index 9f1b920..8f7176a 100644
--- a/programs/schtasks/tests/schtasks.c
+++ b/programs/schtasks/tests/schtasks.c
@@ -211,6 +211,9 @@ START_TEST(schtasks)
r = run_command("schtasks /change /tn wine\\winetest /enable");
ok(r == 0, "r = %u\n", r);
+ r = run_command("schtasks /create /xml test.xml /f /tn wine\\winetest");
+ ok(r == 0, "r = %u\n", r); /* task already exists, but /f argument provided */
+
r = run_command("schtasks /create /xml test.xml /tn wine\\winetest");
ok(r == 1, "r = %u\n", r); /* task already exists */
More information about the wine-cvs
mailing list