ListView怎么才能让指定的item disable和enable呢?

heaven2358 2011-09-16 05:07:27
在adapter里面实现了isEnabled和areAllItemsEnabled函数,可以把部分item disable掉,但是不知道怎么再enable回来,试了很多方法都不行,听说是因为这两个函数实现了之后,被disable的item在系统中就被当做 separator item 处理了。。

有没有大牛知道怎么把这些disable的item重新enable呢?

后来换了一种思路,在getView里面让相应的convertView.setEnable(false),但是这样虽然可以灰化item项,却并不能真正disable掉item,item还会响应onItemClick事件。。

各位大牛,有没有什么办法解决小弟的问题啊,急啊
...全文
839 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kengzcn1123 2011-09-21
  • 打赏
  • 举报
回复
我也被困扰着。。。
小裴同学 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 heaven2358 的回复:]

引用 4 楼 justchenjie 的回复:

convertView.setOnclickListener(null);只能你自己再试试了


这种方法太丑陋了啊,android难道没有提供单个item禁用/不禁用的方法吗?
[/Quote]
你可以选择重写一下listview哈哈,还有就是可以用preference来实现,而且preference比listview管理数据容易很多。preference就给你提供的每个item禁用/不禁用的。
heaven2358 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 justchenjie 的回复:]

convertView.setOnclickListener(null);只能你自己再试试了
[/Quote]

这种方法太丑陋了啊,android难道没有提供单个item禁用/不禁用的方法吗?
heaven2358 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 justchenjie 的回复:]

在ListView的setOnItemClickListener中根据行做判断吧
[/Quote]

我想在就是用的这种方法,判断点击的item的isEnable值,但这样没有从本质解决问题,难道android就没有提供一种直接对item设置enable和disable的方法吗??
heaven2358 2011-09-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 justchenjie 的回复:]
我来回答吧
可以的,你要覆写Adapter的getView方法,其中convertView的setClickable方法
[/Quote]

不行啊,我用的是arrayAdapter,getView的代码如下:
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
try {
String item = this.getItem(position);

if (convertView == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.main_item, null);
TextView itemNameTextView=(TextView) convertView.findViewById(R.id.main_item_text);
ImageView imgviewLeft=(ImageView) convertView.findViewById(R.id.main_item_icon_end);
itemNameTextView.setText(item);
if(item.equals("退出")){
imgviewLeft.setVisibility(View.GONE);
}
if(item.equals("读取优化配置文件")){
itemNameTextView.setEnabled(false);
itemNameTextView.setClickable(false);
convertView.setEnabled(false);
convertView.setClickable(false);
}
if(item.equals("优选网络上网")){
convertView.setEnabled(false);
//convertView.setFocusable(false);
}
convertView.setTag(item);
}

} catch (Exception ex) {
Log.e("Hme", "getView", ex);
}
return convertView;
}
wyx100 2011-09-19
  • 打赏
  • 举报
回复
覆写Adapter的getView方法,其中convertView的setClickable方
leidetianshiyj 2011-09-19
  • 打赏
  • 举报
回复
//显示listView的内容:
listView.setVisibility(View.VISIBLE);
//不显示listView的内容:
listView.setVisibility(View.GONE);
justchenjie 2011-09-19
  • 打赏
  • 举报
回复
在ListView的setOnItemClickListener中根据行做判断吧
justchenjie 2011-09-19
  • 打赏
  • 举报
回复
convertView.setOnclickListener(null);只能你自己再试试了
justchenjie 2011-09-18
  • 打赏
  • 举报
回复
我来回答吧
可以的,你要覆写Adapter的getView方法,其中convertView的setClickable方法
heaven2358 2011-09-18
  • 打赏
  • 举报
回复
怎么没有人回答啊,大牛们帮帮忙啊,小弟刚学android,好多不明白的地方啊
package com.youxiachai.onexlistview; import me.maxwin.view.IXListViewLoadMore; import me.maxwin.view.IXListViewRefreshListener; import me.maxwin.view.IXScrollListener; import me.maxwin.view.XListViewFooter; import me.maxwin.view.XListViewHeader; import android.content.Context; import android.os.Handler; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.view.animation.DecelerateInterpolator; import android.widget.ListAdapter; import android.widget.RelativeLayout; import android.widget.Scroller; import android.widget.TextView; import com.huewu.pla.lib.MultiColumnListView; import com.huewu.pla.lib.internal.PLA_AbsListView; import com.huewu.pla.lib.internal.PLA_AbsListView.OnScrollListener; /** * @author youxiachai * @date 2013-5-3 */ public class XMultiColumnListView extends MultiColumnListView implements OnScrollListener { protected float mLastY = -1; // save event y protected Scroller mScroller; // used for scroll back protected OnScrollListener mScrollListener; // user's scroll listener // the interface to trigger refresh and load more. protected IXListViewLoadMore mLoadMore; protected IXListViewRefreshListener mOnRefresh; // -- header view protected XListViewHeader mHeaderView; // header view content, use it to calculate the Header's height. And hide it // when disable pull refresh. protected RelativeLayout mHeaderViewContent; protected TextView mHeaderTimeView; protected int mHeaderViewHeight; // header view's height protected boolean mEnablePullRefresh = true; protected boolean mPullRefreshing = false; // is refreashing. // -- footer view protected XListViewFooter mFooterView; protected boolean mEnablePullLoad; protected boolean mPullLoading; protected boolean mIsFooterReady = false; // total list items, used to detect is at the bottom of listview. protected int mTotalItemCount; // for mScroller, scroll back from header or footer. protected int mScrollBack; protected final static int SCROLLBACK_HEADER = 0; protected final static int SCROLLBACK_FOOTER = 1; protected final static int SCROLL_DURATION = 400; // scroll back duration protected final static int PULL_LOAD_MORE_DELTA = 50; // when pull up >= // 50px // at bottom, // trigger // load more. protected final static float OFFSET_RADIO = 1.8f; // support iOS like pull // feature. public XMultiColumnListView(Context context) { super(context); initWithContext(context); } public XMultiColumnListView(Context context, AttributeSet attrs) { super(context, attrs); initWithContext(context); } public XMultiColumnListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initWithContext(context); } protected void initWithContext(Context context) { mScroller = new Scroller(context, new DecelerateInterpolator()); // XListView need the scroll event, and it will dispatch the event to // user's listener (as a proxy). super.setOnScrollListener(this); // init header view mHeaderView = new XListViewHeader(context); mHeaderViewContent = (RelativeLayout) mHeaderView .findViewById(R.id.xlistview_header_content); mHeaderTimeView = (TextView) mHeaderView .findViewById(R.id.xlistview_header_time); addHeaderView(mHeaderView); // init footer view mFooterView = new XListViewFooter(context); // init header height mHeaderView.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mHeaderViewHeight = mHeaderViewContent.getHeight(); getViewTreeObserver() .removeGlobalOnLayoutListener(this); } }); // 默认关闭所有操作 disablePullLoad(); disablePullRefreash(); // setPullRefreshEnable(mEnablePullRefresh); // setPullLoadEnable(mEnablePullLoad); } public void updateHeaderHeight(float delta) { mHeaderView.setVisiableHeight((int) delta + mHeaderView.getVisiableHeight()); if (mEnablePullRefresh && !mPullRefreshing) { // 未处于刷新状态,更新箭头 if (mHeaderView.getVisiableHeight() > mHeaderViewHeight) { mHeaderView.setState(XListViewHeader.STATE_READY); } else { mHeaderView.setState(XListViewHeader.STATE_NORMAL); } } setSelection(0); // scroll to top each time } protected void invokeOnScrolling() { if (mScrollListener instanceof IXScrollListener) { IXScrollListener l = (IXScrollListener) mScrollListener; l.onXScrolling(this); } } protected void startLoadMore() { if (mEnablePullLoad && mFooterView.getBottomMargin() > PULL_LOAD_MORE_DELTA && !mPullLoading) { mPullLoading = true; mFooterView.setState(XListViewFooter.STATE_LOADING); if (mLoadMore != null) { mLoadMore.onLoadMore(); } } } protected void resetFooterHeight() { int bottomMargin = mFooterView.getBottomMargin(); if (bottomMargin > 0) { mScrollBack = SCROLLBACK_FOOTER; mScroller.startScroll(0, bottomMargin, 0, -bottomMargin, SCROLL_DURATION); invalidate(); } } protected void updateFooterHeight(float delta) { int height = mFooterView.getBottomMargin() + (int) delta; if (mEnablePullLoad && !mPullLoading) { if (height > PULL_LOAD_MORE_DELTA) { // height enough to invoke load // more. mFooterView.setState(XListViewFooter.STATE_READY); } else { mFooterView.setState(XListViewFooter.STATE_NORMAL); } } mFooterView.setBottomMargin(height); // setSelection(mTotalItemCount - 1); // scroll to bottom } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); // make sure XListViewFooter is the last footer view, and only add once. if (mIsFooterReady == false) { // if not inflate screen ,footerview not add if(getAdapter() != null){ if (getLastVisiblePosition() != (getAdapter().getCount() - 1)) { mIsFooterReady = true; addFooterView(mFooterView); } } } } /** * reset header view's height. */ public void resetHeaderHeight() { int height = mHeaderView.getVisiableHeight(); if (height == 0) // not visible. return; // refreshing and header isn't shown fully. do nothing. if (mPullRefreshing && height <= mHeaderViewHeight) { return; } int finalHeight = 0; // default: scroll back to dismiss header. // is refreshing, just scroll back to show all the header. if (mPullRefreshing && height > mHeaderViewHeight) { finalHeight = mHeaderViewHeight; } Log.d("xlistview", "resetHeaderHeight-->" + (finalHeight - height)); mScrollBack = SCROLLBACK_HEADER; mScroller.startScroll(0, height, 0, finalHeight - height, SCROLL_DURATION); // trigger computeScroll invalidate(); } /* * 神奇的bug.... */ @Override public void setAdapter(ListAdapter adapter) { super.setAdapter(adapter); //莫名其妙的bug.... //updateHeaderHeight(10); postDelayed(new Runnable() { @Override public void run() { // resetHeaderHeight(); mScroller.startScroll(0, 0, 0, 0, SCROLL_DURATION); // // trigger computeScroll invalidate(); } }, 100); } /** * enable or disable pull down refresh feature. * * @param enable */ public void setPullRefreshEnable(IXListViewRefreshListener refreshListener) { mEnablePullRefresh = true; mHeaderViewContent.setVisibility(View.VISIBLE); this.mOnRefresh = refreshListener; } public void disablePullRefreash() { mEnablePullRefresh = false; // disable, hide the content mHeaderViewContent.setVisibility(View.INVISIBLE); } /** * enable or disable pull up load more feature. * * @param enable */ public void setPullLoadEnable(IXListViewLoadMore loadMoreListener) { mEnablePullLoad = true; this.mLoadMore = loadMoreListener; mPullLoading = false; mFooterView.show(); mFooterView.setState(XListViewFooter.STATE_NORMAL); // both "pull up" and "click" will invoke load more. mFooterView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startLoadMore(); } }); } public void disablePullLoad() { mEnablePullLoad = false; mFooterView.hide(); mFooterView.setOnClickListener(null); } /** * set last refresh time * * @param time */ public void setRefreshTime(String time) { mHeaderTimeView.setText(time); } /** * stop refresh, reset header view. */ public void stopRefresh(String time) { if (mPullRefreshing == true) { mPullRefreshing = false; mHeaderTimeView.setText(time); resetHeaderHeight(); } } /** * stop load more, reset footer view. */ public void stopLoadMore() { if (mPullLoading == true) { mPullLoading = false; mFooterView.setState(XListViewFooter.STATE_NORMAL); } } @Override public void computeScroll() { if (mScroller.computeScrollOffset()) { if (mScrollBack == SCROLLBACK_HEADER) { mHeaderView.setVisiableHeight(mScroller.getCurrY()); } else { mFooterView.setBottomMargin(mScroller.getCurrY()); } postInvalidate(); invokeOnScrolling(); } super.computeScroll(); } @Override public boolean onTouchEvent(MotionEvent ev) { if (mLastY == -1) { mLastY = ev.getRawY(); } switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: mLastY = ev.getRawY(); break; case MotionEvent.ACTION_MOVE: final float deltaY = ev.getRawY() - mLastY; mLastY = ev.getRawY(); Log.d("xlistview", "getFirstVisiblePosition()-->" + getFirstVisiblePosition() + "getVisiableHeight()" + mHeaderView.getVisiableHeight() + "deltaY->" + deltaY); if (getFirstVisiblePosition() == 0 && (mHeaderView.getVisiableHeight() > 0 || deltaY > 0) && !mPullRefreshing) { // the first item is showing, header has shown or pull down. if(mEnablePullRefresh){ updateHeaderHeight(deltaY / OFFSET_RADIO); invokeOnScrolling(); } } else if (getLastVisiblePosition() == mTotalItemCount - 1 && (mFooterView.getBottomMargin() > 0 || deltaY < 0) && !mPullLoading) { // last item, already pulled up or want to pull up. if(mEnablePullLoad){ updateFooterHeight(-deltaY / OFFSET_RADIO); } } break; default: mLastY = -1; // reset if (getFirstVisiblePosition() == 0) { // invoke refresh startOnRefresh(); resetHeaderHeight(); } else if (getLastVisiblePosition() == mTotalItemCount - 1) { // invoke load more. startLoadMore(); resetFooterHeight(); } break; } return super.onTouchEvent(ev); } protected void startOnRefresh() { if (mEnablePullRefresh && mHeaderView.getVisiableHeight() > mHeaderViewHeight && !mPullRefreshing) { mPullRefreshing = true; mHeaderView.setState(XListViewHeader.STATE_REFRESHING); if (mOnRefresh != null) { mOnRefresh.onRefresh(); } } } @Override public void onScrollStateChanged(PLA_AbsListView view, int scrollState) { if (mScrollListener != null) { mScrollListener.onScrollStateChanged(view, scrollState); } } @Override public void onScroll(PLA_AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // send to user's listener mTotalItemCount = totalItemCount; if (mScrollListener != null) { mScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); } } @Override public void setOnScrollListener(OnScrollListener l) { mScrollListener = l; } }
启点CE过NP中文December 24 2018:Cheat Engine 6.8.2 Released: Here's a new version for the hollidays. Mainly minor improvements and some small bugfixes, but also a new 'ultimap like' feature called Code Filter for which you don't need any special hardware for. (Just an extensive list of addresses) Download: Cheat Engine 6.8.2 Fixes: Disassembler: Several disassembler instructions had a comma too many or too few ,fixed those Disassembler: Fixed the description for ret # Disassembler/Debug: Fixed the address that is being edited when a breakpoint hits while editing an instruction Assembler: Fixed assembling reg*2/4/8+unquotedsymbol Plugin: Fixed the SDK for C plugins that use the disassembler callback Hotkeys: Fixed the attach to foreground hotkey Memory Scan: Fixed the percentage scan Memory Scan: Fixed a rare situation that could cause an error Memory Scan: Simple values now works with groupscan Memory Scan Lua: Scanfiles now also get deleted if the memory scan object is freed before the scan is fully done Fill Memory: Now allows 64-bit addresses Structure Dissect: Fixed the popupmenu "change type" so it now affects all selected entries instead of just the first PointerOrPointee window: Fix the debug pointer or pointee window button text when using access instead of writes GUI: Fixed and restored the DPI Aware option in setting GUI: Some DPI fixes/adjustments here and there Graphical Memory view: Fixed DPI issues Symbolhandler: When the symbolhandler now waits till it's done, it won't wait for the structures to be parsed anymore Additions and Changes: Lua Engine: Added autocomplete DLL injection: On DLL injection failure CE tries to fall back on forced injection methods Assembler: Added multibyte NOP Plugins: Plugins can now have side dll's that are statically linked in their own folder (Windows 7 with updates and later) Debugging: Improved the FPU window editing when single stepping, allowing you to change the FPU registers Debugging: Threadview now updates when single stepping and cnanges made there will affect the currently debugged thread (before it didn't) Debugging: Added Code Filter. This lets you filter out code based on if it has been executed or not (Uses software breakpoints) Debugging: Added an option to chose if you wish to break on unexpected breakpoints, and if CE should break on unexpected breakpoints, or only on specified regions (like AA scripts) Disassembler: The comments now show multiple parameters Pointerscan: Add option to allow negative offset scanning Pointerscan: Add extra types to the display Advanced Options/CodeList: Now uses symbolnames Tutorial Game: Added a levelskip option when you've solved a step Tutorial Game: Added a secondary test Compare memory: Added a limit to the number of address values shown per row (can be changed) Address List: When the option to deactivate children is set, the children will get deactivated first Memory Scan: Add a lua script in autorun that lets you specify which module to scan Lua: ExecuteCodeEx(Let's you execute code in the target and pass parameters) Added 2 new parameters to getNameFromAddress (ModuleNames and Symbols) Added addModule and deleteModule to the symbollist class Added the ModuleLoader class which can force load dll's Fixed endUpdate for the listview Thanks go out to SER[G]ANT for updating the russion translation files already June 23 2018:Cheat Engine 6.8.1 Released: Apparently 6.8 contained a couple of annoying bugs, so here's an update that should hopefully resolve most issues. Also a few new features that can come handy Download: Cheat Engine 6.8.1 Fixes: Fixed several issues with the structure compare Fixed the commonality scanner from picking up unrelated registers for comparison Fixed speedhack hotkeys Fixed ultimap 1 Fixed a bunch of random access violations Fixed Lua dissectCode.getStringReferences now also returns the string Fixed Lua breakpoints that specify a specific function Fixed Lua toAddress when the 2nd parameter is an address Fixed assembling xmm,m32 Fixed issue when disassembling AVX instructions Fixed rightclicking r8-r9 in the registers window Fixed the plugin system for DBVM Fixed DBVM memory allocations when smaller than 4KB Additions and changes: Added translation strings for the all type settings You can now drop files into the auto assembler auto assembler commands allocnx (allocate no execute) and allocxo (allocate execute only) The memoryview windows's hexadecimalview now shows the allocationbase as well, and can be doubleclicked to go there Added support for mono dll's that do not export g_free Changed "make page writable" to multiple options Improved DBVM speed slightly Lua: added RemoteThread class object June 8 2018:Cheat Engine 6.8 Released: Cheat Engine 6.8 has been released. Lots of new features like structure compare, AVX disassembling support, lua functions, etc... Download: If you encounter bugs or have suggestions, please do not hesitate to report them in the forum, bugtracker or by e-mail. And if you have questions, don't hesitate to ask them in the forum Fixes: Fixed some more high dpi issues Fixed issues with the dropdown list in memory records Fixed pointer offset symbols not calculating properly Fixed registered binutils Fixed graphical issues with the tablist Fixed issue where memory blocks would get cut of before the page end Fixed some memory leaks Fixed some graphical issues in the addresslist Fixed rightclick on r8 and r9 in memoryview Fixed disassembling some instructions Fixed DBVM so it works on windows 1709 and later (tested on 1803) Fixed several DBVM offload crashes Fixed freeze with allow increase/decrease for 8 byte long values Fixed several issues where minimizing a window and then close it would hang CE Fixed file scanning Fixed crashes when editing memory in some some emulators Additions and changes: Text editor improvements Added hundreds of new cpu instructions Mono now has some new features like instancing of objects Mono instances window is now a treeview where you can see the fields and values "find what addresses this code accesses" can also be used on RET instructions now (useful to find callers) The graphical memory view now has a lot more options to set it just the way you need Codepage support in hexview structure data from PDB files can now be used, and are stored in a database for lookup later dissect structures form can now show a list of known structures (pdb, mono, ...) Added a "revert to saved scan" option (lets you undo changes) Added a "forgot scan" option (in case you forgot what you're doing) Pointerscan limit nodes is default on in a new ce install (remembers your choice when you disable it) Autoattach now happens using a thread instead of a gui blocking timer Some colorscheme enhancements Added a DBVM based "Find what writes/accesses" feature. (For pro users, enable kernelmode options for it to show) Changed the dissect data setup from seperate yes/no/value dialogs to a single window Added a bypass option for ultimap2 on windows 1709. When using ranges, do not use interrupts, or use DBVM Added find what writes/access to the foundlist Autoassembler scriptblocks are now grouped when written to memory Added {$try}/{$except} to auto assembler scripts Added an extra tutorial/practice target Added cut/copy/paste context menu items to pointer offset fields in add/change address, and added a context menu to the pointer destination Added an automated structure compare for two groups of addresses to find ways to distinguish between them lua: added automatic garbage collection and settings to configure it added new functions: gc_setPassive gc_setActive reinitializeSelfSymbolhandler registerStructureAndElementListCallback showSelectionList changed the getWindowlist output MainForm.OnProcessOpened (better use this instead of onOpenProcess) enumStructureForms cpuid getHotkeyHandlerThread bunch of dbvm_ functions (needs dbvm capable cpu, and intel only atm) and more, including class methods and fields (read celua.txt) Minor patches: 06/08/2018: 6.8.0.4 - Fixed speedhack hotkey speed asignments and some commonalityscanner issues 06/09/2018: 6.8.0.5 - Fixed only when down speedhack option 06/10/2018: 6.8.0.6 - Fixed ultimap1 - Fixed ultimap2 on some systems - Fixed enableDRM() from crashing - Fixed one disassembler instruction Russian translation has been updated November 13 2017:Can't run Cheat Engine There is apparently some malware going around that blocks execution of Cheat Engine (Saying file missing, check filename, etc...) If you have been a victim of this then try this windows repair tool to fix your windows install: Download Repair Tool November 9 2017:Spanish(Latin) translation added Manuel Ibacache M. from Chile has provided us with spanish(Latin) translation files for Cheat Engine. They can be downloaded from the download section where you can find the other translation files, or right here June 7 2017:Cheat Engine 6.7 Released: Cheat Engine 6.7 has been released. New lua functions, GUI improvements, codepage scanning, several bugfixes and more(See below). Download: Cheat Engine 6.7 If you encounter bugs or have suggestions, please do not hesitate to report them in the forum, bugtracker, irc or by e-mail. And if you have questions, don't hesitate to ask them in the forum , irc Fixes: Fixed some DPI issues at some spots Fixed the "Not" scan for ALL "simple values" now also applies to the All type Fixed not adding the 0-terminator to strings when the option was set to add it Fixed ultimap hotkeys Fixed ultimap2 filtering Changing pointers in the change address dialog won't set/override global memrec and address anymore (local now) Fixed show as signed not working for custom types Fixed several issues with the structure spider Fixed 64-bit registers in the tracer getting truncated on doubleclick, and fix r8 to r15 Fixed copy/paste in the scanvalue Fixed kernelmode QueryMemoryRegions for windows build 1607 Fixed some disassembler errors Fixed lua command fullAccess Fixed text to speech if launched from a different thread Fixed clicking on checkboxes when the dpi is different Fixed the found code dialog count size Fixed mono freezing Cheat Engine when it crashes/freezes Additions and changes: Changed the processlist and added an Applications view similar to the taskmanager Small change to the tutorial first step wording Structure Dissect: Added RLE compression (by mgr.inz.player) and other things to improve filesize Structure Dissect: If setting a name, it will also be shown in the header The symbolhandler can now deal with complex pointer notations Added support for single-ToPA systems for ultimap2 Added some more spots where the history will be remebered in memoryview Memoryrecords with auto assembler scripts can now execute their code asynchronous (rightclick and set "Execute asynchronous") Kernelmode memory reading/writing is safer now Added an option to filter out readable paths in the pointerscan rescan Added "codePage" support Added font/display options to several places in CE Added a search/replace to the script editors You can now delete addresses and reset the count from "Find what addresses this code accesses" Added a statusbar to the hexview in memoryview Pointerscan for value scans now add the results to the overflow queue Opening a file and changing bytes do not change them to the file anymore (you need to explicitly save now) Added an option to the processlist to filter out system processes Added a system to let users sign their tables so you know you can trust their tables. Memory record dropdown lists can now reference those of others. USe as entry text: (memoryrecorddescription) Added an option to notify users of new versions of Cheat Engine lua: Custom Types can now be referenced from Lua Auto assembler lua sections now have access to "memrec" which is the memory record they get executed from. Can be nil stringToMD5String now support strings with a 0 byte in them autoAssemble() now also returns a disableInfo object as 2nd parameter. You can use this to disable a script added Action and Value properties to MemoryRecordHotkey objects added screenToClient and clientToScreen for Control objects added readSmallInteger and writeSmallInteger added enableDRM() added openFileAsProcess/saveOpenedFile added saveCurrentStateAsDesign for CEForm objects added disableWithoutExecute and disableAllWithoutExecute added OnCustomDraw* events to the listview added being/endUpdate for the Strings class added SQL support added color overrides to the disassembler text added OnPaint to the CustomControl class added autoAssembleCheck to syntax check an AA script fixed the addresslist returning nil for PopupMenu (while popupMenu did work) added an timeout option for pipes added some graphical options added some low level system functions Russian translation has been updated Chinese translation has been updated May 15 2017:Korean language files Thanks to Petrus Kim there are now Korean language files for Cheat Engine. You can get them here Just extract it to the language folder in the Cheat Engine installation folder and you'll be able to use it April 13 2017:Cheat Engine for Macintosh download For the Mac users under us there is now a mac version available for download. It's based on Cheat engine 6.2 but I will be upgrading it to 6.6 and later based on the feedback I get. Tip:if you have trouble opening processes: Reboot your Mac and hold CMD+R during boot to enter the recovery console. There open the terminal (using the top menu) and enter "csrutil disable" . Then reboot and you'll be able to open most processes (Youtube video by NewAgeSoldier in case it's not clear) October 6 2016:Cheat Engine 6.6 Released: Cheat Engine 6.6 has been released. It has several fixes, new scan functionality, gui changes/improvements, Ultimap 2, better hotkeys, more programming options, and more(See below). Download: Cheat Engine 6.6 If you encounter bugs or have suggestions, please do not hesitate to report them in the forum, bugtracker, irc or by e-mail. And if you have questions, don't hesitate to ask them in the forum or irc Fixes: Fixed saving of hotkey sounds Fixed the CF flag in the disassembler stepping mode Fixed Kernelmode VirtualQueryEx for Windows 10 build 14393 Fixed DBVM for Windows 10 build 14393 Fixed the shortest assembler instruction picking for some instructions Fixed a few bugs in the break and trace routine when you'd stop it while the thread still had a single step set Fixed several ansi to UTF8 incompatbilities that poped up between 6.5 and 6.5.1 Fixed the stackview not properly setting the color, and giving an error when trying to change a color Fixed the exe generator not adding both .sys files or the .sig files when using kernel functions Fixed some places of the disassembler where it helps guessing if something is a float or not When using the code finder, it won't show the previous instruction anymore if it's on a REP MOVS* instruction Fixed an issue when editing memoryrecords with strings, where wordwrap would add newline characters Fixed D3D alpha channel for textures and fontmaps Fixed the helpfile not being searchable The installer will now mark the CE destination folder as accessible by APPS. (fixes speedhack for some APPS) Fixed the form designed crashing is resized 'wrong' Additions and changes: Ultimap 2 for Intel CPU's of generation 6 and later (no DBVM needed for those) Language select if you have multiple language files for CE Memoryrecord pointer offsets can use calculations, symbols and lua code now While stepping in the debugger you can now easily change the EIP/RIP register by pressing ctrl+f4 changed the way CE is brought to front when a hotkey is pressed Made the GUI more adaptive to different fontsizes and DPI Several font and minor GUI changes Added DPIAware and a font override to the settings window. (DPI aware is on by default, but can be turned of if experiencing issues) Added option to enable pause by default Disassembling mega jumps/calls now show the code in one line The standalone auto assembler window will now give an option to go to the first allocated memory address Changed the point where the settings are loaded in CE's startup sequence The formdesigner now allows copy and paste of multiple objects, and uses text Added scrollbox and radiogroup to the formdesigner Added Middle, MB4 and MB5 as allowable hotkeys Added controller keys as hotkeys Single stepping now shows an indication if an condition jump will be taken Added a watchlist to the debugger Added the 'align' assembler pseudo command (allocates memory so the next line is aligned on a block of the required size) Added the 'Not' option for scans, which causes all addresses that match the given entry as invalid Changed the Unicode text to UTF-16. Text scans are now UTF8/UTF16 (no codepage) Hexview can now show and edit values in 3 different textencodings. (Ascii, UTF-8 and UTF-16) Rescan pointerscans on pointerscans that where done on a range can now change the offset lua: speak(): Text to speech hookWndProc: a function that lets you hook the windows message handler of a window registerEXETrainerFeature: Lets you add extra files to the exe trainer file packer getFileVersion(): A function to get version information from a file mouse_event() : Lets you send mouse events to windows. (move, click, etc...) loadFontFromStream() : Lets you load a font from a memory stream. (Useful for trainers that use a custom font) added several thread synchronization objects control class: added bringToFront and sendToBack lua changes: dbk_writesIgnoreWriteProtection() now also disables virtualprotectex calls from CE loadTable() can now also load from a Stream object. the addresslist has some Color properties published for better customization the LUA server has had some new commands added so hooked code can do more efficient calls. (LUAClient dll has been updated to use them in a basic way) Russian translation has been updated French tutorial only translation has been updated as well 10/10/2016:6.6.0.1: Fixed align May 19 2016:Cheat Engine 6.5.1 Released: 6.5.1 has been released. It's mainly a bugfix version to replace 6.5 which had a few minor bugs that needed solving. Download: Cheat Engine 6.5.1 Fixes: Fixed increased value by/decreased value by for float values Fixed disassembling/assembling some instructions (64-bit) Fixed the autoassembler tokenizing wrong words Fixed several bugs related to the structure dissect window (mainly shown when autodestroy was on) Fixed a small saving issue Groupscans now deal with alignment issues better Fixed java support for 32-bit Additions and changes: Signed with a sha256 signature as well (for OS'es that support it) Changed Ultimap to use an official way to get the perfmon interrupt instead of IDT hooking (less BSOD on win10 and 8) Individual hotkeys can now play sounds Now compiled with fpc 3.0/lazarus 1.6 (Previously 2.7/1.1) You can now search in the string list PEInfo now has a copy to clipboard Some places can now deal better with mistakes Lazarus .LFM files can now be loaded and saved lua: Fixed several incompatibilities between lua that popped up in 6.5 (due to the lua 5.1 to 5.3 change) Fixed the OnSelectionChange callback property in the memoryview object MemoryRecords now have an Collapsed property Added TCanResizeEvent to the splitter Fixed setBreakpoint not setting a proper trigger if not provided Fixed executeCode* parameter passing Fixed several memory leaks where unregistering hooks/addons didn't free the internal call object Some tableFile additions Fixed registerAssemble assembler commands Added kernelmode alloc and (un)mapping functionality Added an easy way to add auto assembler templates Added window related functions including sendMessage Added Xbox360 controller support functions Added more thread functions Post release fixes: Dealt with several gui issues like the mainform to front on modal dialogs, header resizing stuck with the cursor, treeview item selection/deletion being weird, etc... Added a disconnect to the client in pointerscans Fixed pointerscan issue with 32-bit aligned pointers in a 64-bit process Fixed a deadlock in threads when lua custom types where used Post release fixes: Dealt with several gui issues like the mainform to front on modal dialogs, header resizing stuck with the cursor, treeview item selection/deletion being weird, etc... Added a disconnect to the client in pointerscans fixed pointerscan issue with 32-bit aligned pointers in a 64-bit process Fixed a deadlock in threads when lua custom types where used Fixed pointerscan resume 6/1/2016: (major bugfix) properly fixed resume of pointerscans and alignment fix December 31 2015:Cheat Engine 6.5 Released: I'd like to announce the release of Cheat Engine 6.5 If you encounter bugs or have suggestions, please do not hesitate to report them in the forum, bugtracker, irc or by e-mail. And if you have questions, don't hesitate to ask them in the forum or irc Fixes: Fixed page exception breakpoints from not working Fixed the save as button in the lua script assigned to the table Fixed the dotnetdatacollector from not fetching parent fields Fixed disassembling of some instructions Fixed assembling some instructions Fixed assembling instructions that referenced address 80000000 to ffffffff in 64-bit targets Fixed dealing with unexpected breakpoints Fixed several issues with the network scanner. (symbols, scanspeed, threads, etc...) Fixed "going to" 64-bit registers. Fixed pointerstrings for 64-bit Fixed the addressparser in memview's hexview not handing static 64-bit addresses Fixed r8 and r9 looking broken in the memoryview window Fixed hotkeys that set a value as hexadecimal and the value is smaller than 0x10 Fixed multiline string editing for memory records Fixed dragging cheat tables into CE Fixed VEH debug for 'Modern' apps Fixed several translation issues lua: fixed getStructureCount, writeRegionToFile, readRegionFromFile, readInteger, ListColum.GetCount fixed memoryleak in MemoryStream Several fixes to DBVM: added support for Windows 10 support for more than 8 cpu's support for newer cpu's fixed issue where calling CPUID right after setting the TF flag wouldn't trigger a breakpoint after it Additions and changes: Array of Byte's can now deal with nibble's. (e.g: 9* *0 90 is now a valid input- and scanstring) The auto assembler can now deal with some mistakes like forgetting to declare a label Added support to use binutils as assembler and disassembler, and a special scripting language for it Added support for 64-bit mono, and script support for cases where mono.dll isn't called mono.dll Added an option to get a list of all recently accessed memory regions. This is useful for the pointerscanner The pointerscanner can now use multiple snapshots (pointermaps) to do a scan. This basically lets you do a rescan during the first scan, saving your harddisk Made the pointerscan network scanner a bit easier to use. You can now join and leave a pointerscan session You can now stop pointerscans and resume them at a later time Pointerscan files can get converted to and from sqlite database files The pointerscan configuration window now has an advanced and basic mode display The all type now has a setting that lets you define what under "all" falls Custom types now also have access to the address they're being used on Split up the "(de)activating this (de)activates children" into two seperate options (one for activate, one for deactivate) Added some basic Thumb disassembling The xmplayer has been replaced with mikmod which supports many different module types (in lua you still call it xmplayer) Rightlicking on "your system supports dbvm" will let you manually load DBVM for each cpu. This is usefull if for some reason your system crashes when it's done too quickly In "Find what addresses this instruction accesses" you can now open the structure dissect window of your choice in case there are others. It will also fill in the base address, so no need to recalculate yourself AA command GlobalAlloc now has an optional 3th parameter that lets you specify the prefered region Added an option to record and undo writes. (Off by default, can be enabled in settings. Memview ctrl+z will undo the last edit) Added aobscanregion(name,startaddress,stopaddress,aob) lua: switched from Lua 5.1 to 5.3 debug_setBreakpoint can now take an OnBreakpoint parameter that lets you set a specific function just for that breakpoint added dbk_getPhysicalAddress(int) added dbk_writesIgnoreWriteProtection(bool) added getWindowList() And a bunch of other lua functions. (check out main.lua) Post release fixes (max 7 days after initial release *or 30 if a HUGE bug): 1/6/2016:Fixed structure dissect from crashing when autodestroy is on 1/6/2016:Fixed window position loading on multi monitor systems 1/6/2016:Fixed the lua customtype and 1/6/2016:Several minor gui fixe
1 , vb5dialog.zipThis demonstrates how to subclass the Common Dialog Dialogs and manipulate a specific Dialog.2 , cpnl.zipForm_Taskbar is a control for Visual Basic which, once placed onto a form, makes the form act like the Taskbar (minus the Start Menu).3 , vbo_progbar.zipImplement a common control progress bar with added features that are not accessable using COMCTL32.OCX! 4 , vbo_infolabel.zipThis control adds a great user-friendly interface with and icon and "Hover" ability. Based on a control seen in ICQ. 5 , vbo_checkcombo.zipAdd a checkbox to a combo box and use it to enabled/disable the combo! or whatever you would like to do with it! 6 , vbo_controlframe.zipCreate your own system button such as a Maximize, Minimize, Close, and many others with ease! 7 , vbo_ctextbox.zipThis class makes using the Textbox or Edit class API simple. Easily set properties and access many features not available directly from VB. 8 , taskbar.zipForm_Taskbar is a control for Visual Basic which, once placed onto a form, makes the form act like the Taskbar (minus the Start Menu).9 , NT_Service.zipThis is an OCX that allows you to create an NT service application...add the control to your project and register it as a service!!10 , Scroller.zipThis is a Control Container, it's like a frame control but it lets you scroll the content up and down...11 , TrayArea.zipThis control lets you add your icon to the System Tray Area and handle some events such as MouseMove, MouseDown, MouseUp and DblClick.12 , Resizer.zipThis is a very useful control: It's a container control, you can insert two controls inside and then you'll have a vertical (or horizontal) resizer bar (like the Windows File Explorer). A resizer can contain another resizer... an so on. (you can divide you form in as many sizable sections as you want...).13 , Label3D.zipTh
1 , manc-skinex.zip
This is an example of how to add skins to your program.
2 , irregularForms.zip
This is a great example. It takes two images to shape the form, then blits the "face" onto the form also.
3 , noclose.zip
This demonstrates how to remove the "X" located on the top of your form, while keeping the maximize and minimize buttons visible.
4 , dos-menu.zip
This example shows how to change your applications menu apperance as in color and font.
5 , dos-iface.zip
This is an example of how to use skins in your program, and also using BitBlt for a great looking interface.
6 , sg_settings.zip
This demonstrates how to save information about your program in the registry of windows. Much more reliable than using INIs
7 , Menubmp.zip
This demonstrates how to add images to a menu.
8 , 3DBorders.zip
This bas lets you create 3D Borders on your form.
9 , manc-resize.zip
This is an example project I did to go with the Resize module below.
10 , resize.zip
When resizing your form, this bas will let you also resize the controls
11 , invisbas.zip
This is a bas that will make your form transparent but leave all of the controls visible.
12 , FormScroller.zip
This bas will let your form exit in diferant directions.
13 , appbar14.zip
This example demonstrates how to have your Application "merge" with windows like the taskbar does.
14 , winhole.zip
This example demonstrates how to put a hole in the center of a form.
15 , tileform.zip
This will tile a picture on the background of your form.
16 , radiomnu.zip
This demonstrates how to add radio buttons to your menus
17 , mnupics.zip
This will add pictures to a menu. This is an excellent example.
18 , savepos.zip
This will show you how to save and load the last recorded position of your form.
19 , shapeform.zip
This will change the shape of a sample form to pre-selected shapes.
20 , splash.zip
This demonstrates how to create a splash form for your program.
21 , menustat.zip
This shows how to display information about the menu item in a label.
22 , coolbar.zip
This is an example of how to make a toolbar like Office 97 in your VB Applications.
23 , showdrag.zip
This example shows how to show the windows contents while the window is being dragged.
24 , avb-gradient.zip
This bas is composed of 35 Differant Gradient Color Fades. It is meant to inhance Interface Design without spending a lot of time on solely the interface.
25 , avb-addressof.zip
An Example of Using the 'AddressOf' Operater in VB5 to Limit the Size that the User is Permitted to Resize your Form.
26 , windis.zip
This is a straight forward example of how to disable any Win95/98 window..
27 , tk421-api.zip
Demonstrates how to retrieve various information about specific windows
28 , InetPass.zip
This example demonstrates how to get windows' cached passwords.
"This example will show all of the cached passwords on a local system !"
29 , Toolbar1.zip
Label ToolBar. Quick set up, color option, curor change, good for beginners, small projects
30 , OpacityForm.zip
Opacity Form Effect
31 , MoveForm.zip
Moves a form around the screen just by dragging it.
32 , RoolingForm.zip
Creates a "rolling" form using SetWindowRgn API call.
33 , CoolEffectForm.zip
Cool effects form is a true resizable form. It also includes clickable labels that change color with the mouseover event. Fully commented too!
34 , menus.zip
If you wanna make a Menu that suports permissions by user and module with "No Access", "Read Only" and "Full Control" rights, you Found it!! Sory, but the examples are in Portuguese
35 , MDForm.zip
Demonstrates the creation of Master/Detail form using an RDO connection, also helps understand the object oriented programming concepts in VB
36 , DockDemo.zip
A form that docks to the edges of the desktop (and actually works), and takes the taskbar into consideration.
37 , transparentform.zip
Transparent Form with bitmap mask 1 line code for call this DLL
38 , region.zip
This application shows how to "skin a form" to the shape of any bitmap image. The code uses the CreateRectRgn API call to ignore transparent colors and create a form in the shape of the image. This sample uses an image of Homer Simpson
39 , DynaMenu.zip
Program shows how to dynamically create submenu items for both the menu and the popup at run time, and at the same time allowing for free switching between the normal and the columnized menus (and popups), and between menu (and popup) with added bitmaps and without. If the menu (and popup) length goes beyond the predetermined length, the code will automatically sectionalize the menu (and popup) according to the said predetermined length (i.e. as an interval value), and will provide Up and/or Dn graphics to enable navigation between the menu sections.
40 , CoolExplorer2.zip
The new and improved Cool Explorer: Many new functions.
41,JinieScreensaver.zip
A small VB program which is a screensaver using Microsoft Agent. Using the way in which this program works, you can also create a screensaver to run under any version of Windows.
42,wireframe.zip
A computer engineering student from Slovenia has put this together. Its a VB program with all source code and sample for creating a bspline / beziere curve / wireframe generator. Very good and fast code.
43,reaction.zip
A computer engineering student from Slovenia has put this together. Its a reaction-diffusion texture and if you understand all this graphical/mathematical stuff then its very good.
44,filedirector.zip
This is an application I wrote to work in conjunction with the "Windows Explorer / Send To" option. This app helps me to move files quicker that using the copy/paste feature. This project contains some API code from User32 for file moving and API code for registry work.
45,centerform.zip
This is a VB project that shows how to make the form centered on the screen. It also makes the form scroll of the screen and end. I have included A text file with the code for people who cant load vb6 projects and I have also included and .exe of the proj
46,starfield.zip
Two little projects included here. One does a starfield type scrolling - very good, and the second includes two small controls. The first is a hyperlink which will launch the default browser with a URL when click on (it looks just like a hyperlink
47,filesearch.zip
The find option off the Start menu in Windows allows you to amongst other things, find files on your computer that match particular patterns, or were created on/after a certain date. This project mimics this Windows function and searches directories look
48,gradientfill.zip
This little sample contains a routine that allows a picture box to be flood filled with a gradient and from a specified colour value. A box can be filled from left to right or from top to bottom. A very simple bit of code, but useful - if not used to exc
49,cmovemousecursor.zip
This little demo shows how you can move the mouse pointer to a different place on the screen, e.g. command button or other control. It uses a Windows API call but is really simple to understand. Enjoy!
50,ctray.zip
Another cracker by Jonathon. He described it as "to help anyone trying to progress to the next level of VB programming". The sample application includes how to use the Windows API for doing file operations, putting an application into the system tray
51,cwindowontop.zip
This little routine will, if included on the Form_Load event of a form, keep the form/window on top of all other on the desktop. It uses an API call, but the example has been put tidily into a subroutine. It would be essential bit of code for those appl
52,NewForm.zip
If you're bored with standard forms, u can try this one.
53,KrustyTime.zip
Krusty the Clown tells time, and months, and weeks, and days etc. A simple program that you can use for your desktop.
54,msgblast.zip
MsgBlaster.bas is standard VB6 module, which implements a generic framework for window subclassing. The main advantage of using MsgBlaster.bas (as opposed to third-party subclassing controls) is that it does not impose any additional runtime requirements.
55,spider.zip
See a spider is crawling on your form,enjoy it !
56,Dither2.zip
This application shows how to create a form with a fade out background.
57,LockOut.zip
This shows how to use the form keypress to record keystrokes. This program won't let you exit until you type "zx" in a row at any point. It must be in a sequence. There are many possible upgrades so you cannot Alt+Tab out etc.
58,rotate.zip
This example shows you how to create a circular form, and also track the mouse around the screen
59,tilebackground.zip
Tile a picture on the BG of a form.
60,GCBDemo.zip
Graphic control box demo with code. Demonstrates creating a control box using image controls, dragging a window using the API, pop-up menus, limiting form resize, centering controls and other good stuff.
61,Tabasic.zip
It`s a simple program in which you can write a Text, change its color and its font.
62,splitter.zip
This application demonstrates how to implement a splitter bar in a Visual Basic Project.
63,Tabasic_V1.0.1.zip
You can create a Text, change its color and its font, just like the fisrt Version of Tabasic. But now you can Save or Load the Text you have created.
64,formsize.zip
Application which sets form size restrictions. You can set Mix, Man, and fixed form sizes.
65,ProgressBar.zip
This program shows the progress of an action!!
66,TipOfDay.zip
Tip Of Day. It`s name speaks for itself.
67,msgbox.zip
This is a program that will allow to create message boxes easily and fast. it has an auto preview so when you type the text or whatnot it shows you.
68,FormShaper.zip
This is a DLL that make shaping your VB forms as esy as pie. Just call a few methods and that's it. You can have rectangles, rounded rectangles, ellipse, polygons and any combination of them.

69,EllipticForm.zip
An Elliptic form.
70,fancy.zip
Create a fancy colored form.
71,transperant.zip
Makes forms transperant.
72,FormEffect.zip
To illustrate some form effects: transparency and shapes. This code allows for free switching between normal and transparent states of the same form (and free toggling between transparency with frame and without frame), and shows shaped forms as well (rectangular form with rounded corners, oval form and round form).
73,radar.zip
Radar form.
74,click_game.zip
This is a simple program with some simple logics.check it out and rate it.I will be waiting for your responce through e-mail.
75,progressbar2.zip
A progressbar with a difference !
76,RoundSplash.zip
Splash Screen with an animated ROUND FORM.
77,resize2.zip
You know... Real resize function needs some information about what to do. It cannot be done without information. The program even doesn't know what I want until I give it!!!
78,oledesktop.zip
Ole Drag and Drop Example.
79,clsTDBGrid.zip
Are you using True DBgrid for your application? this class improve your speed of programming, with right-click feature, its all user-define style.
80,f_165.zip
How to create a directory tree like in Explorer(19KB)
81,f_183.zip
A program demonstrating the ListView control(7KB)
82,f_162.zip
An example program using the MS Comm control(14KB)
83,f_164.zip
An example program using the Toolbar control(3KB)
84,f_115.zip
A simple web browser built using the Web Browser control(2KB)
85,f_163.zip
How to enumerate the windows using the EnumWindows API(28KB)
86,f_159.zip
A simple example of exchanging data across a network using the WinSock control(4KB)
87,f_160.zip
A basic example on how to transfer files across the network using the WinSock Control(18KB)

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧