Total Commander - získanie označených súborov
Kategórie: Ruby and Rails, Windows
Niekedy sa stane, že potrebujem spracovať súbory aktuálne označené v Total Commanderi nejakým skriptom alebo programom. Napríklad mám skript, ktorý premenuje súbory s titulkami podľa videosúboru a jazyka titulkov. Pokiaľ takýto program spúšťam priamo z Total Commandera, dá sa využiť parameter %L, ktorý ukazuje na dočasný súbor s cestami k označeným súborom. Takéto riešenie je však pre mňa často zbytočne nepohodlné.
Existuje ale interný príkaz cm_CopyFullNamesToClip, ktorý skopíruje cesty k označeným súborom do schránky (všetky dostupné príkazy sa nachádzajú v Totalcmd.inc). Interné príkazy sa zvonku Total Commanderu dajú zavolať prostredníctvom správy WinAPI (teda volaním SendMessage funkcie).
V AutoHotkey by to celé vyzeralo takto (2018 zodpovedá volaniu cm_CopyFullNamesToClip):
clipSave = %Clipboard%
SendMessage 1075, 2018, 0, , ahk_class TTOTAL_CMD
selection = %Clipboard%
Clipboard = %clipSave%
Loop, parse, selection, `n, `r
{
MsgBox, "%A_LoopField%"
}
A ešte príklad pre Ruby:
require 'Win32API'
require 'win32/clipboard'
include Win32
findWindow = Win32API.new('user32', 'FindWindow', ["P", "P"], "L")
sendMessage = Win32API.new('user32', 'SendMessage', ["L", "L", "P", "P"], "L")
hwnd = findWindow.call("TTOTAL_CMD", nil)
exit if hwnd == 0
clip = Clipboard.data
sendMessage.call(hwnd, 1075, 2018, nil)
selectedFiles = Clipboard.data.split(/\n/).collect {|file| file.chomp}
Clipboard.set_data(clip)
selectedFiles.each do |file|
puts file
end
02. 07. 2009, 20.40 stalker Komentár
Páčil sa Ti článok? pošli do vybrali.sme.sk
Komentáre
Zatiaľ nebol pridaný žiaden komentár.