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!!
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)
(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)
(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))
(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