`

TCShell2: now can be used as a TC launcher

 
阅读更多

Usage: tcshell2 /path/to/filename

 

 

ULinkProcess.pas

procedure TryToLocateFileInTC(fullpath: string);
var
  htcmd: HWND; //the HWND of Total Commander
  pbuf: PChar;
  
    function FindFileListBox(var idx: Integer): HWND;
    var
      title: array[0..1024] of char;
      hlist: HWND;
      count, row, len: integer;
      basename: string;
    begin
      Result := 0;
      idx := -1;

      basename := ExtractFileName(fullpath);

      hlist := FindWindowEx(htcmd, 0, 'TMyListBox', nil);
      while (hlist<>0) do
      begin
        GetWindowText(hlist, title, 1024);
        if StrLen(title)=0 then
        begin
          count := SendMessage(hlist, LB_GETCOUNT, 0, 0);
          for row := 0 to count-1 do
          begin
            len := SendMessage(hlist, LB_GETTEXTLEN, row, 0);
            GetMem(pbuf, len+1);
            try
                if LB_ERR<>SendMessage(hlist, LB_GETTEXT, row, Integer(pbuf)) then
                  if SameText(basename, Copy(StrPas(pbuf), 0, Length(basename))) then
                  begin
                     idx := row;
                     Result := hlist;
                     exit;
                  end;

            finally
              Dispose(pbuf);
            end;
          end;
        end;

        //try next listbox
        hlist := FindWindowEx(htcmd, hlist, 'TMyListBox', nil);
      end;

    end;
var
  idx, row: Integer;
  hlistbox: HWND;
  title: array[0..1024] of char;
begin
  //don't bother with directory
  if DirectoryExists(fullpath) then exit;

  htcmd := FindWindow('TTOTAL_CMD', nil);
  if (0=htcmd) then  exit;
  GetWindowText(htcmd, title, 1024);

  idx := -1;
  hlistbox := FindFileListBox(idx);
  if (hlistbox=0) or (idx<0) then exit;

  AppActivate(title);
  //FIXME: the key can only be sent to the source list, not the target list
  //    so it won't work, if '/S /R' used to invoke TC,
  SendKeys('{HOME}', true);
  for row := 0 to idx-1 do
      SendKeys('{DOWN}', true);
end;
 

 

 

 

分享到:
评论

相关推荐

    junit-platform-launcher-1.8.0-M1-API文档-中文版.zip

    赠送jar包:junit-platform-launcher-1.8.0-M1.jar; 赠送原API文档:junit-platform-launcher-1.8.0-M1-javadoc.jar; 赠送源代码:junit-platform-launcher-1.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-...

    Launcher3as_android源码_

    2. **Activity和Intent**:Launcher3as作为主界面,它是一个`Activity`实例,负责响应用户交互。理解`Activity`的生命周期、启动模式以及如何通过`Intent`在不同`Activity`间跳转是Android开发的基础。 3. **View和...

    Launcher.rar基于AS

    2. **Android Studio配置**:在AS中,需要配置AOSP项目。这包括设置正确的构建变量,如SDK路径、NDK路径以及AOSP源码路径。 3. **构建与导入**:导入源码到AS后,使用AS的Gradle构建工具编译项目。在编译过程中,...

    android launcher2源码

    《深入剖析Android Launcher2源码》 Android的Launcher2是系统桌面的核心组件,它负责管理应用程序的快捷方式、小部件以及主屏幕布局。对于想要深入理解Android系统运行机制的开发者而言,研究Launcher2的源码至关...

    android系统 launcher2

    在Android操作系统中,Launcher2是默认的主屏幕应用,它为用户提供了一个界面来启动其他应用程序、管理桌面快捷方式和小部件。本篇文章将深入探讨如何实现Android系统的Launcher2,以及其核心功能和工作原理。 首先...

    Launcher2 AndroidStudio

    "Launcher2 AndroidStudio" 是一个基于Android Studio的项目,它主要关注的是Android系统中的默认启动器——Launcher2的源码分析和开发。这个项目允许开发者深入理解Android系统的启动器工作原理,并提供了一个平台...

    android4.0 Launcher2

    《深入剖析Android 4.0 Launcher2》 在Android操作系统中,Launcher是用户与系统交互的门户,它作为主屏幕,提供了应用快捷方式、小部件和桌面布局等功能。在Android 4.0(Ice Cream Sandwich,简称ICS)版本中,...

    Launcher2源代码

    "Launcher2源代码"是指Android系统中默认的主屏幕应用的源码,它负责管理桌面图标、小部件和应用启动。这个源代码是开源的,允许开发者深入理解Android系统的启动器工作原理,并对其进行定制和优化。适配好的...

    android桌面Launcher2

    "Android桌面Launcher2"是Android 2.2版本的源代码,主要负责手机或平板设备的主屏幕功能,用户可以通过它来启动应用、管理桌面快捷方式以及自定义桌面布局。这个资源提供了完整的代码,允许开发者深入理解Android...

    Android Launcher2

    **Android Launcher2详解** 在Android系统中,Launcher是用户与设备交互的第一道窗口,它扮演着桌面的角色,负责展示应用图标、小部件以及管理主屏幕。`Launcher2`是Android早期版本中的默认启动器,虽然在后来的...

    Android11 Launcher3

    **Android 11 Launcher3 深度解析** Android 11中的Launcher3是系统启动器的主要组件,它是用户与设备交互的门户,负责显示应用图标、桌面壁纸、小部件等。Launcher3不仅承担着应用启动的任务,还管理着用户的主...

    魅族的launcher2

    meizu 的launcher2 美化修改过的

    Android 4.0 Launcher2 源码 Eclipse版

    【Android 4.0 Launcher2 源码 Eclipse版】是一个专门为Android 4.0 (Ice Cream Sandwich)系统设计的启动器源代码,适合开发者深入理解Android系统的桌面启动器工作原理,以及进行自定义开发。这个源代码版本是为...

    解决:系统重装后的pip报错:Fatal error in launcher: Unable to create process using

    系统重装后的pip 原为win7旗舰版的系统,升级固态后换成win10系统,可以...Fatal error in launcher: Unable to create process using '"e:\users\administrator\appdata\local\programs\python\python37\python.exe"

    python 解决Fatal error in launcher:错误问题

    python终端用pip list出现这个错误Fatal error in launcher: 只要终端用到pip的东西,都在前面加python -m,比如python -m pip list 好了,完美解决! 补充知识:python安装exe打包库命令pip install pyinstaller...

    Launcher2可直接运行源码

    《深入理解Android Launcher2:源码解析与运行机制》 Android系统的核心组件之一是Launcher,它是用户与系统交互的门户,而Launcher2则是Android 2.1至2.3版本中的默认启动器。本篇文章将深入探讨Launcher2的源码,...

    在Eclipse中编译运行Android4.3应用源码:Launcher2源码

    在Eclipse中编译运行Android4.3应用源码:Launcher2源码包。详细请参阅在Eclipse中编译运行Android4.3应用源码——Launcher2和Gallery2 http://blog.csdn.net/klpchan/article/details/11843295

    基于android 4.0.3的launcher2修改

    "基于Android 4.0.3的Launcher2修改"是一个针对Android系统启动器的自定义开发项目,旨在改进默认的用户界面和功能。在Android 4.0.3(冰淇淋三明治)版本中,Launcher2是原生的桌面应用,负责管理应用程序图标、小...

    android 4.2.1 launcher2

    Android 4.2.1 Launcher2 是Android操作系统中的主屏幕应用程序,它负责提供用户界面,让用户可以启动应用、管理桌面小部件以及个性化设备。在这个版本中,Launcher2进行了诸多优化和改进,为用户提供更加流畅和高效...

Global site tag (gtag.js) - Google Analytics