Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Beim Verbinden eines Usb geräts aktion starten (https://www.delphipraxis.net/80467-beim-verbinden-eines-usb-geraets-aktion-starten.html)

Dt2158 9. Nov 2006 11:57


Beim Verbinden eines Usb geräts aktion starten
 
Hallo,

mir geht es hier gar nicht so um Delphi sondern ich würde gerne wissen, ob es möglich ist, von Windows aus ein Skript oder meinentwegen auch ein Programm zu starten, sobald zb. ein bestimmtes Gerät, welches ich mit Bezeichner definiere (externe FP), um dann eine Aktion zu starten (Backup). Also hat Windows eine Fkt. dafür?

Oder muss ich Programm schreiben, was ständig läuft und überprüft ob ein Gerät angeschlossen wurde?


Hoffe mein Problem wurde verstanden. :D

Gruß Dt2158


Edit: meine grausige Rechtschreibung schnell zurecht gerückt ;)

Dt2158 9. Nov 2006 14:02

Re: Beim Verbinden eines Usb geräts aktion starten
 
Geht das nun oder gar nicht?

Phoenix 9. Nov 2006 14:06

Re: Beim Verbinden eines Usb geräts aktion starten
 
Zitat:

Zitat von Dt2158
Geht das nun oder gar nicht?

:warn: Pushen von Beiträgen ist erst nach frühestens 24 Stunden erlaubt und generell nicht gerne gesehen.

Lass denen die das Wissen einfach die Zeit erst mal wieder hier rein zu gucken und sich dann eine Antwort zu überlegen.

Luckie 9. Nov 2006 14:06

Re: Beim Verbinden eines Usb geräts aktion starten
 
Gibst du den Mitglieder, die da helfen könnten auch noch die Chance das Posting zu sehen und zu antworten? Dein erstes Posting war gerade mal zwei Stunden alt. Bitte frag das nächste mal erst wieder nach 24 Stunden nach, wie es auch in den Forenregeln steht.

OK, doppelt hält besser. ;)

TurboMartin 9. Nov 2006 15:22

Re: Beim Verbinden eines Usb geräts aktion starten
 
Also so schwer ist das auch nicht.
Wie könnten manche Programme auf jeden beliebigen neuen Device reagieren, ohne die ganze Prozessorlast auf das Programm zu ziehen?
Man führ zu dem Zeitpunkt eine Funktion/Prozedur aus.
Dafür braucht man einen Sender. Da man aber dass nicht selber ist (wäre ja dumm),
kann es nur etwas anderes sein. Bloß wass wohl? ICQ??? IE??? Delphi??? :gruebel:
GANZ EINFACH!!! Windows!
Und wie sieht wohl eine Fenster-Message aus? Ich würde glatt behaupten mit WM_ !
Aber warum??? :gruebel: WM steht einfach für WindowMessage.
So, aber wo steht jetzt eine Liste mit diesen Nachichtentexten???
Spätestens im Internet gibt es die. Aber die gibt es sogar schon viel näher, auf DEINER (auch auf meiner und von anderen Programmierern :wink: :stupid: :zwinker: ) Festplatte!
Da es ja von Windows kommt würd ich glatt behaupten in der Win32 API Hilfe.
Dann gehst du einfach auf Index und gibst WM_ ein. Und schon bist du bei allen Messages.
Dann durchsuchen, die nach sowas klingt.
Allerdings sach ich es mal, welche es ist, damit du nicht lannge suchen musst (was ich übrigens nicht lange musste :zwinker: ): WM_DEVICECHANGE.

:dp:

Dt2158 9. Nov 2006 15:39

Re: Beim Verbinden eines Usb geräts aktion starten
 
Hallo,
das habe ich eben auch grad recherchiert,

aber ich dachte vllt es gibt eine einfache Möglichkeit Windows beim anstöpseln einer externen Festplatte ein Aktion (Skript (vbs/wsh)) ausführen zu lassen. Wm_messages möchte ich da nicht bemühen. Soll das heißen ich komme nun nicht drum rum, ein extra immerlaufendes Programm zu schreiben was die Funktion übernimmt!?

SirThornberry 9. Nov 2006 15:57

Re: Beim Verbinden eines Usb geräts aktion starten
 
genau so ist es. Allerdings dürfte dein Programm dann nicht all zu viel Ressourcen benötigen wenn du nur auf die Message wartest und dann ein Programm startest. Bei Windows ist meines Wissens nach kein solches Programm dabei.

TurboMartin 9. Nov 2006 16:08

Re: Beim Verbinden eines Usb geräts aktion starten
 
So würde ich es nicht sagen.
Es gibt so weit ich weiß ind VBS ja auch Funktionen.
Vielleicht kriegst du damit ja auch WMs abgefangen.
Den Code für Delphi gibt es auf jeden fall hier in der DP.

SirThornberry 9. Nov 2006 16:14

Re: Beim Verbinden eines Usb geräts aktion starten
 
aber damit das vbs läuft muss es auch gestartet sein.

OldGrumpy 9. Nov 2006 16:28

Re: Beim Verbinden eines Usb geräts aktion starten
 
Die Stichworte dürfte Autorun V2 und Autoplay sein. Microsoft versteht darunter etwas anderes als eine Handvoll Softwarehersteller die Utilities mit diesem oder ähnlichem Namen verticken... Wir hatten hier schonmal einen Thread um das Thema, ich find ihn nur gerade nicht.

Im MSDN Magazine stand auch mal ein Artikel dazu, den man über den Google Cache noch finden kann.

TurboMartin 9. Nov 2006 16:28

Re: Beim Verbinden eines Usb geräts aktion starten
 
wie währe es mit einer while-Schleife (oder ner anderen)? :gruebel:
so ungefähr:
Code:
while i=0 do
begin
end;
und i nicht umstellen?

OldGrumpy 9. Nov 2006 16:30

Re: Beim Verbinden eines Usb geräts aktion starten
 
Zitat:

Zitat von TurboMartin
wie währe es mit einer while-Schleife (oder ner anderen)? :gruebel:
so ungefähr:
Code:
while i=0 do
begin
end;
und i nicht umstellen?

:shock: :arrow: :pale: :arrow: :wall:

:wiejetzt:

Ohne Worte... :duck:

TurboMartin 9. Nov 2006 16:32

Re: Beim Verbinden eines Usb geräts aktion starten
 
Ich weiß, dass es Delphi ist und kein VBS. :zwinker: :stupid:

OldGrumpy 9. Nov 2006 16:35

Re: Beim Verbinden eines Usb geräts aktion starten
 
Was ich meinte, ist dass Du da eine Endlosschleife hast, die auch noch 100% CPU-Last zieht, so man sie denn lässt :)
Dass im Do-Abschnitt nix drinsteht, führt nur dazu, dass öfter der While-Abschnitt durchlaufen wird :)

Edit: Linksschreibung verrechtert ;)

TurboMartin 9. Nov 2006 16:39

Re: Beim Verbinden eines Usb geräts aktion starten
 
Zitat:

Zitat von OldGrumpy
Was ich meinte, ist dass Du da eine Endlosschleife hast, die auch noch 100% CPU-Last zieht, so man sie denn lässt :)
Dass im Do-Abschnitt nix drinsteht, führt nur dazu, dass öfter der While-Abschnitt durchlaufen wird :)

Und das kann man(n) noch ändern. :stupid:

OldGrumpy 9. Nov 2006 16:47

Re: Beim Verbinden eines Usb geräts aktion starten
 
Trotzdem ist Polling nicht mehr zeitgemäß wenn man eventbasiert und damit resourcenschonender arbeiten kann. Siehe Post von mir weiter oben :)

Dt2158 10. Nov 2006 15:28

Re: Beim Verbinden eines Usb geräts aktion starten
 
Das mit der Whileschleife war ja ma ne Hammer idee :D :P

also ich habe recherchiert werde gleich nochma nach dem autorun v2 ????? googlen.
Ansonsten habe ich jetzt schon fast ein kleines delphi tool feddich was lediglich auf drauf reagiert, ob ein usb gerät angeschlossen wurde oder nicht und dann ein gewünschte programm starten kann, in meinem fall ein vbsskript,
dieses prüft, dann welches gerät angeschlossen wird, und wenn das gerät das richtige ist findet das backup statt...

Robert Marquardt 11. Nov 2006 06:52

Re: Beim Verbinden eines Usb geräts aktion starten
 
Ich bin gerade nicht fit eine Antwort zu schreiben. Die Chemotherapie macht mich ziemlich fertig.
Kick das Topic naechste Woche und ich kann vielleicht antworten.

Dt2158 11. Nov 2006 13:40

Re: Beim Verbinden eines Usb geräts aktion starten
 
gute Besserung...

werd ich machen

Prototypjack 11. Nov 2006 20:50

Re: Beim Verbinden eines Usb geräts aktion starten
 
Moin!
Ich habe etwas ähnliches hier am laufen.

Nur verlasse ich mich ganz einfach auf das Autorun und mache es auf dem selben Weg wie es auch Cds und andere Wechselmedien tun.

Einfach Autorun.inf anlegen und dieses sollte bei jeder Konnektion abgearbeitet werden.

Ich habe jetzt nicht das ganze Topic gelesen, aber diese Lösung sollte für deine Zwecke reichen (soweit ich das beobachten konnte).
Gruß,
Max

Dt2158 14. Nov 2006 22:05

Re: Beim Verbinden eines Usb geräts aktion starten
 
Was USB-Geräte verhalten sich wie CDROM laufwerke und eine einfache autorun.inf genügt? Das wäre ja genial simpel.

Gruß Dt2158

EDatabaseError 14. Nov 2006 22:34

Re: Beim Verbinden eines Usb geräts aktion starten
 
jup...mit ein bisschen suchen hätte man dazu ein ca. 3 monate altes thema gefunden, in dem es ums gleiche ging ;-)

mfg
tobi

OldGrumpy 14. Nov 2006 22:55

Re: Beim Verbinden eines Usb geräts aktion starten
 
Ich hatte mal eine CD mit autorun.inf aus Versehen ins Hauptverzeichnis einer Festplatte kopiert, sogar das funktionierte. Böse Falle wenn da jemand Prankster spielt :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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