AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Instanzen + Parameterübergabe

Ein Thema von gregorkleiber · begonnen am 23. Apr 2007 · letzter Beitrag vom 29. Apr 2007
 
gregorkleiber
(Gast)

n/a Beiträge
 
#1

Mehrere Instanzen + Parameterübergabe

  Alt 23. Apr 2007, 18:00
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...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz