Dateien vom Android-Smartphone lesen.

Antworten
Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Dateien vom Android-Smartphone lesen.

Beitrag von Ally »

Wenn ich mein Android-Smartphone an meinen Windows-PC anschließe und "Datenübertragung" auswähle, kann ich mit dem Windows-Explorer auf die Dateien im Smartphone zugreifen.
Unter Linux(Mint) funktioniert das ebenfalls.
Wenn ich dann aber unter Lazarus/Windows mit, z.B., einem DirectoryEdit auf das Smartphone zugreife, bekomme ich zwar die Ordner zu sehen, kann auch einen auswählen, bekomme dann aber keinen Pfad zurück.
Unter Lazarus/Linux(Mint) funktioniert es wie erwartet.

Was muss ich tun, damit es auch unter Windows geht.

Anbei ein kleines Beispiel zum testen.

Gruß Roland
Dateianhänge
screeshot.png
screeshot.png (38.03 KiB) 5381 mal betrachtet
FindAllFiles.zip
(5.75 KiB) 80-mal heruntergeladen

Soner
Beiträge: 624
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Soner »

Du musst mit Shellobjects arbeiten, Lazarus verwendet "Findfirst, Findnext...", damit kommst du nicht weit.
Such im Internet nach "Delphi shellobjects pidl itemidlist".
Es gab auf Sourceforge Quellcode und Demo von Shellctrls, offiziell kein Crack, da kannst du nachschauen wie die das gemacht haben.

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Ally »

Hallo Soner,

vielen dank für deine Infos.
Leider haben sie mir noch nicht so richtig weitergeholfen.
Die Shellctrls haben das gleiche Problem, auch damit kann man nicht auf das Smartphone zugreifen.
Es wird noch nicht mal angezeigt.
So wie das aussieht, ist der Zugriff auf solche Laufwerke/Ordner in Lazarus-Windows noch nicht implementiert.
Unter Lazarus-Linux funktioniert es ja schon.
Meine Suche hat allerdings auch noch keinen Forenbeitrag zu Tage gefördert der dieses Problem thematisiert.
Es scheint also nichts zu sein das auf der Agenda ganz oben steht. :(

Gruß Roland

Soner
Beiträge: 624
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Soner »

Ich meinte die ShellControls von Delphi und nicht von Lazarus.
Die Delphi-ShellControls verwenden ShellObjects-Api und von Lazarus "Findfirst, Findnext ..". Hier auf Sourceforge sind die.

Vor über 10 Jahren hatte ich ein Beispiel gepostet, bevor die ShellControls von Lazarus Bilder bekam, das poste ich nochmal.
Es macht nicht das was du suchst, es arbeit auch mit "Findfirst, Findnext", aber du kannst dort sehen wie z.b. SHGetFileInfo verwendet wird. Für dich ist nur lfmosfuncwin.pas wichtig.

Vielleicht mach ich es mal übers Wochenende Treelist/Treveview mit Shellobjects, aber hoffe nicht viel, weil hier in Hamburg ist richtig warm, ich überlege gerade ein kühles Bier zu nehmen und Cyberpunk zu spielen.

Ich wünsche dir viel Glück.
Dateianhänge
lazfm3scrshot.png
lazfm3scrshot.png (13.63 KiB) 5280 mal betrachtet
lazfm3pub.zip
(139.01 KiB) 82-mal heruntergeladen

Soner
Beiträge: 624
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Soner »

Bevor ich dich komplett auf falschen Weg schicke, es hängt auch davon ab was du machen möchtest. Mann bekommt nie eine richtige Pfad-Angabe, man bekommt nur Zeiger auf diese Dateien. Ich glaube es war in shlobj.pas definiert und hieß PItemIDList, Wenn du mit Handy-Dateien etwas anfangen möchtest, dann musst du die Datei erst mit Windows-Funktionen auf temporären Ordner kopieren. Es gibt WinApi-Funktionen die mit PItemIDList arbeiten, deshalb Shellobjects-Api. Wenn du z.B. auf irgendeine Handy-Datei in Windowsexplorer doppelklickst, dann kopiert Windows 10 die Datei erst auf "C:\Users\BENUTZERNAME\AppData\Local\Microsoft\Windows\INetCache\IE\HANDYDATEIXY.Z", dann startet es ein Programm und übergibt diesen Pfad.

Ich glaube Windows ist shit, es sollte eingemottet werden.

Edit: Windows kopiert nicht, sondern tut so als ob es beim Ordner ""C:\Users\BENUTZERNAME\AppData\Local\Microsoft\Windows\INetCache\IE\" liegt.

Soner
Beiträge: 624
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Soner »

Und diesen Pfad "C:\Users\BENUTZERNAME\AppData\Local\Microsoft\Windows\INetCache\IE\HANDYDATEIXY.Z" bekommt man mit SHGetFileInfo.

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Ally »

aber hoffe nicht viel, weil hier in Hamburg ist richtig warm, ich überlege gerade ein kühles Bier zu nehmen
Kann ich nachvollziehen, bei uns gab es heute auch fast 33°C :)
Wenn du z.B. auf irgendeine Handy-Datei in Windowsexplorer doppelklickst, dann kopiert Windows 10 die Datei erst auf "C:\Users\BENUTZERNAME\AppData\Local\Microsoft\Windows\INetCache\IE\HANDYDATEIXY.Z", dann startet es ein Programm und übergibt diesen Pfad.
Edit: Windows kopiert nicht, sondern tut so als ob es beim Ordner ""C:\Users\BENUTZERNAME\AppData\Local\Microsoft\Windows\INetCache\IE\" liegt.
Also ich habe beides gesehen. Mal wurde die Datei, vom verlinkten Programm, offensichtlich direkt vom Smartphone geöffnet. Mal wurde eine andere Datei mit dem Zusatz [1] nach "C:\Users\BENUTZERNAME\AppData\Local\Micros..." kopiert und von dort geöffnet.
Das Ganze ist also nicht ganz so trivial. Und schlussendlich müsste es noch in die entsprechenden Komponenten, wie z.B. DirectoryEdit, implementiert werden.

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 259
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint21.1, Win10, Lazarus 2.2.4, FPC3.2.2
CPU-Target: X86-64; arm 32bit
Wohnort: Illertissen
Kontaktdaten:

Re: Dateien vom Android-Smartphone lesen.

Beitrag von h-elsner »

Androidgeräte werden doch als MTP-Device gemountet. Wenn man man nach Lazarus und MTP sucht, bekommt man einige Treffer. Ich habe mich aber nicht vertieft. Einfach mal schauen, was da so alles diskutiert wird.
Warum LINUX mit MTP Devices besser zurecht kommt als Windows weiß ich nicht. MTP ist ja von M$ definiert. Muss man nicht verstehen.

Gruß HE

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6217
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Dateien vom Android-Smartphone lesen.

Beitrag von af0815 »

h-elsner hat geschrieben:
Mo 19. Jun 2023, 16:22
Warum LINUX mit MTP Devices besser zurecht kommt als Windows weiß ich nicht. MTP ist ja von M$ definiert. Muss man nicht verstehen.
Windows kann ohne Probleme mit MTP Devices umgehen, sagt aber dem Programmierer nicht, wo es das so gut versteckt. Ist eher typisch für M$, das es etwas gut kann, dafür aber keine dokumentierte Schnittstelle zur Verfügung stellt, sondern in der API versteckt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Soner
Beiträge: 624
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Soner »

Tut mir leid, ich konnte da nichts mehr machen, keine Zeit und keine Lust gehabt.

Ich lade hier eine Komponente hoch, die Ich vor vielen Jahren im Netz gefunden hatte. Es ist "Shell PathComboBox " und alles in einer Datei und sehr einfach. Da kannst du sehen wie es gemacht wird. Und wenn du im Internet nach "delphi shellobjects" suchst, dann findest auch auch genug Infos.

Edit: Ich hatte Anhang vergessen.
Dateianhänge
PathComboBox-pub.zip
(6.19 KiB) 72-mal heruntergeladen

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: Dateien vom Android-Smartphone lesen.

Beitrag von Ally »

Vielen Dank für eure Hinweise.
Das jetzt alles in FP und Lazarus zu implementieren, ist sicherlich nur etwas für jemanden der sich wirklich gut damit auskennt.

Antworten