• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Notifying a message in Action center.


Commit MetaInfo

Revisiona59b49f158ac8cba6c95ddc08b19df6cf84b2b30 (tree)
Zeit2015-01-05 15:44:14
AutorJeffyTS <JeffyTS@outl...>
CommiterJeffyTS

Log Message

Coresponded to workingDir.

Ändern Zusammenfassung

Diff

--- a/CtrlVIX/CtrlVix.cs
+++ b/CtrlVIX/CtrlVix.cs
@@ -370,7 +370,7 @@ namespace CtrlVix
370370 return Constants.TOOLS_RUNNING.NOT_RUNNING;
371371 }
372372
373- public Constants.POWER_OFF_MODE CheckPowerOffMode(string vmxFilePath)
373+ public Constants.POWER_OFF_MODE CheckPowerOffMode(string vmxFilePath, string workingDir)
374374 {
375375 int vmState;
376376 string Dir;
@@ -395,7 +395,8 @@ namespace CtrlVix
395395 // エラーでファイルが残った場合などはうまく判定できない可能性あり
396396 try
397397 {
398- Dir = System.IO.Path.GetDirectoryName(vmxFilePath);
398+ // Dir = System.IO.Path.GetDirectoryName(vmxFilePath);
399+ Dir = workingDir;
399400 VMname = System.IO.Path.GetFileNameWithoutExtension(vmxFilePath);
400401 VMSSname = VMname + "-*.vmss";
401402
--- a/CtrlVIX/Properties/AssemblyInfo.cs
+++ b/CtrlVIX/Properties/AssemblyInfo.cs
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
1010 [assembly: AssemblyConfiguration("")]
1111 [assembly: AssemblyCompany("")]
1212 [assembly: AssemblyProduct("CtrlVIX")]
13-[assembly: AssemblyCopyright("Copyright © 2014")]
13+[assembly: AssemblyCopyright("Copyright © 2014-2015 T.S. All rights reserved.")]
1414 [assembly: AssemblyTrademark("")]
1515 [assembly: AssemblyCulture("")]
1616
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
3232 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
3333 // 既定値にすることができます:
3434 // [assembly: AssemblyVersion("1.0.*")]
35-[assembly: AssemblyVersion("1.0.0.0")]
36-[assembly: AssemblyFileVersion("1.0.0.0")]
35+[assembly: AssemblyVersion("1.0.2.0")]
36+[assembly: AssemblyFileVersion("1.0.2.0")]
--- a/VMwPlayerTaskTray/Form1.cs
+++ b/VMwPlayerTaskTray/Form1.cs
@@ -12,6 +12,10 @@ using CtrlVix; // Add
1212 using System.Reflection; // Add
1313 using System.Management; // Add
1414 using System.Diagnostics; // Add
15+using System.IO; // Add
16+using System.Text.RegularExpressions; // Add
17+
18+
1519
1620
1721 namespace VMwPlayerTaskTray
@@ -48,6 +52,7 @@ namespace VMwPlayerTaskTray
4852
4953 // クラス内のグローバル変数
5054 private string vmxFilePath = "";
55+ private string workingDir = "";
5156 private VMSTATE vmState = VMSTATE.UNDEFINED;
5257 private enum VMSTATE : int // ChangeMenuItem()
5358 {
@@ -93,6 +98,7 @@ namespace VMwPlayerTaskTray
9398 {
9499 vmxFilePath = Program.vmxFilePath; // Mainで設定されたvmxFilePathをコピー
95100 vmxName = System.IO.Path.GetFileNameWithoutExtension(vmxFilePath); // vmx 名を作成
101+ workingDir = GetWorkingDir(vmxFilePath); //workingDirの取得
96102
97103 if (CountProcess(PROGRAM_NAME, vmxName) > 1) // 二重起動のチェック
98104 {
@@ -286,7 +292,8 @@ namespace VMwPlayerTaskTray
286292 // Go to Suspend mode
287293 if (!Vix.VMOperation(vmxFilePath, CtrlVix.Constants.POWEROP.SUSPEND)) return false;
288294 while (((state = Vix.GetVMState(vmxFilePath)) != CtrlVix.Constants.VMSTATE.POWERED_OFF)
289- && ((pwOff = Vix.CheckPowerOffMode(vmxFilePath)) != CtrlVix.Constants.POWER_OFF_MODE.SUSPENDED))
295+ && ((pwOff = Vix.CheckPowerOffMode(vmxFilePath, workingDir))
296+ != CtrlVix.Constants.POWER_OFF_MODE.SUSPENDED))
290297 {
291298 if (state == CtrlVix.Constants.VMSTATE.ERROR) return false;
292299 if (pwOff == CtrlVix.Constants.POWER_OFF_MODE.ERROR) return false;
@@ -302,7 +309,8 @@ namespace VMwPlayerTaskTray
302309 // Go to Suspend mode
303310 if (!Vix.VMOperation(vmxFilePath, CtrlVix.Constants.POWEROP.SUSPEND)) return false;
304311 while (((state = Vix.GetVMState(vmxFilePath)) != CtrlVix.Constants.VMSTATE.POWERED_OFF)
305- && ((pwOff = Vix.CheckPowerOffMode(vmxFilePath)) != CtrlVix.Constants.POWER_OFF_MODE.SUSPENDED))
312+ && ((pwOff = Vix.CheckPowerOffMode(vmxFilePath, workingDir))
313+ != CtrlVix.Constants.POWER_OFF_MODE.SUSPENDED))
306314 {
307315 if (state == CtrlVix.Constants.VMSTATE.ERROR) return false;
308316 if (pwOff == CtrlVix.Constants.POWER_OFF_MODE.ERROR) return false;
@@ -349,7 +357,8 @@ namespace VMwPlayerTaskTray
349357 break;
350358 case VMCTRL.GO_SUSPEND:
351359 while (((state = Vix.GetVMState(vmxFilePath)) != CtrlVix.Constants.VMSTATE.POWERED_OFF)
352- && ((pwOff = Vix.CheckPowerOffMode(vmxFilePath)) != CtrlVix.Constants.POWER_OFF_MODE.SUSPENDED))
360+ && ((pwOff = Vix.CheckPowerOffMode(vmxFilePath, workingDir))
361+ != CtrlVix.Constants.POWER_OFF_MODE.SUSPENDED))
353362 {
354363 if (state == CtrlVix.Constants.VMSTATE.ERROR) return false;
355364 if (pwOff == CtrlVix.Constants.POWER_OFF_MODE.ERROR) return false;
@@ -441,7 +450,7 @@ namespace VMwPlayerTaskTray
441450 }
442451 else
443452 {
444- switch (Vix.CheckPowerOffMode(vmxFilePath))
453+ switch (Vix.CheckPowerOffMode(vmxFilePath, workingDir))
445454 {
446455 case Constants.POWER_OFF_MODE.SUSPENDED:
447456 // Suspended
@@ -580,6 +589,70 @@ namespace VMwPlayerTaskTray
580589 return count;
581590 }
582591
592+ private string GetWorkingDir(string vmxFilePath)
593+ {
594+ foreach (var section in ReadVMX(vmxFilePath)) {
595+ // section.Key は無視
596+ foreach (var pair in section.Value) {
597+ if (pair.Key == "workingDir") return (pair.Value.Substring(1, pair.Value.Length - 2));
598+ }
599+ }
600+ return System.IO.Path.GetDirectoryName(vmxFilePath);
601+ }
602+
603+ private static Dictionary<string, Dictionary<string, string>> ReadVMX(string file)
604+ {
605+ using (var reader = new StreamReader(file))
606+ {
607+ var sections = new Dictionary<string, Dictionary<string, string>>(StringComparer.Ordinal);
608+ var regexSection = new Regex(@"^\s*\[(?<section>[^\]]+)\].*$", RegexOptions.Singleline
609+ | RegexOptions.CultureInvariant);
610+ var regexNameValue = new Regex(@"^\s*(?<name>[^=]+)=(?<value>.*?)(\s+;(?<comment>.*))?$",
611+ RegexOptions.Singleline | RegexOptions.CultureInvariant);
612+ var currentSection = string.Empty;
613+
614+ // セクション名が明示されていない先頭部分のセクション名を""として扱う
615+ sections[string.Empty] = new Dictionary<string, string>();
616+
617+ for (; ; )
618+ {
619+ var line = reader.ReadLine();
620+
621+ if (line == null) break;
622+
623+ // 空行は読み飛ばす
624+ if (line.Length == 0) continue;
625+
626+ // コメント行は読み飛ばす
627+ if (line.StartsWith(";", StringComparison.Ordinal)) continue;
628+ else if (line.StartsWith("#", StringComparison.Ordinal)) continue;
629+
630+ var matchNameValue = regexNameValue.Match(line);
631+
632+ if (matchNameValue.Success)
633+ {
634+ // name=valueの行
635+ sections[currentSection][matchNameValue.Groups["name"].Value.Trim()]
636+ = matchNameValue.Groups["value"].Value.Trim();
637+ continue;
638+ }
639+
640+ var matchSection = regexSection.Match(line);
641+
642+ if (matchSection.Success)
643+ {
644+ // [section]の行
645+ currentSection = matchSection.Groups["section"].Value;
646+
647+ if (!sections.ContainsKey(currentSection)) sections[currentSection] = new Dictionary<string, string>();
648+
649+ continue;
650+ }
651+ }
652+ return sections;
653+ }
654+ }
655+
583656 private void AboutDialog()
584657 {
585658 string message;
--- a/VMwPlayerTaskTray/Properties/AssemblyInfo.cs
+++ b/VMwPlayerTaskTray/Properties/AssemblyInfo.cs
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
1010 [assembly: AssemblyConfiguration("")]
1111 [assembly: AssemblyCompany("")]
1212 [assembly: AssemblyProduct("VMwPlayerTaskTray")]
13-[assembly: AssemblyCopyright("Copyright © 2014 T.S. All rights reserved.")]
13+[assembly: AssemblyCopyright("Copyright © 2014-2015 T.S. All rights reserved.")]
1414 [assembly: AssemblyTrademark("")]
1515 [assembly: AssemblyCulture("")]
1616
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
3232 // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
3333 // 既定値にすることができます:
3434 // [assembly: AssemblyVersion("1.0.*")]
35-[assembly: AssemblyVersion("1.0.1.*")]
36-[assembly: AssemblyFileVersion("1.0.1.0")]
35+[assembly: AssemblyVersion("1.0.2.*")]
36+[assembly: AssemblyFileVersion("1.0.2.0")]
--- a/readme.txt
+++ b/readme.txt
@@ -32,8 +32,9 @@ Thanks to VMware,Inc and Microsoft Corporation.
3232 Rlease & modify
3333 --- Date --- Ver. -- Modify --
3434 2014/04/01 1.0.0 First release for VMware Player 6.0.2 and VMware VIX 1.13.2.
35- 2014/12/26 1.0.1 Changed developping environment to VMware Player 7.0.0 and VMware VIX 1.14.0
35+ 2014/12/26 1.0.1 Changed developping environment to VMware Player 7.0.0 and VMware VIX 1.14.0.
3636 2015/01/05 1.0.1 Improved await proc and added readme.txt.
37+ 2015/01/05 1.0.2 Coresponded to workingDir.
3738
3839
3940