kiến thức Tổng hợp các phần mềm miễn phí/mã nguồn mở trên PC

Cái CopyAsPath này hay phết - nó là cái Copy Full Pathnames trong Directory Opus đúng ko?

Hướng dẫn thêm đi bác ơi.

Ko biết code lại gà như loại em thì ... nhìn xong dek biết làm :(

Đây là tất cả những j em có thể làm dc :(
View attachment 2326904
Để mình tìm hiểu thêm đã
PDOtKXb.png
 
Hi các bác, có phần mềm nào có thể đọc hotmail theo dạng imap tương tự như thunderbird nhưng có thể import account sll ko ạ?
 
UPDATE 20240205: Github cho ae down cả bộ - GitHub - lbpth/backup at PWAbyPake (https://github.com/lbpth/backup/tree/PWAbyPake)


Vâng, em đồng ý 2 tay. Đã biên dịch và icon đẹp đẽ rồi (mất #16 lần biên dịch tổng cộng để đúc rút được vụ xử lý icon 😔) Đóng góp luôn bây giờ đây
UPDATE danh sách các PWA đã biên dịch trên Pake Github:
Chat chit, giải trí apps:
PKM, note apps:
Giải pháp này khá nhỏ gọn, hầu hết chỉ 10MB 1 PWA app. Thử chạy thì cache ban đầu cũng nhẹ nhàng (chưa đến 100MB), gõ tiếng Việt khá nuột, các tính năng dạng Web App cũng ko thấy thua thiệt j các app chính chủ cả.

Trong khi mấy cái app chính chủ thì nặng vcl, gõ tiếng Việt thì ko mượt (gõ có dấu 1 cái là nó xuất hiện hơi trễ tí xíu) -> em đã xoá Discord chính chủ, WhatsApp chính chủ, Notion và Capacities chính chủ cũng đã cho vào dĩ vãng.

====================
Lưu ý 1: Facebook bản Desktop không ngon lắm đâu

Lưu ý 2: User Data được Cache ở AppData -> Roaming nên là để cho gọn gàng thì 1 số app dễ thất thoát data (bỗng 1 ngày chả hiểu data đi đâu mất) như Zalo thì nên vứt vào Sandboxie. Telegram, Discord hay WhatsApp ko cần thì cứ chạy thẳng cánh cò bay cũng được
View attachment 2323795
up rồi nha bác, bác update tiếp đi chứ em không dùng nhiều pwa nên không rõ nhiêù như bác :)
 
JavaScript:
function OnClick(data) {
    var tab = data.func.sourcetab;
    var count = tab.selstats.selfiles;

    // Define the dialog parameters
    var dlg = DOpus.Dlg;
    dlg.window = tab;
    dlg.message = "Number of selected files: " + count;
    dlg.title = "Selected Files Count";
    dlg.buttons = "OK";
    
    // Display the dialog
    dlg.Show();
}

code javascript để tạo button (count selected item and popup a dialog about count item)
uKaBagb.png
 
JavaScript:
function OnInit(initData)
{
    initData.name = "Viewer Select";
    initData.version = "1.4";
    initData.copyright = "(c) 2016-2020 Leo Davidson";
    initData.url = "https://resource.dopus.com/t/viewer-select-make-file-display-track-standalone-viewer/23320/1";
    initData.desc = "The file display selection will track the standalone viewer's current file.";
    initData.default_enable = true;
    initData.min_version = "12.2";
    
    initData.vars.Set("VMapPaths", DOpus.Create.Map());
    initData.vars("VMapPaths").persist = false;
}
// Called when an event takes place in the standalone viewer
function OnViewerEvent(viewerEventData)
{
    var viewer   = viewerEventData.viewer;
    var tab      = viewer.parenttab;
    var mapPaths = Script.vars("VMapPaths").value;
    if (viewerEventData.event == "load")
    {
        if (!mapPaths.exists(viewer))
        {
            // For the first file, verify the tab contains the file we open with.
            // If it doesn't, the viewer may have been launched from outside of Opus,
            // or via a command which explicitly displays a file from a path which isn't
            // visible in the folder tab. Those situations still associate the viewer with
            // a lister/tab if one exists, and we want to leave those tabs alone.
            if (TabContainsFile(tab, viewer.current))
            {
                mapPaths(viewer) = tab.path + ""; // Store string, not Path object.
            }
            else
            {
                mapPaths(viewer) = ""; // Make a note to ignore this viewer.
            }
        }
        var path = mapPaths(viewer);
        var file = viewerEventData.item;
        // Still in the starting folder?
        if (typeof tab  != "undefined"
        &&  typeof path != "undefined"
        &&  typeof file != "undefined"
        &&  path != ""
        &&  tab.path == path)
        {
            var cmd = DOpus.Create.Command();
            cmd.SetSourceTab(tab);
            cmd.AddFile(file);
            var cmdLine = "Select FROMSCRIPT SETFOCUS DESELECTNOMATCH";
            if (DOpus.Version.AtLeast("12.22.3"))
            {
                cmdLine += " IGNORECHECKBOXMODE";
            }
            cmd.RunCommand(cmdLine);
        }
        return;
    }
    if (viewerEventData.event == "destroy")
    {
        mapPaths.erase(viewer);
        return;
    }
}
function TabContainsFile(tab, item)
{
    // Workaround to avoid error if no valid file is passed.
    if (typeof tab  == "undefined"
    ||  typeof item == "undefined")
    {
        return false;
    }
    // Simple test is usually enough. Is the tab showing the folder the file is in?
    // (It's possible the file is hidden, but that would be weird in this context, so we ignore that.)
    if (DOpus.FSUtil.ComparePath(DOpus.FSUtil.Resolve(tab.path), item.path))
    {
        return true;
    }
    // To work in collections, libraries and flat view, we need to go through the actual list of files.
    // This could be slow as we don't currently have a quicker way than looping through the files.
    var itemPathString = item + "";
    // It'll usually be a selected file if the viewer opened via double-click. Try them first.
    for (var eItems = new Enumerator(tab.selected_files); !eItems.atEnd(); eItems.moveNext())
    {
        // Compare the path strings, not the item objects.
        if ((eItems.item() + "") == itemPathString)
        {
            return true;
        }
    }
    for (var eItems = new Enumerator(tab.files); !eItems.atEnd(); eItems.moveNext())
    {
        // Compare the path strings, not the item objects.
        // Skip selected files as we already checked them.
        if (!eItems.item().selected && (eItems.item() + "") == itemPathString)
        {
            return true;
        }
    }
    return false;
}

tạo một cửa sổ popup để view ảnh
F0koCst.png
 
JavaScript:
function OnClick(data) {
    var tab = data.func.sourcetab;
    var count = tab.selstats.selfiles;

    // Define the dialog parameters
    var dlg = DOpus.Dlg;
    dlg.window = tab;
    dlg.message = "Number of selected files: " + count;
    dlg.title = "Selected Files Count";
    dlg.buttons = "OK";
   
    // Display the dialog
    dlg.Show();
}

code javascript để tạo button (count selected item and popup a dialog about count item)
uKaBagb.png
Bác ngâm cứu cái code CopyAsPath đi bác. E thấy cái đấy thiết thực hơn ạ ^^
 
xSAMeuMqtI.png
dopus_vEjjN5BW6a.png

1.Tạo một button mới
2.chọn edit button
3.click vào nút advance ở trong dưới cùng
4.chọn function là script function
5. với function copyaspath thì chọn vbscript
6.paste đoạn code hôm qua mình chia sẻ lên
7.debug bằng cách nhấn F5 để xem button có chạy không
6.bấm oke thoát ra là đã có một custom button với function là copyaspath
 

Attachments

  • dopus_vEjjN5BW6a.png
    dopus_vEjjN5BW6a.png
    212.6 KB · Views: 17

PixelFlasher là một bộ công cụ hỗ trợ cho các bác vọc custom rom (rom cook) trên điện thoại android
(Ban đầu công cụ này chỉ hỗ trợ cho các dòng máy google pixel nhưng về sau cũng hỗ trợ cho các dòng máy android khác (ít tính năng hơn))
 
Back
Top