Hey leute.
Habe folgenden Code aus dem Internet, nur verstehe ich nicht, wieso er nicht funktioniert (den code kann ich teilweise nachverfolgen)...
QUELLCODE vom Programm:
Delphi-Quellcode:
var
mHandle: THandle;
hWindow : DWORD;
dwAtom : DWORD;
begin
dwMessage := RegisterWindowMessage('{93C5B2B7-CE8D-439A-857B-4CC76F35C091}'); // HIER z.B. wieso diese Zeichenfolge?
mHandle:=CreateMutex(nil, True, 'WargasmSecure_Project');
if GetLastError <> ERROR_ALREADY_EXISTS then
begin
try
Application.Initialize;
Application.Title := 'Secure Password Storage';
Application.CreateForm(TForm_Main, Form_Main);
Application.Run;
finally
if mHandle <> 0 then CloseHandle(mHandle);
end;
end
else (*========== ELSE ==========*)
begin
hWindow := FindWindow(nil, 'WargasmSecure_Project');
if hWindow <> 0 then
begin
if (paramcount > 0) and FileExists(paramstr(1)) then
begin
//hier kommt er noch an...
dwAtom := GlobalAddAtom(PChar(paramstr(1))); //okay, variablen "global" anlegen
SendMessage(hWindow,dwMessage,0,dwAtom); // was genau wird hier übergeben ??
end;
end;
end;
end.
und folgendes im Programm (Function -> procedure WndProc(var msg : TMessage); override;
var ->dwMessage: DWORD
Delphi-Quellcode:
procedure TForm_Main.WndProc(var msg : TMessage); //WNDPROC ? window procedure ?
var
pFileName : PChar;
dwLen : DWORD;
begin
if msg.Msg = dwMessage then
begin
//---> hier landet er erst gar nicht
dwLen := MAX_PATH+1;
pFileName := StrAlloc(dwLen);
try
GlobalGetAtomName(msg.lParam,pFileName,dwLen);
if saveFirst() then
begin
if FileExists( pFileName ) then
begin
ME_Main.Lines.LoadFromFile(pFileName);
ME_Main.Enabled := true;
ToolBar_Main.Items.Items[0].Items[4].Enabled := true;
ToolBar_Main.Items.Items[0].Items[5].Enabled := true;
end;
end;
GlobalDeleteAtom(msg.lParam);
finally
StrDispose(pFileName);
end;
end
else inherited WndProc(msg);
end;
Dankbar für jede Hilfe...