Skoč na hlavné menu

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

RSS komentárov

Zatiaľ nebol pridaný žiaden komentár.

Nový komentár

Podľa možností píšte spisovne, s diakritikou, slušne a k veci.

Môžete používať HTML syntax. Povolené značky sú: <strong>, <em>, <code>, <abbr>, <acronym>, <a>, <blockquote> a <cite>. Formátovanie nových riadkov ostáva zachované, prázdny riadok znamená začiatok nového odstavca.