[ROSVBOXMGMT]
authorPierre Schweitzer <pierre@reactos.org>
Mon, 11 Jan 2016 22:41:32 +0000 (22:41 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Mon, 11 Jan 2016 22:41:32 +0000 (22:41 +0000)
Let's add hacks to glue hacks together:
In case rosvboxmgmt is started with its current directory not being the directory where it is along with hackssign_client.exe, then autoassign fails finding the hackssign client executable and thus, fails assigning drive letter.
This is what happens when you starts rosvboxmgmt on boot with shell.
So, when using autoassign, first look for the location of rosvboxmgmt and set our current directory there.

This fixes rosvboxmgmt autoassign not working on boot.

CORE-10032
ROSAPPS-303

svn path=/trunk/; revision=70578

rosapps/applications/cmdutils/rosvboxmgmt/rosvboxmgmt.c

index 0377eb1..8e59205 100644 (file)
@@ -297,6 +297,14 @@ int autoStart(BOOL assign)
 
     if (assign)
     {
+        wchar_t path[MAX_PATH];
+        if (GetModuleFileName(NULL, path, ARRAYSIZE(path)) != 0)
+        {
+            *(wcsrchr(path, '\\')) = 0;
+            wprintf(L"Switching to %s\n", path);
+            SetCurrentDirectory(path);
+        }
+
         if (OpenFile("hackssign_client.exe", &ofs, OF_EXIST) != 1)
         {
             wprintf(L"hackssign_client.exe not found, falling back to links\n");