本文整理汇总了C#中KeePass.Ecas.EcasContext类的典型用法代码示例。如果您正苦于以下问题:C# EcasContext类的具体用法?C# EcasContext怎么用?C# EcasContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EcasContext类属于KeePass.Ecas命名空间,在下文中一共展示了EcasContext类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: IsMatchCustomTbButton
private static bool IsMatchCustomTbButton(EcasEvent e, EcasContext ctx)
{
string strIdRef = EcasUtil.GetParamString(e.Parameters, 0, true);
if(string.IsNullOrEmpty(strIdRef)) return true;
string strIdCur = EcasUtil.GetParamString(ctx.Event.Parameters, 0);
if(string.IsNullOrEmpty(strIdCur)) return false;
return strIdRef.Equals(strIdCur, StrUtil.CaseIgnoreCmp);
}
开发者ID:elitak,项目名称:keepass,代码行数:10,代码来源:EcasDefaultEventProvider.cs
示例2: Evaluate
public bool Evaluate(EcasCondition c, EcasContext ctx)
{
if(c == null) throw new ArgumentNullException("c");
foreach(EcasConditionType t in m_conditions)
{
if(t.Type.EqualsValue(c.Type))
return t.EvaluateMethod(c, ctx);
}
throw new NotSupportedException();
}
开发者ID:elitak,项目名称:keepass,代码行数:12,代码来源:EcasConditionProvider.cs
示例3: Compare
public bool Compare(EcasEvent e, EcasContext ctx)
{
if(e == null) throw new ArgumentNullException("e");
if(ctx == null) throw new ArgumentNullException("ctx");
Debug.Assert(e.Type.Equals(ctx.Event.Type));
foreach(EcasEventType t in m_events)
{
if(t.Type.Equals(e.Type))
return t.CompareMethod(e, ctx);
}
throw new NotSupportedException();
}
开发者ID:riking,项目名称:go-keepass2,代码行数:15,代码来源:EcasEventProvider.cs
示例4: Execute
public void Execute(EcasAction a, EcasContext ctx)
{
if(a == null) throw new ArgumentNullException("a");
foreach(EcasActionType t in m_actions)
{
if(t.Type.EqualsValue(a.Type))
{
t.ExecuteMethod(a, ctx);
return;
}
}
throw new NotSupportedException();
}
开发者ID:eis,项目名称:keepass-eis-flavored,代码行数:15,代码来源:EcasActionProvider.cs
示例5: IsMatchEnvironmentVar
private static bool IsMatchEnvironmentVar(EcasCondition c, EcasContext ctx)
{
string strName = EcasUtil.GetParamString(c.Parameters, 0, true);
uint uCompareType = EcasUtil.GetParamEnum(c.Parameters, 1,
EcasUtil.StdStringCompareEquals, EcasUtil.StdStringCompare);
string strValue = EcasUtil.GetParamString(c.Parameters, 2, true);
if(string.IsNullOrEmpty(strName) || (strValue == null))
return false;
try
{
string strVar = Environment.GetEnvironmentVariable(strName);
if(strVar == null) return false;
return EcasUtil.CompareStrings(strVar, strValue, uCompareType);
}
catch(Exception) { Debug.Assert(false); }
return false;
}
开发者ID:riking,项目名称:go-keepass2,代码行数:21,代码来源:EcasDefaultConditionProvider.cs
示例6: IsDatabaseModified
private static bool IsDatabaseModified(EcasCondition c, EcasContext ctx)
{
PwDatabase pd = Program.MainForm.ActiveDatabase;
if((pd == null) || !pd.IsOpen) return false;
return pd.Modified;
}
开发者ID:rdealexb,项目名称:keepass,代码行数:6,代码来源:EcasDefaultConditionProvider.cs
示例7: IsMatchFileExists
private static bool IsMatchFileExists(EcasCondition c, EcasContext ctx)
{
string strFile = EcasUtil.GetParamString(c.Parameters, 0, true);
if(string.IsNullOrEmpty(strFile)) return true;
try
{
// return File.Exists(strFile);
IOConnectionInfo ioc = IOConnectionInfo.FromPath(strFile);
return IOConnection.FileExists(ioc);
}
catch(Exception) { }
return false;
}
开发者ID:rdealexb,项目名称:keepass,代码行数:16,代码来源:EcasDefaultConditionProvider.cs
示例8: ShowEntriesByTag
private static void ShowEntriesByTag(EcasAction a, EcasContext ctx)
{
string strTag = EcasUtil.GetParamString(a.Parameters, 0, true);
Program.MainForm.ShowEntriesByTag(strTag);
}
开发者ID:rdealexb,项目名称:keepass,代码行数:5,代码来源:EcasDefaultActionProvider.cs
示例9: RemoveToolBarButton
private static void RemoveToolBarButton(EcasAction a, EcasContext ctx)
{
string strID = EcasUtil.GetParamString(a.Parameters, 0, true);
Program.MainForm.RemoveCustomToolBarButton(strID);
}
开发者ID:rdealexb,项目名称:keepass,代码行数:5,代码来源:EcasDefaultActionProvider.cs
示例10: ImportIntoCurrentDatabase
private static void ImportIntoCurrentDatabase(EcasAction a, EcasContext ctx)
{
PwDatabase pd = Program.MainForm.ActiveDatabase;
if((pd == null) || !pd.IsOpen) return;
string strPath = EcasUtil.GetParamString(a.Parameters, 0, true);
if(string.IsNullOrEmpty(strPath)) return;
IOConnectionInfo ioc = IOConnectionInfo.FromPath(strPath);
string strFormat = EcasUtil.GetParamString(a.Parameters, 1, true);
if(string.IsNullOrEmpty(strFormat)) return;
FileFormatProvider ff = Program.FileFormatPool.Find(strFormat);
if(ff == null)
throw new Exception(KPRes.Unknown + ": " + strFormat);
uint uMethod = EcasUtil.GetParamUInt(a.Parameters, 2);
Type tMM = Enum.GetUnderlyingType(typeof(PwMergeMethod));
object oMethod = Convert.ChangeType(uMethod, tMM);
PwMergeMethod mm = PwMergeMethod.None;
if(Enum.IsDefined(typeof(PwMergeMethod), oMethod))
mm = (PwMergeMethod)oMethod;
else { Debug.Assert(false); }
if(mm == PwMergeMethod.None) mm = PwMergeMethod.CreateNewUuids;
CompositeKey cmpKey = KeyFromParams(a, 3, 4, 5);
if((cmpKey == null) && ff.RequiresKey)
{
KeyPromptForm kpf = new KeyPromptForm();
kpf.InitEx(ioc, false, true);
if(UIUtil.ShowDialogNotValue(kpf, DialogResult.OK)) return;
cmpKey = kpf.CompositeKey;
UIUtil.DestroyForm(kpf);
}
bool? b = true;
try { b = ImportUtil.Import(pd, ff, ioc, mm, cmpKey); }
finally
{
if(b.GetValueOrDefault(false))
Program.MainForm.UpdateUI(false, null, true, null, true, null, true);
}
}
开发者ID:rdealexb,项目名称:keepass,代码行数:44,代码来源:EcasDefaultActionProvider.cs
示例11: ExecuteSleep
private static void ExecuteSleep(EcasAction a, EcasContext ctx)
{
uint uTimeSpan = EcasUtil.GetParamUInt(a.Parameters, 0);
if((uTimeSpan != 0) && (uTimeSpan <= (uint)int.MaxValue))
Thread.Sleep((int)uTimeSpan);
}
开发者ID:rdealexb,项目名称:keepass,代码行数:7,代码来源:EcasDefaultActionProvider.cs
示例12: IsMatchTextEvent
private static bool IsMatchTextEvent(EcasEvent e, EcasContext ctx)
{
uint uCompareType = EcasUtil.GetParamEnum(e.Parameters, 0,
EcasUtil.StdStringCompareEquals, EcasUtil.StdStringCompare);
string strFilter = EcasUtil.GetParamString(e.Parameters, 1, true);
if(string.IsNullOrEmpty(strFilter)) return true;
string strCurFile = EcasUtil.GetParamString(ctx.Event.Parameters, 0);
if(string.IsNullOrEmpty(strCurFile)) return false;
return EcasUtil.CompareStrings(strCurFile, strFilter, uCompareType);
}
开发者ID:eis,项目名称:keepass-eis-flavored,代码行数:13,代码来源:EcasDefaultEventProvider.cs
示例13: EcasConditionEvaluateTrue
private static bool EcasConditionEvaluateTrue(EcasCondition c, EcasContext ctx)
{
return true;
}
开发者ID:riking,项目名称:go-keepass2,代码行数:4,代码来源:EcasConditionType.cs
示例14: EcasEventCompareTrue
private static bool EcasEventCompareTrue(EcasEvent e, EcasContext ctx)
{
return true;
}
开发者ID:rdealexb,项目名称:keepass,代码行数:4,代码来源:EcasEventType.cs
示例15: IsMatchFile
private static bool IsMatchFile(EcasCondition c, EcasContext ctx)
{
string strFile = EcasUtil.GetParamString(c.Parameters, 0, true);
if(string.IsNullOrEmpty(strFile)) return true;
try { return File.Exists(strFile); }
catch(Exception) { }
return false;
}
开发者ID:amiryal,项目名称:keepass2,代码行数:10,代码来源:EcasDefaultConditionProvider.cs
示例16: ExecuteSelectedAutoType
private static void ExecuteSelectedAutoType(EcasAction a, EcasContext ctx)
{
try
{
// Do not Spr-compile the sequence here; it'll be compiled by
// the auto-type engine (and this expects an auto-type sequence
// as input, not a data string; compiling it here would e.g.
// result in broken '%' characters in passwords)
string strSeq = EcasUtil.GetParamString(a.Parameters, 0, false);
if(string.IsNullOrEmpty(strSeq)) strSeq = null;
PwEntry pe = Program.MainForm.GetSelectedEntry(true);
if(pe == null) return;
PwDatabase pd = Program.MainForm.DocumentManager.SafeFindContainerOf(pe);
IntPtr hFg = NativeMethods.GetForegroundWindowHandle();
if(AutoType.IsOwnWindow(hFg))
AutoType.PerformIntoPreviousWindow(Program.MainForm, pe,
pd, strSeq);
else AutoType.PerformIntoCurrentWindow(pe, pd, strSeq);
}
catch(Exception) { Debug.Assert(false); }
}
开发者ID:rdealexb,项目名称:keepass,代码行数:23,代码来源:EcasDefaultActionProvider.cs
示例17: ExecuteShellCmd
private static void ExecuteShellCmd(EcasAction a, EcasContext ctx)
{
string strCmd = EcasUtil.GetParamString(a.Parameters, 0, true, true);
string strArgs = EcasUtil.GetParamString(a.Parameters, 1, true, true);
bool bWait = StrUtil.StringToBool(EcasUtil.GetParamString(a.Parameters,
2, string.Empty));
if(string.IsNullOrEmpty(strCmd)) return;
try
{
Process p;
if(string.IsNullOrEmpty(strArgs)) p = Process.Start(strCmd);
else p = Process.Start(strCmd, strArgs);
if((p != null) && bWait)
{
Program.MainForm.UIBlockInteraction(true);
MessageService.ExternalIncrementMessageCount();
try { p.WaitForExit(); }
catch(Exception) { Debug.Assert(false); }
MessageService.ExternalDecrementMessageCount();
Program.MainForm.UIBlockInteraction(false);
}
}
catch(Exception e)
{
throw new Exception(strCmd + MessageService.NewParagraph + e.Message);
}
}
开发者ID:rdealexb,项目名称:keepass,代码行数:32,代码来源:EcasDefaultActionProvider.cs
示例18: ActivateDatabaseTab
private static void ActivateDatabaseTab(EcasAction a, EcasContext ctx)
{
string strName = EcasUtil.GetParamString(a.Parameters, 0, true);
bool bEmptyName = string.IsNullOrEmpty(strName);
uint uSel = EcasUtil.GetParamUInt(a.Parameters, 1, 0);
PwDatabase pdSel = ctx.Properties.Get<PwDatabase>(EcasProperty.Database);
DocumentManagerEx dm = Program.MainForm.DocumentManager;
foreach(PwDocument doc in dm.Documents)
{
if(doc.Database == null) { Debug.Assert(false); continue; }
if(uSel == 0) // Select from all
{
if(bEmptyName) continue; // Name required in this case
}
else if(uSel == 1) // Triggering only
{
if(!object.ReferenceEquals(doc.Database, pdSel)) continue;
}
else { Debug.Assert(false); continue; }
IOConnectionInfo ioc = null;
if((doc.LockedIoc != null) && !string.IsNullOrEmpty(doc.LockedIoc.Path))
ioc = doc.LockedIoc;
else if((doc.Database.IOConnectionInfo != null) &&
!string.IsNullOrEmpty(doc.Database.IOConnectionInfo.Path))
ioc = doc.Database.IOConnectionInfo;
if(bEmptyName || ((ioc != null) && (ioc.Path.IndexOf(strName,
StrUtil.CaseIgnoreCmp) >= 0)))
{
Program.MainForm.MakeDocumentActive(doc);
break;
}
}
}
开发者ID:dbremner,项目名称:keepass2,代码行数:38,代码来源:EcasDefaultActionProvider.cs
示例19: ExportDatabaseFile
private static void ExportDatabaseFile(EcasAction a, EcasContext ctx)
{
string strPath = EcasUtil.GetParamString(a.Parameters, 0, true);
// if(string.IsNullOrEmpty(strPath)) return; // Allow no-file exports
string strFormat = EcasUtil.GetParamString(a.Parameters, 1, true);
if(string.IsNullOrEmpty(strFormat)) return;
PwDatabase pd = Program.MainForm.ActiveDatabase;
if((pd == null) || !pd.IsOpen) return;
PwExportInfo pei = new PwExportInfo(pd.RootGroup, pd, true);
IOConnectionInfo ioc = (!string.IsNullOrEmpty(strPath) ?
IOConnectionInfo.FromPath(strPath) : null);
ExportUtil.Export(pei, strFormat, ioc);
}
开发者ID:rdealexb,项目名称:keepass,代码行数:15,代码来源:EcasDefaultActionProvider.cs
示例20: ShowMessageBox
private static void ShowMessageBox(EcasAction a, EcasContext ctx)
{
VistaTaskDialog vtd = new VistaTaskDialog();
string strMain = EcasUtil.GetParamString(a.Parameters, 0, true);
if(!string.IsNullOrEmpty(strMain)) vtd.MainInstruction = strMain;
string strText = EcasUtil.GetParamString(a.Parameters, 1, true);
if(!string.IsNullOrEmpty(strText)) vtd.Content = strText;
uint uIcon = EcasUtil.GetParamUInt(a.Parameters, 2, 0);
if(uIcon == (uint)MessageBoxIcon.Information)
vtd.SetIcon(VtdIcon.Information);
else if(uIcon == (uint)MessageBoxIcon.Question)
vtd.SetIcon(VtdCustomIcon.Question);
else if(uIcon == (uint)MessageBoxIcon.Warning)
vtd.SetIcon(VtdIcon.Warning);
else if(uIcon == (uint)MessageBoxIcon.Error)
vtd.SetIcon(VtdIcon.Error);
else { Debug.Assert(uIcon == (uint)MessageBoxIcon.None); }
vtd.CommandLinks = false;
uint uBtns = EcasUtil.GetParamUInt(a.Parameters, 3, 0);
bool bCanCancel = false;
if(uBtns == (uint)MessageBoxButtons.OKCancel)
{
vtd.AddButton((int)DialogResult.OK, KPRes.Ok, null);
vtd.AddButton((int)DialogResult.Cancel, KPRes.Cancel, null);
bCanCancel = true;
}
else if(uBtns == (uint)MessageBoxButtons.YesNo)
{
vtd.AddButton((int)DialogResult.OK, KPRes.YesCmd, null);
vtd.AddButton((int)DialogResult.Cancel, KPRes.NoCmd, null);
bCanCancel = true;
}
else vtd.AddButton((int)DialogResult.OK, KPRes.Ok, null);
uint uDef = EcasUtil.GetParamUInt(a.Parameters, 4, 0);
ReadOnlyCollection<VtdButton> lButtons = vtd.Buttons;
if(uDef < (uint)lButtons.Count)
vtd.DefaultButtonID = lButtons[(int)uDef].ID;
vtd.WindowTitle = PwDefs.ShortProductName;
string strTrg = ctx.Trigger.Name;
if(!string.IsNullOrEmpty(strTrg))
{
vtd.FooterText = KPRes.Trigger + @": '" + strTrg + @"'.";
vtd.SetFooterIcon(VtdIcon.Information);
}
int dr;
if(vtd.ShowDialog()) dr = vtd.Result;
else
{
string str = (strMain ?? string.Empty);
if(!string.IsNullOrEmpty(strText))
{
if(str.Length > 0) str += MessageService.NewParagraph;
str += strText;
}
MessageBoxDefaultButton mbdb = MessageBoxDefaultButton.Button1;
if(uDef == 1) mbdb = MessageBoxDefaultButton.Button2;
else if(uDef == 2) mbdb = MessageBoxDefaultButton.Button3;
MessageService.ExternalIncrementMessageCount();
try
{
dr = (int)MessageService.SafeShowMessageBox(str,
PwDefs.ShortProductName, (MessageBoxButtons)uBtns,
(MessageBoxIcon)uIcon, mbdb);
}
finally { MessageService.ExternalDecrementMessageCount(); }
}
uint uActCondID = EcasUtil.GetParamUInt(a.Parameters, 5, 0);
bool bDrY = ((dr == (int)DialogResult.OK) ||
(dr == (int)DialogResult.Yes));
bool bDrN = ((dr == (int)DialogResult.Cancel) ||
(dr == (int)DialogResult.No));
bool bPerformAction = (((uActCondID == IdMbcY) && bDrY) ||
((uActCondID == IdMbcN) && bDrN));
if(!bPerformAction) return;
uint uActID = EcasUtil.GetParamUInt(a.Parameters, 6, 0);
string strActionParam = EcasUtil.GetParamString(a.Parameters, 7, true);
if(uActID == IdMbaNone) { }
else if(uActID == IdMbaAbort)
{
if(bCanCancel) ctx.Cancel = true;
}
else if(uActID == IdMbaCmd)
{
if(!string.IsNullOrEmpty(strActionParam))
//.........这里部分代码省略.........
开发者ID:dbremner,项目名称:keepass2,代码行数:101,代码来源:EcasDefaultActionProvider.cs
注:本文中的KeePass.Ecas.EcasContext类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论