|
winhex的脚本,虽然功能强大,但其结构控制真让人恼火.比如条件语句不能嵌套,难以实现一些复杂的功能,即使实现,代码也比较繁琐,可读性不高!例如:
if(x==1){
if(y==1)
...
}
这样的结构在winhex脚本里无法实现,只能采用变通的方法实现.
想到winhex还支持API级的编程,研究一下,对于有编程知识的人来说,上手很快,但最后发现,自己对API进行编程,基本上无法超越winhex本身提供的功能!winhex的API能实现的功能,在其菜单上基本都已经实现了!如果非要说API的好处,那就是能够突破脚本在结构上的限制,API编程能够提高程序(脚本)的可读性和可维护性.
API编出的程序,其实就是一个高级脚本!
最后不得不提,用winhex API编出的程序, 在未安装winhex的电脑上不能运行!
附上函数定义
int __stdcall WHX_Init(int APIVersion = 1);
bool WINAPI WHX_Done();
bool WINAPI WHX_Open(LPCSTR lpResName);
bool WINAPI WHX_Create( LPCSTR lpPathName,int Size);
bool WINAPI WHX_Close();
bool WINAPI WHX_CloseAll();
bool WINAPI WHX_NextObj();
bool WINAPI WHX_Save();
bool WINAPI WHX_SaveAs( LPCSTR lpNewFileName);
bool WINAPI WHX_SaveAll();
bool WINAPI WHX_OpenEx(LPCSTR lpResName,int Param);
bool WINAPI WHX_Read(LPVOID lpBuffer,int Bytes);
bool WINAPI WHX_Write(LPVOID lpBuffer,int Bytes);
bool WINAPI WHX_GetSize(LPLONGLONG lpSize);
bool WINAPI WHX_Goto(LONGLONG Ofs);
bool WINAPI WHX_Move(LONGLONG Distance);
bool WINAPI WHX_CurrentPos(LPLONGLONG lpOfs);
bool WINAPI WHX_SetBlock(LONGLONG Ofs1,LONGLONG Ofs2);
bool WINAPI WHX_Copy();
bool WINAPI WHX_CopyIntoNewFile(LPCSTR lpNewFileName);
bool WINAPI WHX_Cut();
bool WINAPI WHX_Remove();
bool WINAPI WHX_Paste();
bool WINAPI WHX_WriteClipboard();
bool WINAPI WHX_Find(LPCSTR lpData,LPCSTR lpOptions);
bool WINAPI WHX_Replace(LPCSTR lpData1,LPCSTR lpData2,LPCSTR lpOptions);
bool WINAPI WHX_WasFound();
int WINAPI WHX_WasFoundEx();
bool WINAPI WHX_Convert(LPCSTR lpSrcFormat,LPCSTR lpDstFormat);
bool WINAPI WHX_Encrypt(LPCSTR lpKey,int Algorithm);
bool WINAPI WHX_Decrypt(LPCSTR lpKey,int Algorithm);
bool WINAPI WHX_GetCurObjName(LPCSTR lpObjName);
bool WINAPI WHX_SetFeedbackLevel( int Level);
bool WINAPI WHX_GetErrorMsg(LPCSTR lpErrorMsg);
bool WINAPI WHX_SetErrorMsg(LPCSTR lpErrorMsg);
bool WINAPI WHX_GetStatus(LPCSTR lpInstPath,LPLONG lpWHXVersion,LPLONG lpWHXSubVersion,
LPLONG lpReserved);
|
|