AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi "Datenträgerdialog" & Bilder von Datenträger übertragen
Thema durchsuchen
Ansicht
Themen-Optionen

"Datenträgerdialog" & Bilder von Datenträger übertragen

Ein Thema von EConvertError · begonnen am 13. Apr 2007 · letzter Beitrag vom 4. Mai 2007
 
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: "Datenträgerdialog" & Bilder von Datenträg

  Alt 17. Apr 2007, 22:55
Zitat von EConvertError:
Hallo!

Ich möchte mein Programm gerne in dem im Anhang zu findenen Dialog eintragen. Dieser Dialog erscheint ja immer, wenn man einen Datenträger, wie z.B. USB-Stick od. Kamera (für mich wichtig anschließt).

Natürlich möchte ich mich nicht nur eintragen, sondern mein Programm soll beim Anwählen auch gestartet werden.
Moin,

soweit habe ich es zumindest bei mir geschafft, dass bei Bildern mein Programm angezeigt wird und auch gestartet werden kann.
Delphi-Quellcode:
uses
  Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
   Reg : TRegistry;
   ProgPfad: AnsiString;
begin
  ProgPfad:= 'C:\Project1.exe';
  Reg:= TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\ShowPicturesOnArrival\', true) then
    begin
      Reg.WriteString('MBMyBild','');
      Reg.CloseKey;
    end;

    if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\MBMyBild\', true) then
    begin
    Reg.WriteString('Action','Mein Bild öffnen');
    Reg.WriteString('DefaultIcon',ProgPfad+',0');
    Reg.WriteString('InvokeProgID','My.Bilder');
    Reg.WriteString('InvokeVerb','ShowMyBild');
    Reg.WriteString('Provider','Bild Test');
    Reg.CloseKey;
    end;

    Reg.RootKey := HKEY_CLASSES_ROOT;
    if Reg.OpenKey('\CLSID\{51BD566E-A02D-4387-9A82-D929EA8C20B1}\LocalServer32\', true) then
    begin
      Reg.WriteString('', ProgPfad);
      Reg.CloseKey;
    end;

    if Reg.OpenKey('\CLSID\{51BD566E-A02D-4387-9A82-D929EA8C20B1}\ProgID\', true) then
    begin
      Reg.WriteString('','My.Bilder');
      Reg.CloseKey;
    end;

    if Reg.OpenKey('\My.Bilder\', true) then
    begin
      Reg.WriteString('','My.Bilder');
      Reg.CloseKey;
    end;

    if Reg.OpenKey('\My.Bilder\CLSID\', true) then
    begin
      Reg.WriteString('','{51BD566E-A02D-4387-9A82-D929EA8C20B1}');
      Reg.CloseKey;
    end;

    if Reg.OpenKey('\My.Bilder\Shell\ShowMyBild\DropTarget', true) then
    begin
      Reg.WriteString('CLSID','{51BD566E-A02D-4387-9A82-D929EA8C20B1}');
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
   Reg : TRegistry;
begin
  Reg:= TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;

    if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\ShowPicturesOnArrival\', false) then
    begin
      Reg.DeleteValue('MBMyBild');
      Reg.CloseKey;
    end;

    if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\', false) then
    begin
      if reg.KeyExists('MBMyBild') then
        Reg.DeleteKey('MBMyBild');
       Reg.CloseKey;
    end;

    Reg.RootKey := HKEY_CLASSES_ROOT;
    if Reg.OpenKey('\CLSID\', false) then
    begin
      if reg.KeyExists('{51BD566E-A02D-4387-9A82-D929EA8C20B1}') then
        Reg.DeleteKey('{51BD566E-A02D-4387-9A82-D929EA8C20B1}');
      Reg.CloseKey;
    end;

    if reg.KeyExists('\My.Bilder\') then
      Reg.DeleteKey('\My.Bilder\');
  finally
    Reg.Free;
  end;
end;
Getestet mit WinXP SP1.

Du kannst dich ja auch selber noch mit der Registry beschäftigen. Unter dem Schlüssel 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explore r\AutoplayHandlers\EventHandlers' konnte man auch noch andere Sachen wie Bilder eintragen.

Ich habe eben gerade nach den Suchbegriff ShowPicturesOnArrival gesucht, eventuell kommst du damit noch weiter.
Angehängte Grafiken
Dateityp: jpg aktion_165.jpg (33,7 KB, 31x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  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 20:22 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-2025 by Thomas Breitkreuz