|
Which is broadly what I told him/her. However the OP has still not explained clearly what the problem is. Just saying "the file is visible" tells us nothing; a common problem on these forums.
|
|
|
|
|
trying to hide in windows explorer .
just as the third party software doing such as folder lock and hide folder 2009 ..
when we click hide after selecting the file or the folder it will not visible to the user ...
i tried with the CLSID which turn into special folder like recycle bin or control panel.by creating the batch file ....
|
|
|
|
|
|
download.cnet.com/Folder-Lock/3000-2092_4-10063343.html
check it this utility which does not make any system file just make invisible in the explorer from the user i dont know how he is doing once we hide the folder again it does not allow to create the same name of another folder please help me out from this ..............
i am not looking for the
configure the items Windows Explorer suppresses from the list from the Folder Options control panel. You can even choose to show Hidden items and “protected operating system files” (known internally as “Super-Hidden,” as if they had a giant H printed on their shirts).
i am already done this hiding the folder by changing its attribute like (+H,+S) by cmd prompt and by setting the properties of it ...
totally am not looking for this trying to make folder invisible from the user ....
please reply fast .....
thanking you sarfaraz
|
|
|
|
|
Thank you for the additional details, and explaination of what you have tried already.
While I can't be 100% certain, it appears that Folder Lock is software that runs on your machine all the time. It probably (but again I'm not certain) installs a file system filter that monitors access to files/folders it manages. It can then choose whether or not to show you the file/folder.
Here is more information on File System Filters:
File System Filter Driver Tutorial[^]
Now, the file/folder isn't truly hidden - it's just that a piece of software intercepts the access and blocks it. If the software isn't running, then the file is available to all.
If your requirement is to make a file hidden from view without software running all the time, then investigate the NTFS list permissions.
/* Charles Oppermann */
http://weblogs.asp.net/chuckop
|
|
|
|
|
thanks .....
still now i am not able what to study for this.
in which direction i has to go ...
i ll check it out.. because i am very new to this environment ie system side ....programing
once again thanks a lot ....
|
|
|
|
|
Hi!
I've done multi-language support for my application. It displays characters other than Chinese,Japanese and Korean. What to do display these characters? Is there any other way than installing the language packs? I don't want to install the language packs.
|
|
|
|
|
pix_programmer wrote: I don't want to install the language packs.
Why? If you need to display a certain language's characters then use the tools that are available. The alternative is to write your own character/font generator.
I must get a clever new signature for 2011.
|
|
|
|
|
Richard MacCutchan wrote: write your own character/font generator.
Will the installation of Fonts for these languages be suffice? I don't know which fonts needed for each of these languages(Chinese_Traditional,Chinese_Simplified,Korean and Japanese).
modified on Monday, March 21, 2011 5:34 AM
|
|
|
|
|
Here[^] are some links to Microsoft support for these character sets.
I must get a clever new signature for 2011.
|
|
|
|
|
My xp system is the English version. but it can support Chinese Japanese, Korean after install East-Asia language package of Microsoft.
|
|
|
|
|
The easiest way to handle this is to change the font to Aerial Unicode MS. This font is installed n all machines that have office or some office app, like Excel or Word. Its not a Guarantee for all machines. For the other you need to install some other Unicode font.
You can do this by Changing the font properties on the main dialog box.
|
|
|
|
|
i have function
<br />
void CShowHandlesOfProc::AddHandlesToList(CListCtrl *m_list,DWORD pid)<br />
{<br />
int nItem=0;<br />
NTSTATUS status;<br />
PSYSTEM_HANDLE_INFORMATION handleInfo=new SYSTEM_HANDLE_INFORMATION;<br />
ULONG handleInfoSize ;<br />
HANDLE processHandle;<br />
ULONG i;<br />
<br />
_NtQuerySystemInformation NtQuerySystemInformation = <br />
(_NtQuerySystemInformation)GetLibraryProcAddress("ntdll.dll", "NtQuerySystemInformation");<br />
<br />
_NtDuplicateObject NtDuplicateObject =<br />
(_NtDuplicateObject)GetLibraryProcAddress("ntdll.dll", "NtDuplicateObject");<br />
<br />
_NtQueryObject NtQueryObject =<br />
(_NtQueryObject)GetLibraryProcAddress("ntdll.dll", "NtQueryObject");<br />
<br />
if(!(processHandle = OpenProcess(PROCESS_DUP_HANDLE|PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,pid))) return;<br />
<br />
<br />
DWORD size=sizeof(SYSTEM_HANDLE_INFORMATION);<br />
DWORD needed=0;<br />
status = NtQuerySystemInformation(SystemHandleInformation,handleInfo,size,&needed);<br />
<br />
if(!NT_SUCCESS(status))<br />
{<br />
if(needed==0)<br />
return ;<br />
delete handleInfo;<br />
size = needed + 1024;<br />
handleInfo= (PSYSTEM_HANDLE_INFORMATION)new BYTE[size];<br />
status = NtQuerySystemInformation(SystemHandleInformation,handleInfo,size,&needed);<br />
<br />
if(status==STATUS_INFO_LENGTH_MISMATCH)<br />
MessageBox(L"Khong du Length cho NtQuerySystem");<br />
<br />
if(!NT_SUCCESS(status))<br />
{<br />
delete handleInfo;<br />
return;<br />
}<br />
}<br />
for(i = 0; i < handleInfo->HandleCount; i++)<br />
{<br />
SYSTEM_HANDLE handle = handleInfo->Handles[i];<br />
HANDLE dupHandle = NULL;<br />
POBJECT_TYPE_INFORMATION objectTypeInfo=new OBJECT_TYPE_INFORMATION;<br />
DWORD sizeType=0;<br />
PVOID objectNameInfo;<br />
UNICODE_STRING objectName;<br />
ULONG returnLength;<br />
<br />
if(handle.ProcessId != pid) continue;<br />
<br />
status=NtDuplicateObject(<br />
processHandle,<br />
(HANDLE)handle.Handle,<br />
GetCurrentProcess(),<br />
&dupHandle,<br />
0,<br />
0,<br />
0<br />
);<br />
<br />
DWORD neededType=0;<br />
<br />
sizeType=sizeof(OBJECT_TYPE_INFORMATION);<br />
<br />
status=NtQueryObject(dupHandle,ObjectTypeInformation,objectTypeInfo,sizeType,&neededType);<br />
<br />
if(status==STATUS_INFO_LENGTH_MISMATCH)<br />
{<br />
sizeType=neededType+1024;<br />
<br />
status=NtQueryObject(dupHandle,ObjectTypeInformation,objectTypeInfo,sizeType,&neededType);<br />
<br />
<br />
}<br />
<br />
if(!NT_SUCCESS(status))<br />
{<br />
<br />
continue;<br />
<br />
}<br />
<br />
if((handle.GrantedAccess >= 0x0012019f)<br />
&& (handle.GrantedAccess != 0x001a019f)<br />
&& (handle.GrantedAccess != 0x00120189)<br />
&& (handle.GrantedAccess != 0x00100000)<br />
&& (handle.GrantedAccess > 0x700a9e13));<br />
{<br />
MessageBox(objectTypeInfo->Name.Buffer);<br />
}<br />
<br />
<br />
}<br />
free(handleInfo);<br />
<br />
CloseHandle(processHandle);<br />
<br />
return;<br />
}<br />
i got typeName of handle..but when this function got some handle Type Name..have erro : out of memory
i dont know...someone help me?
this is my struct
<br />
#define NT_SUCCESS(x) ((x) >= 0)<br />
#define STATUS_INFO_LENGTH_MISMATCH 0xc0000004<br />
<br />
#define SystemHandleInformation 16<br />
#define ObjectBasicInformation 0<br />
#define ObjectNameInformation 1<br />
#define ObjectTypeInformation 2<br />
<br />
typedef ULONG (NTAPI *_NtQuerySystemInformation)(<br />
ULONG SystemInformationClass,<br />
PVOID SystemInformation,<br />
ULONG SystemInformationLength,<br />
PULONG ReturnLength<br />
);<br />
typedef ULONG (NTAPI *_NtDuplicateObject)(<br />
HANDLE SourceProcessHandle,<br />
HANDLE SourceHandle,<br />
HANDLE TargetProcessHandle,<br />
PHANDLE TargetHandle,<br />
ACCESS_MASK DesiredAccess,<br />
ULONG Attributes,<br />
ULONG Options<br />
);<br />
typedef ULONG (NTAPI *_NtQueryObject)(<br />
HANDLE ObjectHandle,<br />
ULONG ObjectInformationClass,<br />
PVOID ObjectInformation,<br />
ULONG ObjectInformationLength,<br />
PULONG ReturnLength<br />
);<br />
<br />
typedef struct _UNICODE_STRING<br />
{<br />
USHORT Length;<br />
USHORT MaximumLength;<br />
PWSTR Buffer;<br />
} UNICODE_STRING, *PUNICODE_STRING;<br />
<br />
typedef struct _SYSTEM_HANDLE<br />
{<br />
ULONG ProcessId;<br />
BYTE ObjectTypeNumber;<br />
BYTE Flags;<br />
USHORT Handle;<br />
PVOID Object;<br />
ACCESS_MASK GrantedAccess;<br />
} SYSTEM_HANDLE, *PSYSTEM_HANDLE;<br />
<br />
typedef struct _SYSTEM_HANDLE_INFORMATION<br />
{<br />
ULONG HandleCount;<br />
SYSTEM_HANDLE Handles[1];<br />
} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;<br />
<br />
typedef enum _POOL_TYPE<br />
{<br />
NonPagedPool,<br />
PagedPool,<br />
NonPagedPoolMustSucceed,<br />
DontUseThisType,<br />
NonPagedPoolCacheAligned,<br />
PagedPoolCacheAligned,<br />
NonPagedPoolCacheAlignedMustS<br />
} POOL_TYPE, *PPOOL_TYPE;<br />
<br />
typedef struct _OBJECT_TYPE_INFORMATION<br />
{<br />
UNICODE_STRING Name;<br />
ULONG TotalNumberOfObjects;<br />
ULONG TotalNumberOfHandles;<br />
ULONG TotalPagedPoolUsage;<br />
ULONG TotalNonPagedPoolUsage;<br />
ULONG TotalNamePoolUsage;<br />
ULONG TotalHandleTableUsage;<br />
ULONG HighWaterNumberOfObjects;<br />
ULONG HighWaterNumberOfHandles;<br />
ULONG HighWaterPagedPoolUsage;<br />
ULONG HighWaterNonPagedPoolUsage;<br />
ULONG HighWaterNamePoolUsage;<br />
ULONG HighWaterHandleTableUsage;<br />
ULONG InvalidAttributes;<br />
GENERIC_MAPPING GenericMapping;<br />
ULONG ValidAccess;<br />
BOOLEAN SecurityRequired;<br />
BOOLEAN MaintainHandleCount;<br />
USHORT MaintainTypeList;<br />
POOL_TYPE PoolType;<br />
ULONG PagedPoolUsage;<br />
ULONG NonPagedPoolUsage;<br />
} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION;<br />
|
|
|
|
|
After this statement
status = NtQuerySystemInformation(SystemHandleInformation,handleInfo,size,&needed);
the count is
handleInfo->HandleCount=39337 Your code then goes on to examine each of the handles to check if it belongs to the PID. After finding 26 handles, your code crashes in malloc with ENOMEM . As far as I can tell, up until then the buffer objectTypeInfo->Name.Buffer contains valid strings. So the good news is, your code seems to be working.
Maybe you could search for the specific APIs you're using, and check if you're calling them correctly? It looks like you're not freeing some memory buffer.
|
|
|
|
|
i try free objectTypeInfo but still stack over flow..
can you help me?..
so hard to use this Undocument Api....
|
|
|
|
|
Send me your email address and I will email some code. Please send to hdietrich@gmail.com
|
|
|
|
|
i sent code for you...plz help me
thanks so much
|
|
|
|
|
.
Some Day I Will Prove MySelf :: GOLD
modified on Monday, March 21, 2011 2:13 PM
|
|
|
|
|
The source is included with MFC.....
Steve
|
|
|
|
|
The majority of MFC class methods have equivalents in Win32; check the documentation on MSDN for any extra parameters needed. The CDC and CBitmap objects would be replaced by HDC and HBITMAP handles. It is simply a matter of reading the documentation and modifying the code according to the correct rules.
I must get a clever new signature for 2011.
|
|
|
|
|
|
goldenrose9 wrote: but this code doesn't work at all.
May I suggest you try using your debugger to find out why.
I must get a clever new signature for 2011.
|
|
|
|
|
In your Height and Width functions, the first argument to GetObject should be a HBITMAP, not a BITMAP*.
Judging from your original post, the HBITMAP to use would be pOldBitmapImage. In the second post, you assign NULL to this, which is inconsistent with what you do in your original post; you'd want to get the HBITMAP from dcImage and put that in pOldBitmapImage.
modified 13-Sep-18 21:01pm.
|
|
|
|
|
|