AGB  ·  Datenschutz  ·  Impressum  







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

Shellextension - OnFileClick

Ein Thema von Neutral General · begonnen am 20. Mär 2008 · letzter Beitrag vom 22. Mär 2008
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Shellextension - OnFileClick

  Alt 20. Mär 2008, 19:00
Hi,

Mir ist kein besserer Name eingefallen. Aber gibt es eine Möglichkeit darauf zu reagieren das auf eine Datei im Explorer geklickt wurde?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Shellextension - OnFileClick

  Alt 21. Mär 2008, 12:25
Hallo Michael,

wäre das nichts für dich?

NM_CLICK Notification

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Shellextension - OnFileClick

  Alt 21. Mär 2008, 14:01
Da wirst du um eine shellextension nicht drum rumkommen. Guck dir mal meinen ExifReader an, da ist eine Shellextention dabei http://www.michael-puff.de/Developer/Delphi/Programme/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Shellextension - OnFileClick

  Alt 21. Mär 2008, 17:25
Hi,

Habe schon ne Shellextension geschrieben, aber ich weiß nicht welches Interface ich in diesem Fall benutzen muss. Weil ich ja kein Kontextmenu brauche.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Shellextension - OnFileClick

  Alt 21. Mär 2008, 18:02
Bist du ganz sicher, dass du weißt was eine Shell Extension ist?

Welchen Typ von Shell Extension hast du implementiert?

Keiner der mir bekannten Typen scheint mir für deine Zwecke geeignet zu sein - aber ich kann mich irren.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Shellextension - OnFileClick

  Alt 21. Mär 2008, 18:08
Hi,

Damals war es: IShellExtInit und IContextMenu:

TEncryptContextMenu = class(TComObject, IShellExtInit, IContextMenu) Bei deiner Möglichkeit müsste ich das ganze mit nem Hook lösen oder?

Mein Code ist bisher folgender:

Delphi-Quellcode:
library Hookdll;

uses
  Windows, Messages, CommCtrl, Dialogs;

var
  HookHandle: THandle;

function ClickHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
  if nCode = HC_ACTION then
  case PMsg(lParam)^.message of
    NM_CLICK:
      ShowMessage('NM_CLICK!'); // wobei es so nicht geht weil NM_CLICK < 0 und
                                // PMsg(lParam)^.message: Cardinal deswegen hatte ichs mal so:

   // case Integer(PMsg(lparam)^.Message) of
   // NM_CLICK: ...
  end
  else
  Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
end;

function InstallHook: Boolean; stdcall;
begin
  Result := false;
  if HookHandle = 0 then
  begin
    HookHandle := SetWindowsHookEx(WH_GETMESSAGE,@ClickHook,
                                   hInstance,0);
    Result := true;
  end;
end;

function UnInstallHook: Boolean;
begin
  Result := UnhookWindowsHookEx(HookHandle);
  HookHandle := 0;
end;

exports
  InstallHook,
  UnInstallHook;

begin

end.
Aber ich bekomme irgendwie gar keine Message abgefangen. Aber ClickHook wird schon aufgerufen, das habe ich beim Debuggen festgestellt.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Shellextension - OnFileClick

  Alt 21. Mär 2008, 19:59
Im von Marabu verlinkten Text heißt es, dass NM_CLICK über WM_NOTIFY empfangen wird.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Shellextension - OnFileClick

  Alt 22. Mär 2008, 12:20
Hi,

Ja das habe ich mittlerweile jetzt auch herausgefunden aber es kommt mir vor als würde absolut niemand WM_NOTIFY Nachrichten versenden (WinVista).

Delphi-Quellcode:
function ClickHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var Info: PNMHdr;
begin
  case PMsg(lParam)^.message of
    WM_NOTIFY: begin
                 Info := PNMHdr(PMsg(lParam)^.lParam);
                 if Info.code = NM_CLICK then
                   ShowMessage('NM_CLICK!');
               end;
  end;
  Result := CallNextHookEx(HookHandle, nCode, wParam, lParam);
end;


Ach ja: Ich habe das Interface ICopyHookA/W gefunden, mit dem man das Umbenennen/Kopieren/Löschen verhindern kann, was erst mal gut klingt. Dummerweise funktioniert das nur bei Druckern und Ordnern und nicht bei normalen Dateien... Also wäre auch dankbar wenn jemand auf diesem Wege noch weiterwüsste.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz