Liste der in Notepad++ geöffneten Dateien Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Rohwedder
Posts: 7630
Joined: 04 Jun 2014, 08:33
Location: Germany

Liste der in Notepad++ geöffneten Dateien

26 Oct 2018, 10:30

Hallo,
ich verwende Notepad++ meist nur in einer Instanz (1 Hauptfenster), jedoch mit beiden Ansichten (2 Unterfenster) mit jeweils mehreren Tabs. Der Titel des Hauptfensters enthält immer den Pfad+Name der im jeweils aktivierten Tab geöffneten Datei und nur genau diese wird mit WinGet, List, List, ahk_class Notepad++ gefunden.
Gibt es eine Möglichkeit eine Liste aller in Notepad++ geöffneten Dateien zu erstellen?
aifritz
Posts: 301
Joined: 29 Jul 2018, 11:30
Location: Germany

Re: Liste der in Notepad++ geöffneten Dateien  Topic is solved

27 Oct 2018, 05:46

Probier mal, ob das klappt ;)

Code: Select all

Loop, read, C:\Users\%A_Username%\AppData\Roaming\Notepad++\session.xml
  {
    If(Pos:=InStr(A_LoopReadLine, "filename="))
      FilesOpen .= SubStr(A_LoopReadLine,Pos+10,StrLen(A_LoopReadLine)-Pos-13) "`n"
  }
msgbox % FilesOpen
Rohwedder
Posts: 7630
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Liste der in Notepad++ geöffneten Dateien

27 Oct 2018, 08:03

Hallo,
klappt sehr gut! Vielen Dank.
Wußte nicht, daß dort bereits eine Sitzungsdatei ist.
Viel besser als meine umständliche Interimslösung über Datei/Sitzung speichern eine weitere Sitzungsdatei zu erzeugen und diese dann auszuwerten.
garry
Posts: 3764
Joined: 22 Dec 2013, 12:50

Re: Liste der in Notepad++ geöffneten Dateien

27 Oct 2018, 13:33

noch ein Beispiel
EDIT : ich öffne z.Bsp. 3 textfiles aber im xml sehe 2-files , evtl erscheint dritte File später (?)

Code: Select all

f1=%a_appdata%\Notepad++\session.xml
fileread,aac,%f1%
transform,s,chr,34
Loop,parse,aac,`n,`r
{
x:=a_loopfield
if x=
  continue
ax:= "Filename=" . s  ;- begin
bx:=  s               ;- end
if x contains %ax%
  {
  stringlen,L1,ax
  StringGetPos,P1,x,%ax%           ;- begin position1
  P1:=P1+L1
  stringtrimleft,c2,x,p1           ;- after found cut rest from fulltext
  StringGetPos,P2,c2,%bx%          ;- until position bx
  StringMid,cx,c2,1,P2
  e .= cx . "`r`n"
  }
}
aac=
msgbox,%e%
e=
return
 
Rohwedder
Posts: 7630
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Liste der in Notepad++ geöffneten Dateien

28 Oct 2018, 02:38

Hallo,
ja, ist hier auch so.
Einstellungen/Optionen/Sicherheitskopien: Speichere Sitzung alle 7 Sekunden
funktioniert nicht - im angegebenen Verzeichnis ist bei mir nur alter Schrott.
Aber für meinen Zweck reicht es.
Bei Eingabe von Strg+n dem Standardkürzel für Datei neu schlägt mir Notepad++ jetzt (fast) immer eine Datei vor welche gerade nicht geöffnet ist.

Code: Select all

#IfWinActive ahk_class Notepad++
$^n:: ;Datei neu <Notepad++>
WinGetTitle, Titel, A
Send, ^n
Pfad := SubStr(Titel,1,InStr(Titel," - Notepad++")-1)
SplitPath, Pfad,,,Erweiterung
Sleep, 500
WinWaitNotActive, .%Erweiterung%,,4 ;(eine neue Datei hat keine Erweiterung)
Sleep, 500
Liste = ;Liste der geöffneten Dateien
Loop, read, %A_AppData%\Notepad++\session.xml
	If Pos:=InStr(A_LoopReadLine, "filename=")
		Liste .= SubStr(A_LoopReadLine, Pos+10
		, InStr(A_LoopReadLine, "backupFile")-Pos-12) "`n"
Loop
	Name := "new  " A_Index "." Erweiterung
Until !InStr(Liste,Name)
SendInput, ^!s ;Speichern unter
WinWaitActive, Speichern unter ahk_class #32770,,5
Sleep, 500
SendInput,% Name
Return

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 87 guests