lbug,
XnViewPortable.exe
Can't XnView be made portable using its original installation? Does one need to use the PortableApps version?
Sadly, the short cut ([Page down]) will often stop working
Hmm, there is no reason it should stop working, unless something else steals the hotkey. You can try adding
as the first line of the script, this should make keyboard shortcuts more reliable.
I can hold down [Page Down] to "scroll" with maximum speed
Yeah, that was not really the design goal. I thought you wanted to compare the pairs one by one, decide which one is "the correct one", and move to the next pair, e.g. spending at least a second per pair. In that case the speed would not be a problem. Speeding through all images is not really fast in any viewer from my experience (with FastStone being the least bad IIRC), let alone closing it and reopening with a new image, and that two times for each image. So yes, it was not built for speed.
What I could perhaps do, is monitor the currently opened image in Xnview 1, and if the image stays open for say, one second or more, I could open Xnview 2 with the corresponding image from the other folder next to it. Would that be of any use to you?
I think, I am even faster, switching manually with [Space], [Alt]+[Tab], [Space] between two IrfanView-instances
That is most probably the case, but you lose the pairing of the duplicate names, instead just switch to the next image. Of course, a script can simulate sending Space to both viewer windows, if that helps.
Is it possible to open both image viewers only once? Giving both a temporary built filelist-file as a start-up-parameter?
That is actually a great idea.
[An hour later...]
Well, no luck with XnView, initially it shows only the files from the duplicates list, however, it browses through all files, not only those specified in the file list. If you find a viewer that can do that, I can adjust the script (or you can if you know how). Otherwise the only solution that currently comes to mind is creating two dirs with hardlinks to the duplicate files in the original dirs. Which would be a problem for different drives / network drives, etc.
Here is the adjusted script:
Code: Select all
#UseHook
#SingleInstance, Force
Dir1 := SubStr(A_Args[1], 1, -1)
Dir2 := SubStr(A_Args[2], 1, -1)
FileMask := A_Args[3]
Viewer := A_Args[4]
Loop, Files, % Dir1 . "\" . FileMask
FileList .= A_LoopFileName . "`n"
Loop, Files, % Dir2 . "\" . FileMask
FileList .= A_LoopFileName . "`n"
Sort, FileList, CL
PreviousFileName := ""
FilesInBothDirsList := ""
Loop, Parse, FileList, `n, `r
{
If (A_LoopField = PreviousFileName)
{
FilesInBothDirsList1 .= Dir1 . "\" . A_LoopField . "`n"
FilesInBothDirsList2 .= Dir2 . "\" . A_LoopField . "`n"
}
PreviousFileName := A_LoopField
}
FileList1FileName := % A_ScriptDir . "\TempImageList1_" . A_Now
FileList2FileName := % A_ScriptDir . "\TempImageList2_" . A_Now
FileAppend, % FilesInBothDirsList1, % FileList1FileName
FileAppend, % FilesInBothDirsList2, % FileList2FileName
Run, % """" . Viewer . """ -filelist """ . FileList1FileName . """", % Dir1, , Viewer1PID
Run, % """" . Viewer . """ -filelist """ . FileList2FileName . """", % Dir2, , Viewer2PID
Sleep, 10000
FileDelete, % FileList1FileName
FileDelete, % FileList2FileName
PgDn::
WinActivate, % "ahk_pid " . Viewer1PID
Send, {PgDn}
WinActivate, % "ahk_pid " . Viewer2PID
Send, {PgDn}
Return
PgUp::
WinActivate, % "ahk_pid " . Viewer1PID
Send, {PgUp}
WinActivate, % "ahk_pid " . Viewer2PID
Send, {PgUp}
Return
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.