AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Tool für selektives AutoPlay? [Windows 7]

Tool für selektives AutoPlay? [Windows 7]

Ein Thema von ehX · begonnen am 15. Aug 2011 · letzter Beitrag vom 15. Aug 2011
Antwort Antwort
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#1

Tool für selektives AutoPlay? [Windows 7]

  Alt 15. Aug 2011, 12:59
Hallo zusammen,

ihr kennt ja sicher das AutoPlay-Feature von Windows: Man steckt z.B. einen USB-Stick rein und Windows öffnet dann das (oft wenig hilfreiche, überladene) Fenster, in dem man die Auswahl hat, was ausgeführt werden soll.
Mich hat dieses Feature immer genervt, da eh oft die falschen Optionen angeboten wurden, darum habe ich es abgeschaltet.

Das ist aber auch nicht gänzlich optimal...ich würde es. z.B. gerne haben, dass beim Einstecken meines verschlüsselten USB-Sticks automatisch die EXE gestartet wird, die zum Login in den Stick auffordert.
Diese EXE liegt aber in einer ReadOnly-Partition des Sticks, somit kann ich dort keine Autostart.ini oder dergleichen erstellen.
(Edit-Info: Es handelt sich um einen "Kingston DataTraveler 5000")

Lange Rede, kurzer Sinn:
Kennt jemand vielleicht ein Tool, bei dem man eine solche AutoPlay-Funktionalität selektiv einstellen kann?
Heisst, das Programm erkennt einen Stick und man kann für diesen Stick, wenn er das erste Mal gemountet wird, auswählen, was beim Einstecken automatisch gestartet wird.
Wenn man den Stick einmal konfiguriert hat, passiert das dann in Folge automatisch (Das zuvor ausgewählte Programm wird immer gestartet, sobald man diesen Stick reinsteckt).
Gibt es so etwas überhaupt?
Fin

Geändert von ehX (15. Aug 2011 um 15:22 Uhr)
  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
 
#2

AW: Tool für selektives AutoPlay? [Windows 7]

  Alt 15. Aug 2011, 13:01
Weiß nicht ob es sowas gibt, aber sollte auch nicht allzu schwer sein sich so ein Tool selbst zu schreiben
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
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Tool für selektives AutoPlay? [Windows 7]

  Alt 15. Aug 2011, 13:14
Gute Idee, allerdings gibt es da dann doch noch ein paar Hürden für mich...Erkennen, wann ein USB-Stick gemountet wird und dann eindeutig identifizieren....mal googlen
Fin
  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

AW: Tool für selektives AutoPlay? [Windows 7]

  Alt 15. Aug 2011, 14:29
MSDN-Library durchsuchenWM_DEVICECHANGE

MSDN-Library durchsuchenGetVolumeInformation

MSDN-Library durchsuchenRegisterDeviceNotification + MSDN-Library durchsuchenDEV_BROADCAST_VOLUME

Das sollte helfen

Habe hier mal auf die schnelle einen sehr hässlichen, aber funktionierenden Code zusammengeschustert:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
  private
    { Private-Deklarationen }
  public
    procedure WMDevChange(var Msg: TMessage); message WM_DEVICECHANGE;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  DBT_DEVICEARRIVAL = $8000;
  DBT_DEVICEREMOVECOMPLETE = $8004;

{ TForm1 }

procedure TForm1.WMDevChange(var Msg: TMessage);
var DevName: Array[0..MAX_PATH] of Char;
    FileSys: Array[0..MAX_PATH] of Char;
    SN: DWORD;
    DevFlags, MaxLen: DWORD;
begin
  if Msg.WParam = DBT_DEVICEARRIVAL then
  begin
    GetVolumeInformation('G:\',@DevName[0],MAX_PATH+1,@SN,MaxLen,DevFlags,@FileSys[0],MAX_PATH+1);
    ListBox1.Items.Add('Laufwerk: G:');
    ListBox1.Items.Add('Bezeichnung: ' + String(DevName));
    ListBox1.Items.Add('Dateisystem: ' + String(FileSys));
    ListBox1.Items.Add('Serien-Nr.: ' + IntToStr(SN));
  end
  else
  if Msg.WParam = DBT_DEVICEREMOVECOMPLETE then
    ListBox1.Items.Clear;
end;

end.
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."

Geändert von Neutral General (15. Aug 2011 um 14:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.929 Beiträge
 
Delphi 12 Athens
 
#5

AW: Tool für selektives AutoPlay? [Windows 7]

  Alt 15. Aug 2011, 14:52
Eine Alternative wäre einfach die integrierte Autoplayfunktion so anzupassen wie man es möchte statt diese abzuschalten...

Unter "Automatische Wiedergabe" finden sich in der Systemsteuerung bereits die wichtigsten Optionen.

Und wenn man eigene Einträge braucht, gibt es diverse Tools dafür:
http://www.snapfiles.com/get/AutoplayRepair.html
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Tool für selektives AutoPlay? [Windows 7]

  Alt 15. Aug 2011, 15:24
Danke euch vielmals!
Das hilft schonmal extrem weiter.
Welche Lösung ich nun nehme, zeigt, ob ich das mit dem DeviceChange auch sauber implementiert kriege oder ob ich jaenicke's Lösung für ausreichend halte.
Danke aber nochmal, vor Allem auch für das Code-Schnippsel!
Fin

Geändert von ehX (15. Aug 2011 um 15:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:21 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