File "exeiconinunix.bas"
Path: /exe2unix/exeiconinunix.bas
File size: 1.89 KB
MIME-type:
Charset: utf-8
#COMPILE EXE "exeiconinunix.exe"
#DIM ALL
#REGISTER NONE
#RESOURCE "exeiconinunix.pbr"
MACRO MyMsgBox(hd,m,t,st) = MessageBox(hd,m,t,st)
#INCLUDE ONCE "Win32Api.inc"
#INCLUDE ONCE "inc/exe2unix.inc"
'--------------------------------------------------------------------------------
FUNCTION PBMAIN
LOCAL src AS STRING
LOCAL png AS STRING
LOCAL lRes AS LONG
' Create exe icon in Unix dock and Unix file explorer
Me2Unix 0, 1 ' askConfirmation=%FALSE, showInAppMenu=%TRUE
' Are we under Linux?
IF NOT IsOnUnix() THEN
?"This program must be run under Unix.", _
%MB_ICONWARNING, EXE.NAME$
EXIT FUNCTION
END IF
' Select executable (if not provided as argument)
IF RIGHT$(LCASE$(TRIM$(COMMAND$,$DQ)), 4) = ".exe" THEN
src = COMMAND$
ELSE
DISPLAY OPENFILE 0, , , "Select file...", "", _
CHR$("Executable (*.exe)", 0, "*.exe", 0), _
"", "", %OFN_FILEMUSTEXIST OR %OFN_SHOWHELP OR _
%OFN_NONETWORKBUTTON OR %OFN_ENABLESIZING TO src
IF src = "" THEN EXIT FUNCTION ' canceled by user
END IF
' Extract exe icon and convert to png in ~/.local/share/icons
png = IcoStrip2Unix(src)
' Error extracting icon
IF RIGHT$(png,4) <> ".png" THEN
?"Error extracting icon from executable.", %MB_ICONWARNING, EXE.NAME$
EXIT FUNCTION
END IF
' Ask user confirmation
lRes = ?("Would you like to display " _
+ $DQ + PATHNAME$(NAMEX,src) + $DQ _
+ " icon in the Linux File Explorer ?" _
, %MB_ICONQUESTION + %MB_YESNO _
, EXE.NAME$)
IF lRes = %IDNO THEN EXIT FUNCTION
' Display exe icon in Nautilus
FileIco2Unix src, png
' Done!
?PATHNAME$(NAME, src) + " icon successfully set! "+$CR _
+"Hit F5 in Linux explorer to refresh." _
,%MB_ICONINFORMATION, EXE.NAME$
END FUNCTION
'--------------------------------------------------------------------------------