Menus e DLLs

Criar menus e barras de ferramentas? simples.. ruim é criar os bitmaps dos botões, não é mesmo?
Mas pior que isso, é ver aquele monte de bitmaps na pasta do seu programa, totalmente desorganizados, então que tal colocar todos eles numa DLL?
É, com ele mesmo o ResHacker, se você já o tem, deve ter a tal dll vazia, mas se não a tem, baixe daqui.
Tá, você já viu um tutorial para fazer a dll, mas tenho certeza de que ele te mandava incluir um a um os bitmaps na dll, certo? Que tal uma rotininha básica pra listar os bitmaps de uma pasta qualquer e criar a dll automaticamente? ai vai: ver a rotina!!

;rotina para pegar uma pasta do HD:
(defun BrowseForFolder ( text / ret shell )
(
setq shell (vlax-get-or-create-object
“shell.application”))
(
if (setq ret (vlax-invoke shell “BrowseForFolder”  0 text 1))
(
setq ret (vlax-get (vlax-get ret “Self”) “Path”)))
(
vlax-release-object shell)
ret)

(defun c:makedllres (/ dir bat tmp dll scr dll_vazio reshacker)
(
setq
;configure aqui o caminho onde está a dll vazia:
dll_vazio “f:/resource kit hacker/dllvazio.dll”
;configure aqui o caminho do reshacker.exe:
reshacker “f:/resource kit hacker/reshacker.exe”)
  (if (setq dll (getfiled “Criar Dll” “” “dll” 1))
(
if (setq dir (browseforfolder “indique a pasta dos resources”))
(
progn
(setq dll (vl-string-translate “” “/” dll)
    src (vl-filename-mktemp “” dir “.scr”)
    bat (vl-filename-mktemp “” dir “.bat”)
    tmp (open src “w”)
    dir (vl-string-translate “” “/” dir))
(
vl-file-delete dll)
(
vl-file-copy dll_vazio dll)
(
write-line
(strcat “[FILENAMES]nExe=”” dll “”nSaveAs=”” dll “”nn[COMMANDS]”)
tmp)

(foreach x (vl-directory-files dir “*.bmp” 1)
    (
write-line
(strcat “-addoverwrite “” dir “/” x “”, bitmap, “ (vl-filename-base x) “,”)
tmp))
(
close tmp)
(
setq tmp (open bat “w”))
(
write-line
(strcat “”” reshacker “” -script “” src “”ndel “”src “”ndel “” bat “”n”)
tmp)
(
close tmp)
(
startapp bat))))
(princ))


Pegou a rotina? então salve ela em algum lugar, mas tome o cuidado de alterar as linhas onde estão configurados os caminhos para a dll vazia e para o reshacker

Deixe um comentário

Carrinho de compras
Rolar para cima