我想在我的应用程序中存储密码以加密安装日期并将其存储在某个文件夹中,也可能在注册表中存储30天版本的应用程序.我一直在谷歌上搜索,大多数人建议加密安装日期.我知道我做的任何事情仍然可以解决,但我希望它能够在没有回家的情况下或者像这样的东西那样难以破解.例如,我可以使用const字符串存储密码,该密码使用存储在另一个const字符串中的密码加密,依此类推.这会让它变得有点复杂.但由于字符串混淆似乎是混淆器的常见任务,我想知道是否有更好的方法可以做到这一点,以防任何人知道混淆器通常如何在代码中混淆字符串,所以我可以重复这个过程.
(我不会购买混淆器.我使用的是dotfuscator的免费版本,它不会混淆字符串,这很好,但我不会购买付费版本只是为了混淆单个字符串(如果付费的话)版本混淆我不在乎的字符串.)
(我仍然想要做的试用30天.我已经读了很多关于喜欢做一个自由轻版本之类的东西,其他的选项.30天的版本是在我的情况最好的选择.)
这是一个ClickOnce应用程序.根据文档," 如果您的应用程序最初在首次执行时提供了命令行选项,则Restart将使用相同的选项再次启动应用程序. " 但我不知道这是否应该与ClickOnce应用程序一起工作.如果是这样,我做错了什么?
这是我的代码:
public Form1()
{
InitializeComponent();
textBox1.Text = string.Join(Environment.NewLine, GetCommandLineFile());
}
private static string[] GetCommandLineFile()
{
if (AppDomain.CurrentDomain != null &&
AppDomain.CurrentDomain.SetupInformation != null &&
AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null &&
AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null &&
AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Any())
{
return AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;
}
else return new string[] { };
}
private void button1_Click(object sender, EventArgs e)
{
Application.Restart();
}
Run Code Online (Sandbox Code Playgroud)
我将我的应用程序与.abc扩展名相关联,当我双击我的.abc文件时,应用程序将以文件名作为唯一参数启动,但是当我重新启动时(按下我的button1),GetCommandLineFile()将返回一个空数组.
我有一个属性的控件,public MyClass MyProperty{...}其值在屏幕上显示为图形.我希望MyClass通过使用Binding类可以将此属性绑定到程序中的任何其他属性(MyProperty将是此构造函数中的propertyName参数,另一个将是参数). BindingMyClassdataMember
MyClassINotifyPropertyChanged这方面的实施一切都很好.但是如果我没有实现get访问器MyProperty并尝试将其绑定到它上面,我会得到一个"无法绑定到目标控件上的属性'MyProperty'.参数名称:PropertyName"错误.
这是否意味着我必须实现一个get访问,即使我知道我永远不会需要阅读它的价值,我想一个单向(源到目标)结合,即使我刚刚返回null的get访问?
我猜这个Binding类使用它来比较旧值或者做一些其他内部的东西.我不确定,如果返回是一个好主意null,或者最好始终保留随set访问者分配的最后一个对象的副本并将其返回到get访问者中.也许我真的甚至不需要写一个get访问器而我正在做其他错误的事情.只是当我注释掉get访问者并且在我把它放回去时停止获取它时,我才会收到错误.
编辑:如果有任何混淆:当我说MyProperty屏幕上的值显示为图形时,我并不是说它有一个其他代码读取并显示在屏幕上的值.没有人从中读取任何价值MyProperty.MyProperty的set访问是在屏幕上绘制的东西的一个,这就是周期的结束.
我有一个WebBwoser内部Form,我想捕获Ctrl + O组合键,用作菜单项的快捷方式.我的问题是,如果我单击WebBrowser并按Ctrl + O,将弹出一个Internet Explorer对话框,而不是执行我的菜单项.我把我Form的KeyPreview财产设置为true.另外,我为事件添加了一个事件处理程序KeyDown,但是在单击后会停止调用WebBrowser.我怎样才能解决这个问题?
我的意思是:要知道权力,我需要知道乘法,并且要知道乘法,我需要知道加法.所以要知道AI需要知道B,或者A取决于B.我只能想到几条规则:如果A依赖于B,B不能依赖A.如果A依赖于B,而B依赖于C, C不能依赖A.
这种数据结构有名称吗?我不认为是一个分层树.而且,我是否缺少任何其他规则?如果我想以这样的方式实现人类知识的地图,如果我问我的数据库我需要知道什么来学习量子物理,它给了我一个量子物理所依赖的有序主题列表.当然,这个列表可能有一些并行运行的子列表,在这个意义上,A可能依赖于B和C,而B不依赖于C或C,取决于B.在这种情况下,B将与C并行,因此图形化可以显示在A下方,但两者都在同一高度.
我很确定还有很多其他情况使用相同类型的结构.
编辑怎么样偏序集?对不起,不要试图挑剔,但听起来像是形式化相同的事情没有任何不必要的图形参考.
据我所知,没有人实现了一种算法,该算法采用一组字符串和子字符串,并返回一个或多个与字符串内给定子字符串匹配的正则表达式。因此,举例来说,如果我给我的算法提供这两个样本:
string1 = "fwef 1234 asdfd"
substring1 = "1234"
string2 = "asdf456fsdf"
substring2 = "456"
Run Code Online (Sandbox Code Playgroud)
该算法会给我正则表达式“[0-9]*”。我知道它可以给出多个正则表达式,甚至没有可能的正则表达式返回,你可能会找到 1000 个理由来解释为什么这种算法几乎不可能完美实现。但最接近的是什么?
我也不太关心正则表达式本身。基本上我想要的是一种算法,它采用上面的样本,然后在其中找到一个模式,可以用来轻松找到我想要在字符串中找到的文本的“种类”,而无需手动编写任何正则表达式或代码。
我有一个带有两个按钮的表单.
png通过在ImageVS的属性编辑器中设置属性(使用Import...按钮),我为其中一个分配了一个图像(16 x 16,32位深度).
我也有一个ImageList(16 x 16 ImageSize和Depth32Bit ColorDepth),我也从属性编辑器中分配了与第一个按钮相同的图像 - > Images然后Add.然后我将这个图像分配给我的第二个按钮:
button2.Image = imageList.Images[0];
Run Code Online (Sandbox Code Playgroud)
这就是图像的外观(实际尺寸的2倍):

是否有可能让我的第二个按钮看起来像我的第一个按钮ImageList?我使用的原因ImageList是因为在检查性能时,根据VS的性能向导,从资源加载图像的代码行是一个热点.
我的应用程序将有一个控件列表,每个控件都有一堆带图像的按钮,所以我希望它们尽可能快地加载.所以我所拥有的是一个静态ImageList,每个控件都可以从中获取图像.
我如何以编程方式进行测试,以查看特定的网络管道服务是否正在运行并正在侦听,所以没有出现“没有端点侦听...”异常?
因此,例如,如果我有此代码:
Uri baseAddress = new Uri("http://localhost/something");
var _ServiceHost = new ServiceHost(typeof(Automation), new Uri[] { baseAddress });
NetNamedPipeBinding nnpb = new NetNamedPipeBinding();
_ServiceHost.AddServiceEndpoint(typeof(IAutomation), nnpb, "ImListening");
_ServiceHost.Open();
Run Code Online (Sandbox Code Playgroud)
我想从另一个应用程序与之通信,http://localhost/something/ImListening但是在确定正在监听之前,我没有得到异常,还是该异常是测试此异常的唯一方法?
Haskell的状态monad State s a迫使我s在整个do块中保持相同的类型。但是由于状态monad实际上只是一个函数,如果将其定义为State i o a = State (i -> (o, a))?,该怎么办。该return和bind功能看起来完全一样,在标准状态下的单子,但同类型改变:
return :: a -> State st st a
bind :: (State i o a) -> (a -> (State o o' b)) -> (State i o' b)
Run Code Online (Sandbox Code Playgroud)
我认为Monad使用此定义无法在Haskell中实现,因为它期望State i obind中只有一个类型(只能a更改)。但这不是关于Haskell的问题,而是关于从技术上讲这是否是单子的问题。或者,如果不是,那将是单子集的某种超集(这样,所有单子集律仍然适用,但具有某些额外功能)?
我发现这对我正在使用的另一种基于lambda演算的语言很有用,因此我将Haskell作为参考。我只是不希望这以后在我希望单子法适用的地方打破其他内容。
我需要跟踪ListBox上的所选项目,以根据当前选择的值更新/禁用其他控件.
这是重现问题的代码:
public partial class Form1 : Form
{
private readonly BindingList<string> List = new BindingList<string>();
public Form1()
{
InitializeComponent();
listBox1.DataSource = List;
listBox1.SelectedValueChanged += (s, e) => System.Diagnostics.Debug.WriteLine("VALUE");
listBox1.SelectedIndexChanged += (s, e) => System.Diagnostics.Debug.WriteLine("INDEX");
addButton.Click += (s, e) => List.Add("Item " + (List.Count + 1));
removeButton.Click += (s, e) => List.RemoveAt(List.Count - 1);
logSelectionButton.Click += (s, e) =>
{
System.Diagnostics.Debug.WriteLine("Selected Index: " + listBox1.SelectedIndex);
System.Diagnostics.Debug.WriteLine("Selected Value: " + listBox1.SelectedValue);
};
}
}
Run Code Online (Sandbox Code Playgroud)
我的窗体有一个列表框listBox1和三个按钮:addButton,removeButton和 …
c# ×7
.net ×5
winforms ×4
.net-4.5 ×1
algorithm ×1
clickonce ×1
command-line ×1
data-binding ×1
listbox ×1
monads ×1
named-pipes ×1
regex ×1
state-monad ×1
wcf ×1