الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]إنشاء Shortcut

مغلق
بدأه egy_soft في 16 يناير 2005 · 2 رد · 829 مشاهدة · في أرشيف قسم Windows APIs
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

لقد بحثت كثيراً على طريقة إنشاء Shortcut و ذلك من خلال التعامل مع API

و DLL التى حصلت عليها تخص VB6 و لم يوفقنى الحظ على إجاد طريقة التعامل مع API الوندوز

فإذا كان هناك من يمتلك طريقة التعامل مع API الوندوز فأرجوا أن يسعفنى بها سريعاً

شكراً

أحمد

#2

هذة الطريقة المستخدمة في برامج Win32

عرف في بداية الكود

#ifndef _SHLOBJ_H_
	#include <shlobj.h> //for Shell Interface
#endif

وهذة الدالة

bool CreateShortCut(LPCSTR lpszSourceFile,
    LPCSTR lpszDestination, 
    LPCSTR lpszDesc) 
{ 
    HRESULT  hResult    = NULL; 
    IShellLink* pShellLink = NULL; 
	bool  rc     = false;

	hResult = CoInitialize(NULL);
    // Initialize the IShellLink interface. 
    
	hResult = CoCreateInstance(CLSID_ShellLink, NULL, 
        CLSCTX_INPROC_SERVER, IID_IShellLink, (void**) &pShellLink); 
	// Get a pointer to the IShellLink Interface

    if (SUCCEEDED(hResult)) 
	{ 
        IPersistFile* ppf = NULL; 

        pShellLink->SetPath(lpszSourceFile); 
        // Set the path to the shortcut target
        
  hResult = pShellLink->SetDescription(lpszDesc); 
  // Add Description

        hResult = pShellLink->QueryInterface(IID_IPersistFile, (void**) &ppf); 
  // Query IShellLink for the IPersistFile interface for saving the 
        // shortcut in persistent storage. 
       

        if (SUCCEEDED(hResult)) 
  { 
            WORD wszWideString[MAX_PATH]; 

            // Ensure that the string is ANSI. 
            MultiByteToWideChar(CP_ACP, 0, lpszDestination, -1,
        wszWideString, MAX_PATH); 

            hResult = ppf->Save(wszWideString, TRUE); 
            // Save the link by calling IPersistFile::Save. 
            
 	 ppf->Release(); 
 	 rc = true;
        } 
        pShellLink->Release(); 
  CoUninitialize();
  // Clean up
    } 
	return rc; 
}

وهذة طريقة الإستخدام

CreateShortCut("d:\\pro.exe",".lnk","Shortcut at Desktop");

وبالتوفيق ,,,

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#3

شكراً أخى العزيز jass

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…