Explorer-Selektion in den sichtbaren Bereich bringen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Explorer-Selektion in den sichtbaren Bereich bringen

07 Jan 2019, 05:38

mit

Code: Select all

SetExplorerItem(Path,HWND){
	; https://www.autohotkey.com/boards/viewtopic.php?t=37151
	for window in ComObjCreate("Shell.Application").Windows  {
		if (window.hwnd = hwnd)  {
			ShellFolderView := window.Document
			for item in ShellFolderView.Folder.Items
			{
				if(Item.Path=Path)
				{
					ShellFolderView.SelectItem(item, 13)
					; Die 3 wurde nachträglich hinter die 1 gehängt um ein brauchbares Skript zu erhalten!
					Abbruch:=true
					break
				}
				if Abbruch
					break
			}
		}
		if Abbruch
			break
	}
	return Abbruch
}
kann ich in einem bestehenden Explorer-Fenster (mit dem HWND) einen einzelnen Pfad (Path) selektieren.
Nun würde ich gerne die Selektion automatisch in den sichtbaren Bereich bringen. Dies funktioniert mit der nachträglich eigefügten 3 im obigen Skript (siehe Kommentar).
Last edited by Gerdi on 08 Jan 2019, 17:32, edited 3 times in total.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
User avatar
SL5
Posts: 879
Joined: 12 May 2015, 02:10
Contact:

Re: Explorer-Selektion in den sichtbaren Bereich bringen

07 Jan 2019, 18:02

vielleicht hilft das tool. velleicht auch der quelltext inspierierend. im kontextmenü wurd im explorer der spy ausgewählt: https://raw.githubusercontent.com/serzh ... AhkSpy.ahk
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: Explorer-Selektion in den sichtbaren Bereich bringen

08 Jan 2019, 02:58

Danke,
Starkes Tool!
im kontextmenü wurd im explorer der spy ausgewählt:
dies habe ich noch nicht nachspielen können.
Meinst Du das KontextMenü, welches nach [Alt]+[Leertaste] angezeigt wird?
oder meinst Du das KontextMenü, welches durch Rechtsklick auf ein Explorer-Item angezeigt wird?
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
User avatar
SL5
Posts: 879
Joined: 12 May 2015, 02:10
Contact:

Re: Explorer-Selektion in den sichtbaren Bereich bringen

08 Jan 2019, 03:00

Gerdi wrote:
08 Jan 2019, 02:58
...
im kontextmenü wurd im explorer der spy ausgewählt:
... oder meinst Du das KontextMenü, welches durch Rechtsklick auf ein Explorer-Item angezeigt wird?
ja das durch rechtsklick. ich habe nur bemerkt, dass er halt direkt auf die entsprechende datei sprinkt.
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: Explorer-Selektion in den sichtbaren Bereich bringen

08 Jan 2019, 04:00

Eventuell ein kleiner Schritt Richtung Ziel:
wenn man die Zeile
ShellFolderView.SelectItem(item, 1)
durch

Code: Select all

ShellFolderView.SelectItem(item, 1).scrollIntoView() ; bringt keine Fehlermeldung und selektiert auch aber bringt nicht in den sichtbaren Bereich
ersetzt, kommt wenigstens mal keine Fehlermeldung.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: Explorer-Selektion in den sichtbaren Bereich bringen

08 Jan 2019, 08:34

kommt wenigstens mal keine Fehlermeldung.
Die kommt auch nicht bei anderen (statt scrollIntoView) Strings ohne Leerzeichen.
D.h. ich bin eher der Lösung nicht näher gekommen!
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
just me
Posts: 9453
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Explorer-Selektion in den sichtbaren Bereich bringen  Topic is solved

08 Jan 2019, 11:16

Moin,

ShellFolderView.SelectItem
Schau Dir mal den Parameter dwFlags an. 8 klingt vielversprechend, ich habe es aber nicht probiert.
dwFlags [in]

Type: Integer

A set of flags that indicate the new selection state. This can be one or more of the following values.

(0)
Deselect the item.
(1)
Select the item.
(3)
Put the item in edit mode.
(4)
Deselect all but the specified item.
(8)
Ensure the item is displayed in the view.
(16)
Give the item the focus.
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: Explorer-Selektion in den sichtbaren Bereich bringen

08 Jan 2019, 12:07

Danke das wars.

mit 1 + 4 + 8 = 13 statt der bisherigen 1
funktioniert es wunschgemäß.

PS. ohne die 4 selectiert der Explorer zusätzlich den Ordner des vorigen Pfades, wenn man aus tieferer Ordner-Struktur kam.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 53 guests