char AssocProg[FMAX_PATH+1];\r
char ComLine[FMAX_PATH*2+3+1];\r
char CurDir[FMAX_PATH+1];\r
+ // 任意のコードが実行されるバグ修正\r
+ char SysDir[FMAX_PATH+1];\r
\r
/* FindExecutable()は関連付けられたプログラムのパス名にスペースが */\r
/* 含まれている時、間違ったパス名を返す事がある。 */\r
memset(&Startup, NUL, sizeof(STARTUPINFO));\r
Startup.cb = sizeof(STARTUPINFO);\r
Startup.wShowWindow = SW_SHOW;\r
- if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ // 任意のコードが実行されるバグ修正\r
+// if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+// {\r
+// SetTaskMsg(MSGJPN182, GetLastError());\r
+// SetTaskMsg(">>%s", ComLine);\r
+// }\r
+ if(GetCurrentDirectory(FMAX_PATH, CurDir) > 0)\r
{\r
- SetTaskMsg(MSGJPN182, GetLastError());\r
- SetTaskMsg(">>%s", ComLine);\r
+ if(GetSystemDirectory(SysDir, FMAX_PATH) > 0)\r
+ {\r
+ if(SetCurrentDirectory(SysDir))\r
+ {\r
+ if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ {\r
+ SetTaskMsg(MSGJPN182, GetLastError());\r
+ SetTaskMsg(">>%s", ComLine);\r
+ }\r
+ SetCurrentDirectory(CurDir);\r
+ }\r
+ }\r
}\r
}\r
return;\r
char AssocProg[FMAX_PATH+1];\r
char ComLine[FMAX_PATH*2+3+1];\r
char CurDir[FMAX_PATH+1];\r
+ // 任意のコードが実行されるバグ修正\r
+ char SysDir[FMAX_PATH+1];\r
\r
/* FindExecutable()は関連付けられたプログラムのパス名にスペースが */\r
/* 含まれている時、間違ったパス名を返す事がある。 */\r
memset(&Startup, NUL, sizeof(STARTUPINFO));\r
Startup.cb = sizeof(STARTUPINFO);\r
Startup.wShowWindow = SW_SHOW;\r
- if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ // 任意のコードが実行されるバグ修正\r
+// if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+// {\r
+// SetTaskMsg(MSGJPN182, GetLastError());\r
+// SetTaskMsg(">>%s", ComLine);\r
+// }\r
+ if(GetCurrentDirectory(FMAX_PATH, CurDir) > 0)\r
{\r
- SetTaskMsg(MSGJPN182, GetLastError());\r
- SetTaskMsg(">>%s", ComLine);\r
+ if(GetSystemDirectory(SysDir, FMAX_PATH) > 0)\r
+ {\r
+ if(SetCurrentDirectory(SysDir))\r
+ {\r
+ if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ {\r
+ SetTaskMsg(MSGJPN182, GetLastError());\r
+ SetTaskMsg(">>%s", ComLine);\r
+ }\r
+ SetCurrentDirectory(CurDir);\r
+ }\r
+ }\r
}\r
\r
return;\r