Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 04.11.21 07:28 
Guten Morgen!

Wenn man im Startmenü (Windows 10) auf "Suche" klickt, öffnet sich ja ein Eingabefenster. Dieses brauche ich in meinem Programm! Ich möchte aber nicht nur das Suchfenster öffnen, sondern möchte auch die Ergebnisse, also die Pfadnamen, wenn möglich, automatisch daraus auslesen.

Sollte das nicht möglich sein: Wie öffne ich aus meinem Programm die Windows-Suche?


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 04.11.2021 um 06:48

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 04.11.21 11:05 
Das ist die UWP SearchApp - bei mir lokal unter "C:\Windows\SystemApps\Microsoft.Windows.Search_cw5n1h2txyewy".

Ein Starten des Prozesses bringt jedoch nichts, da dieser schon standardmäßig läuft (im TaskManager unter "Suche" zu finden).

Ich weiß aber weder, wie man diese aktiviert, noch ob das überhaupt von Delphi aus möglich ist.

Für diesen Beitrag haben gedankt: galagher
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 04.11.21 11:44 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Ich weiß aber weder, wie man diese aktiviert, noch ob das überhaupt von Delphi aus möglich ist.
Da wird es wohl einen oder mehrere Parameter geben, denke ich. Ich sehe es mir an, vielleicht finde ich ja was...

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 04.11.21 12:32 
Da diese Suche für die Suche nach Dateien ja eine der schlechtesten Möglichkeiten ist, ist die Frage, ob du dir wirklich sicher bist, dass du wirklich diese Suche nutzen möchtest...

Eine API gibt es dafür meines Wissens nicht. Du könntest diese daher höchstens fernsteuern, aber das macht auch nicht wirklich Sinn. Ansonsten bliebe noch die Suchquellen anzuzapfen, aber die Möglichkeit hat man ja ohnehin immer.

Was möchtest du denn eigentlich erreichen?
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 04.11.21 12:42 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Was möchtest du denn eigentlich erreichen?
Nun ja, man soll die Möglichkeit haben, diese Windows-Funktion zu nutzen, ideal wäre es, wenn mein Programm die Ergebnisse auswerten könnte. Wenn das nicht möglich ist, dann eben nicht, egal. Nur so mal als Idee!
Konkret geht es darum: Wenn man eine Datei aus einer TStringList heraus öffnen möchte, und diese Datei zB. verschoben wurde, soll die Windows-Suche genutzt werden, um nach der Datei zu suchen. Das passendste Ergebnis kommt dann in die TStringList.

Natürlich könnte ich auch eine eigene rekursive Suchfunktion nutzen. Oder mein Dateisuchprogramm dafür verwenden. Werde ich auch machen, wenn ich nicht weiterkomme.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 04.11.21 21:33 
Möglicherweise hat sich das in Windows 10/11 geändert aber das letzte mal als ich versucht habe diese Suche zu verwenden mußte man sich an den Windows Search Service wenden und der hat, unter anderem, ein OleDB Api um eine Suche auf dem Index auszuführen. Die Doku wurde zumindest zuletzt aktualisiert und ich finde in Windows 11 den Search Service auch noch ;) Du solltest dich aber fragen warum deine Datei denn in dem Index sein sollte? Oder meinst du die Suche aus dem File Explorer heraus und nicht die im Start Menü?

docs.microsoft.com/e...ers-guide-entry-page
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 05.11.21 07:01 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Du solltest dich aber fragen warum deine Datei denn in dem Index sein sollte? Oder meinst du die Suche aus dem File Explorer heraus und nicht die im Start Menü?
Nein, in einer TStringList stehen etliche Dateinamen, die aus einer Datei eingelesen werden. Wenn nun eine der Dateien nicht mehr gefunden wird, wollte ich die Windows-Suche benutzen, um sie an einem möglicherweise neuen Speicherort zu finden.

Habe das alles aber verworfen und anders gelöst, indem ich ein externes Suchprogramm verwende. Natürlich würde eine einfache Fehlermeldung "Datei nicht gefunden" oder so in der Art auch genügen, und man muss sich selbst darum kümmern, wo die Datei ist und ob es sie überhaupt noch gibt.

Nun geht es mir nur noch um's Prinzip: Kann man die Windows-Suche aus einem Delphi-Programm aufrufen?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 05.11.21 09:18 
Für diesen Zweck ist diese Suche dann tatsächlich die schlechteste Variante. ;-)
Die ist relativ langsam, findet vieles gar nicht, ...

Schau dir einmal Everything an. Damit zapfst du die NTFS Datenbank an und hast in wenigen Millisekunden alle Fundstellen auf der Festplatte.

Dazu gibt es auch passenden Quelltext, z.B. hier:
sourceforge.net/projects/ntfs-search/
Ob es für dich Sinn macht davon etwas zu integrieren, weiß ich nicht, aber es wäre die deutlich bessere Lösung.