public static AppVar Initialize(WindowsAppFriend app) { if (app == null) { throw new ArgumentNullException("app"); } string key = typeof(WindowControl).Module.Name + "[Initialize]"; object ohterSystemAnalyzersObj; if (!app.TryGetAppControlInfo(key, out ohterSystemAnalyzersObj)) { //自身のアセンブリをロードさせる。 WindowsAppExpander.LoadAssembly(app, typeof(TargetAppInitializer).Assembly); //WpfAnalyzerをコンパイルしてインストール AppVar ohterSystemAnalyzers = null; try { app["System.Windows.Application.Current"]()["Windows"]()["Count"]()["ToString"](); //ここでWPFのライブラリがロードできるかチェックする。 if ((bool)app[typeof(TargetAppInitializer), "InstallWpfInApp"]().Core) { AppVar wpfAnalyzer = app.Dim(new NewInfo("Codeer.Friendly.Windows.Wpf.Grasp.WpfAnalyzer")); ohterSystemAnalyzers = app.Dim(new IOtherSystemWindowAnalyzer[1]); ohterSystemAnalyzers["[]"](0, wpfAnalyzer); } } catch { } if (ohterSystemAnalyzers == null) { ohterSystemAnalyzers = app.Dim(new IOtherSystemWindowAnalyzer[0]); } app.AddAppControlInfo(key, ohterSystemAnalyzers); ohterSystemAnalyzersObj = ohterSystemAnalyzers; } return ohterSystemAnalyzersObj as AppVar; }
public void TestAppControlInfo() { app.AddAppControlInfo("xxx", "yyy"); object obj; Assert.IsFalse(app.TryGetAppControlInfo("zzz", out obj)); Assert.IsTrue(app.TryGetAppControlInfo("xxx", out obj)); Assert.IsTrue((string)obj == "yyy"); }
internal static void Init(WindowsAppFriend app) { string key = typeof(Initializer).FullName; object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { WindowsAppExpander.LoadAssembly(app, typeof(Initializer).Assembly); app.AddAppControlInfo(key, true); } }
internal static void Initialize(WindowsAppFriend app) { Type myType = typeof(Initializer); string key = myType.Module.Name + "[Initialize]"; object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { WindowsAppExpander.LoadAssembly(app, myType.Assembly); app.AddAppControlInfo(key, true); } }
internal static WindowsAppFriend Init(WindowsAppFriend app) { var key = typeof(TargetAppInitializer).Module.Name + "[Initialize]"; if (!app.TryGetAppControlInfo(key, out var dummy)) { app.LoadAssembly(typeof(TargetAppInitializer).Assembly); app.AddAppControlInfo(key, null); } return(app); }
/// <summary> /// Install RM.Friendly.WPFStandardControls.3.dll to target process. /// </summary> /// <param name="app">Application manipulation object.</param> #else /// <summary> /// 対象プロセスにRM.Friendly.WPFStandardControls.3.dllをインジェクションします。 /// </summary> /// <param name="app">アプリケーション操作クラス。</param> #endif public static void Injection(WindowsAppFriend app) { string key = typeof(WPFStandardControls_3).FullName; object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { WindowsAppExpander.LoadAssembly(app, typeof(WPFStandardControls_3).Assembly); ResourcesLocal3.Initialize(app); app.AddAppControlInfo(key, true); } }
/// <summary> /// Install RM.Friendly.WPFStandardControls.3.5.dll to target process. /// </summary> /// <param name="app">Application manipulation object.</param> #else /// <summary> /// 対象プロセスにRM.Friendly.WPFStandardControls.3.5.dllをインジェクションします。 /// </summary> /// <param name="app">アプリケーション操作クラス。</param> #endif public static void Injection(WindowsAppFriend app) { WPFStandardControls_3.Injection(app); string key = typeof(WPFStandardControls_3_5).FullName; object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { WindowsAppExpander.LoadAssembly(app, typeof(WPFStandardControls_3_5).Assembly); app.AddAppControlInfo(key, true); } }
/// <summary> /// Install RM.Friendly.WPFStandardControls.4.dll to target process. /// </summary> /// <param name="app">Application manipulation object.</param> #else /// <summary> /// 対象プロセスにRM.Friendly.WPFStandardControls.4.dllをインジェクションします。 /// </summary> /// <param name="app">アプリケーション操作クラス。</param> #endif public static void Injection(WindowsAppFriend app) { WPFStandardControls_3_5.Injection(app); string key = typeof(WPFStandardControls_4).ToString(); object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { WindowsAppExpander.LoadAssembly(app, typeof(WPFStandardControls_4).Assembly); ResourcesLocal4.Initialize(app); app.AddAppControlInfo(key, true); } }
/// <summary> /// Install RM.Friendly.WPFStandardControls.3.dll to target process. /// </summary> /// <param name="app">Application manipulation object.</param> #else /// <summary> /// 対象プロセスにRM.Friendly.WPFStandardControls.3.dllをインジェクションします。 /// </summary> /// <param name="app">アプリケーション操作クラス。</param> #endif public static void Injection(WindowsAppFriend app) { string key = typeof(WPFStandardControls_3).FullName; object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { WindowsAppExpander.LoadAssembly(app, typeof(ControlDriverAttribute).Assembly); WindowsAppExpander.LoadAssembly(app, typeof(WindowControl).Assembly); WindowsAppExpander.LoadAssembly(app, typeof(WPFStandardControls_3).Assembly); ResourcesLocal3.Initialize(app); app.AddAppControlInfo(key, true); } }
/// <summary> /// 初期化。対象のアプリケーションにアセンブリを読み込ませます。 /// </summary> /// <param name="app">アプリケーション操作クラス。</param> internal static void Initialize(WindowsAppFriend app) { Type myType = typeof(Initializer); //初期化は一度だけ。 //何度呼び出しても問題はないが、パフォーマンスに効いてくるのでWindowsAppFriendのキャッシュを利用します。 string key = myType.Module.Name + "[Initialize]"; object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { //身初期化の場合はアセンブリを読み込ませます。 WindowsAppExpander.LoadAssembly(app, myType.Assembly); //文字列のローカライズと初期化 ResourcesLocal.Initialize(app); app.AddAppControlInfo(key, true); } }
/// <summary> /// 初期化です。対象のアプリケーションにアセンブリを読み込ませます。 /// </summary> /// <param name="app">アプリケーション操作クラス。</param> internal static void Initialize(WindowsAppFriend app) { Type myType = typeof(Initializer); //初期化は一度だけです。 //何度呼び出しても問題はないが、パフォーマンスに効いてくるのでWindowsAppFriendのキャッシュを利用します。 string key = myType.Module.Name + "[Initialize]"; object isInit; if (!app.TryGetAppControlInfo(key, out isInit)) { //身初期化の場合はアセンブリを読み込ませます。 WindowsAppExpander.LoadAssembly(app, typeof(ControlDriverAttribute).Assembly); WindowsAppExpander.LoadAssembly(app, myType.Assembly); ResourcesLocal.Initialize(app); app.AddAppControlInfo(key, true); } }