我有一个弹出菜单..每次用户登录系统时,都会出现弹出菜单,但对于不希望弹出窗口显示在屏幕上的用户,我使用复选框以便每次登录时都不会显示弹出窗口.我想如何在注册表中保存选中复选框的用户的设置,以便不显示弹出菜单
我的软件使用的是AES Rijndael.
我使用SHA-256哈希从具有任意长度的字符串生成密钥,然后将其作为私钥和公钥传递,因为在这种情况下我不需要区分这两者.
如何保护我的密钥不被可执行文件侵入?
我知道不要使用文字,而是在运行时使用一些预定的步骤生成密钥,但是所有相同的密钥在发送到AES初始化函数之前仍然在内存中,因此可以非常容易地检索.
AES显然非常安全,但是如果有人打破了可执行文件,那对我有什么好处?
解决这个问题时有一些常见的做法吗?
只是一个问题,我有:
myclass = class
public
function Funct1: String;
function Funct2: Integer;
end;
Run Code Online (Sandbox Code Playgroud)
这让我感到错误,所以我尝试过:
myclass = class
public
function Funct1: String; overload;
function Funct2: Integer; overload;
end;
Run Code Online (Sandbox Code Playgroud)
但同样的问题; delphi告诉我有相同的参数.现在,我问,是否可以在模式下执行具有相同名称但具有不同输出的更多功能,如示例中所示?非常感谢您的帮助.
UPDATE
对不起,我做错了,不是funct1和funct2,但两个都是funct1,所以:
myclass = class
public
function Funct1: String; overload;
function Funct1: Integer; overload;
end;
Run Code Online (Sandbox Code Playgroud)
这样做,编译器会给我这个错误:
[DCC错误] Project1.dpr(15):E2252具有相同参数的方法'funct1'已存在[DCC错误] Project1.dpr(22):E2037'funct1'的声明与之前的声明不同
当然,我知道因为给出错误并需要更改两个函数之一的名称(因为我之前感到困惑)但我想知道是否有一些技巧或其他解决方案,因为这样的情况没有错误.再次感谢.
我正试图在Genie中列出一个列表并且它似乎不起作用.编译代码:
[indent=2]
init
var l = new list of string
Run Code Online (Sandbox Code Playgroud)
产生这些错误:
someone@someone-UBook:~/Documents$ valac helloworld.gs helloworld.gs:2.10-2.24: error: The name `Gee' does not exist in the context of `main'
var l = new list of int
^^^^^^^^^^^^^^^
helloworld.gs:2.8-2.24: error: var declaration not allowed with non-typed initializer
var l = new list of int
^^^^^^^^^^^^^^^^^
Compilation failed: 2 error(s), 0 warning(s)
Run Code Online (Sandbox Code Playgroud)
我已经安装了libgee2(通过sudo apt-get install libgee2),没有任何改变.有任何想法吗?
我在不同的应用程序中有两个窗口。第一个应用程序有一个按钮,可使用其窗口句柄和进程 ID 启动第二个应用程序:
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec(PChar('Second.exe ' + IntToStr(Handle) + ' ' + IntToStr(GetCurrentProcessId)), SW_SHOWDEFAULT);
end;
Run Code Online (Sandbox Code Playgroud)
第二个应用程序还有一个按钮,应将前台窗口设置为第一个应用程序:
function AllowSetForegroundWindow(AHandle: HWND): Boolean; external 'user32.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
if not AllowSetForegroundWindow(StrToInt(ParamStr(2))) then begin
ShowMessage('ERROR');
Exit;
end;
SendMessage(StrToInt(ParamStr(1)), WM_APP + 1, 0, 0);
end;
Run Code Online (Sandbox Code Playgroud)
第一个应用程序有一个消息处理程序,其处理方式WM_APP + 1如下:
procedure TForm1.WWAppPlusOne(var Msg: TMsg);
begin
Application.BringToFront;
end;
Run Code Online (Sandbox Code Playgroud)
当我启动第一个应用程序并按下按钮时,第二个应用程序启动。当我按下第二个应用程序上的按钮时,它会显示ERROR.
我在这里做错了什么?
我们有一个库函数,如下所示:
class function TFileUtils.ReadTextStream(const AStream: TStream): string;
var
StringStream: TStringStream;
begin
StringStream := TStringStream.Create('', TEncoding.Unicode);
try
// This is WRONG since CopyFrom might rewind the stream (see Remys comment)
StringStream.CopyFrom(AStream, AStream.Size - AStream.Position);
Result := StringStream.DataString;
finally
StringStream.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
当我检查函数返回的字符串时,第一个Char是(小端)BOM.
为什么TStringStream不会忽略BOM?
有一个更好的方法吗?我不需要向后兼容旧的Delphi版本,XE2的工作解决方案也没问题.
[dcc32 Error] psystr.pas(249): E2251 Ambiguous overloaded call to 'Pos'
System.pas(28005): Related method: function Pos(const string; const string; Integer): Integer;
System.pas(28165): Related method: function Pos(const WideString; const WideString; Integer): Integer;
Run Code Online (Sandbox Code Playgroud)
我在以下功能上遇到上述错误.我怎样才能解决这个问题?代码是由另一个程序员给我的,但我是一个完全的业余,所以简单的答案将不胜感激!
function ExplodeStr(const AString: WideString; AWordIndex: Integer; AChar: Char): WideString;
var
Index, Counter: Integer;
begin
Result := Trim(AString);
Counter := 0;
Index := Pos(AChar + AChar, Result);
while Index > 0 do
begin
Delete(Result, Index, 1);
Index := Pos(AChar + AChar, Result);
end;
Index := Pos(AChar, Result);
while ((Counter < AWordIndex) …Run Code Online (Sandbox Code Playgroud) 我有这个RTF代码:
{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang7\f0\fs22 Dies ist eine Textdatei mit einigen Umlauten und Sonderzeichen:\par
\'c4\'d6\'dc\'df\'ea\'80\'fb\'fa\'f9\par
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码(来自这个问题):
class function TRTF.Decode(const AInput: string): string;
var
RichEdit: TRichEdit;
Stream: TStringStream;
begin
RichEdit := CreateRichEdit;
try
Stream := TStringStream.Create(AInput);
try
RichEdit.Lines.LoadFromStream(Stream);
Result := RichEdit.Lines.Text;
finally
Stream.Free;
end;
finally
RichEdit.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
我正在将其解码为纯文本,结果是:
Dies ist eine Textdatei mit
einigen Umlauten und
Sonderzeichen:
ÄÖÜßê€ûúù
Run Code Online (Sandbox Code Playgroud)
我想知道为什么TRichEdit在第一段插入额外的换行符?
有什么办法可以控制这种行为吗?
EoF首次进入while循环时,该程序会引发I/O 104错误.
该程序的目的是查找是否已经使用了用户名.现有用户名存储在文本文件中.
procedure TForm1.btnRegisterClick(Sender: TObject);
begin
sCUser := edtUserName.Text;
AssignFile(tNames, 'Names.txt');
begin
try
Reset(tNames);
except
ShowMessage('File not found');
Exit;
end;
end;
rewrite(tNames);
while not EoF(tNames) do // I get a I/O 104 Error here `
begin
Readln(tNames, sLine);
iPosComme := Pos(',', sLine);
sUser := Copy(sLine, 1, iPosComme - 1);
Delete(sLine, 1, iPosComme - 1);
if sCUser = sUser then begin
ShowMessage('Username taken');
end
else
begin
rewrite(tNames);
Writeln(tNames, sCUser + ',' + '0');
CloseFile(tNames);
end;
end;
end;
Run Code Online (Sandbox Code Playgroud) 我正在努力提高我的编码技能,但我似乎无法弄清楚这一点.如何以速记书写以下内容?
/* fade */
$('.toggle-ui').on({
'click': function (e) {
e.preventDefault();
var divToFade = ['#logo', '#hide-interface'];
$.each(divToFade, function(intValue, currentElement) {
// check alpha state and switch
var currOp = $(currentElement).css('opacity');
if (currOp == 1) $(currentElement).css('opacity', 0.5);
if (currOp == 0.5) $(currentElement).css('opacity', 1);
});
}
Run Code Online (Sandbox Code Playgroud) delphi ×7
delphi-xe2 ×3
aes ×1
delphi-7 ×1
delphi-xe3 ×1
genie ×1
javascript ×1
libgee ×1
overloading ×1
pascal ×1
registry ×1
richtext ×1
rijndael ×1
rtf ×1
security ×1
shorthand ×1
unicode ×1
vala ×1
winapi ×1
window ×1