AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1330058
Accepted
Mario Palumbo
Mario Palumbo
Asked: 2021-04-09 02:36:01 +0800 CST2021-04-09 02:36:01 +0800 CST 2021-04-09 02:36:01 +0800 CST

Ubuntu 20.04 - WineHQ 6.0 - Criar atalho .lnk para um programa

  • 772

Este link: https://unix.stackexchange.com/questions/509360
Explica como adicionar um programa ao menu Wine:

wine winemenubuilder /path/to/link.lnk

Mas não tenho um arquivo .lnk para meu programa específico.
Como crio o arquivo .lnk?

20.04
  • 1 1 respostas
  • 533 Views

1 respostas

  • Voted
  1. Best Answer
    Mario Palumbo
    2021-04-13T04:09:38+08:002021-04-13T04:09:38+08:00

    Inventei a solução certa que garante uma compatibilidade perfeita com o vinho:

    lnk () {
        cat <<EOF > /tmp/shortcut.vbs
    Set FSO = CreateObject("Scripting.FileSystemObject")
    TargetPath = FSO.GetAbsolutePathName(WScript.Arguments(0))
    WorkingDirectory = FSO.GetParentFolderName(TargetPath)
    Set lnk = CreateObject("WScript.Shell").CreateShortcut(WScript.Arguments(1))
        lnk.TargetPath = TargetPath
        lnk.WorkingDirectory = WorkingDirectory
        lnk.Save
    EOF
        wine wscript '//B' 'Z:\tmp\shortcut.vbs' "$@" 2> /dev/null
        local exit_code=$?
        sync; rm -f /tmp/shortcut.vbs; sync
        return $exit_code
    }
    

    Consegui chamar a função de forma limpa:

    lnk 'C:\Program Files (x86)\Rufus\rufus.exe' 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Rufus.lnk'
    

    Esta é a função de instalação de um programa no meu caso:

    update_rufus () {
        local old_version="$(cat ~/'.wine/dosdevices/c:/Program Files (x86)/Rufus/version.txt' 2> /dev/null)"
        local link="$(wget -q 'https://api.github.com/repos/pbatard/rufus/releases/latest' -O - | grep '"browser_download_url":' | grep -o -m 1 -E '[^"]+/rufus-[0-9.]+\.exe')"
        wget -q "$link" -O rufus.exe
        local exit_code=$?
        if [[ $exit_code -eq 0 ]]; then
            mkdir -p ~/'.wine/drive_c/Program Files (x86)/Rufus'
            echo "$link" | perl -lpe 's|^.*/rufus-([0-9.]+)\.exe$|\1|' > ~/'.wine/drive_c/Program Files (x86)/Rufus/version.txt'
            mv rufus.exe ~/'.wine/drive_c/Program Files (x86)/Rufus'
            lnk 'C:\Program Files (x86)\Rufus\rufus.exe' 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Rufus.lnk'
            local new_version="$(cat ~/'.wine/dosdevices/c:/Program Files (x86)/Rufus/version.txt')"
            if [[ "$new_version" == "$old_version" ]]; then
                echo "Rufus is already the newest version ($new_version)."
            else
                echo "Rufus has been successfully updated ($new_version)."
            fi
        else
            echo 'An error has occurred.'
        fi
        return $exit_code
    }
    
    • 1

relate perguntas

  • Como posso configurar a resolução de domínio curinga local (127.0.0.1) em 18.04..20.04?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve