PDA

View Full Version : سوال: کنترل ایکون های دسکتاپ



hi.alir
جمعه 22 مرداد 1389, 23:14 عصر
چطوری می تونم آیکون های دستکاپ رو کنترل کنم؟

مثلا ببینم چه آیکون هایی تو دستکاپ هست.
کدوم ها Shortcut هستند. کدوم ها فایل معمولی. کدوم ها فولدر.
فلان shortcut روی دستکاپ به کجا اشاره می کنه؟
تغییر مکان آیکون های دسکتاپ.
حذف فلان آیکون از دسکتاپ.
اضافه کردن آیکون به دستکاپ.
تغییر اندازه آیکون ها
و .....

khafan_bat
جمعه 22 مرداد 1389, 23:52 عصر
یک راهش اینه که با استفاده از توابع API درایوی که توش ویندوز نصب هست رو پیدا کنی مثله درایو سی یا دی یا . .

بعد فایل های موجود در آدرس زیر رو لیست کنی

X:\Documents and Settings\Username\Desktop

x درایوی هست که ویندوز توش نصبه !
username هم نام کاربر فعلی هست. چو.ن ممکنه سیستم چند تا کاربر و در نتیجه چند تا دستکتاپ داشته باشه ، پس باید نام کاربر فعلی رو هم توسط توابع API بدست بیاری


حال بر اساس پسوند فایل ها ی موجود در این دایرکتوری تصمیم گیری های خودت رو انجام بده

نکته : shortcut ها هم در واقع یک فایل هستند ، بلی . فایل هایی که پسوند lnk دارند.

البته این روش فقط برای سیستم ویندوز قابل اجراست. این چیزی بود که به ذهن من رسید . دوستان روش دیگه ای دارند خوشحال میشم یاد بگیرم

hi.alir
جمعه 22 مرداد 1389, 23:59 عصر
در مورد باقی کار ها چی؟

MaHyaR.DrAcOulA
شنبه 23 مرداد 1389, 09:58 صبح
این برنامه ای که Negative_Se7en داد همه رو پیدا میکنه حتی شما میتونی بعد از اجرا از روی پسوند فایل ها تشخیص بدی که Shortcut هست یا خیر

#include <windows.h>
#include <iostream>
#include <stdio.h>

using namespace std;

int main (void)
{
WIN32_FIND_DATA FindData;
HANDLE hFind;
unsigned long index = 0;

hFind = FindFirstFile("*.*",&FindData);

do
{
cout<<"#"<<index++<<endl;
cout<<"File Name : "<<FindData.cFileName<<endl;
cout<<"File Size : "<<FindData.nFileSizeLow<<endl;
cout<<"File Type : "<<((FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? "Directory" : "File")<<endl;
cout<<"------------------"<<endl;
}
while(FindNextFile(hFind,&FindData));

FindClose(hFind);
getchar();

return 0;
}
ولی یه سوال در این مورد داشتم آیا میشه این فایل هایی که پیدا کرد رو انتقال داد به زیر شاخه ها(فولدرها)یا درایو های دیگه.
من تازه برنامه نویسی با سی ++ رو شروع کردم و همین امروز با دستور WIN32_FIND_DATA آشنا شدم اگه میشه در این جور مورد ها بهم کمک کنین تا برنامه نویسی حرفه ای رو یاد بگیرم
ممنونم از همگی

hoax3r
شنبه 23 مرداد 1389, 23:50 عصر
برای تغییر آیکون مثل مسیر و ... از IShellLink و IPersistFile میشه استفاده کرد

IShellLink


http://msdn.microsoft.com/en-us/library/bb774950(VS.85).aspx


IPersistFile


http://msdn.microsoft.com/en-us/library/ms687223(VS.85).aspx


یک مثال از نحوه استفاده


http://support.microsoft.com/kb/179904

fjm11100
دوشنبه 25 مرداد 1389, 15:03 عصر
شما فقط میتونی آیکونها را large یا small کنی چون نمایش آنها بر عهده explorer است و اونم یک Exe جدا است نمیشه توی کدش دخالت کرد!!!
میتونی Explorer مخصوص خودتو بنویسی که کوچیک بزرگ شه!
برای اجرای اکسپلورر اختصاصیتم هم میتونی اون را بجای explorer.exe در کلید Shell در آدرس زیر
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
در رجیستری بزاری
پیدا کردن آیکونها هم دوستان توضیح دادند
پیدا کردن مسیر shortcut ها هم با خوندن درون فایلهای lnk امکانپذیره

MaHyaR.DrAcOulA
دوشنبه 25 مرداد 1389, 18:12 عصر
یک مثال از نحوه استفاده


http://support.microsoft.com/kb/179904
[/QUOTE]

دوست عزیز
من از این مثال خواستم در ویژوال سی++ استفاده کنم Error داد.
نمیدونم برای اجرا این برنامه چه کنم؟

hi.alir
دوشنبه 25 مرداد 1389, 22:07 عصر
حالا شما هم هی بگید نمیشه.
من خودم قبلا برنامه ای دیده بودم که انواع کار ها رو روی آیکون های دسکتاپ انجام میداد. ولی نه اسم برنامه یادمه نه Open Source بود!