ПредишенСледващото

Къде в това меню се вземат бързи клавиши

Преди да се потопите в лабиринта на кодиране, помисли малко теоретична част и да се учат, където всичко се приема списък на клавишни комбинации са показани в "изпрати". По този начин, на точка от менюто "изпрати" представлява нормална папка на вашия профил (т.е. \ документ и settengs \\ SendTo).

И как да се направи красива

Да, копирате вашата кандидатура в тази папка - това е просто и едва ли изисква обяснение. Това е просто, за съжаление, това решение не може да се нарече красива. Защо? Все още работи! Да, тя работи, но същото може да бъде нокти чук, клещи чук може. Признай си, най-новите инструмент е по-удобно да го направя? Ние сме в точно същата ситуация. Или ще направи всичко гангстер (т.е. копирате програмата си в тази папка) или да спазват правилата.

Според правилата в тази папка трябва да се държат само на етикети. От всички изпълними файлове без глас и не може да бъде. Не знам, ако знаете как да създадете пряк път към програмата или не, но само за 15 минути можете просто да го научат!

Учене програма за създаване на клавишни комбинации, VR-онлайн - безплатно електронно списание за всички

Обява 1: Клас за бързо създаване на преки пътища

Обява 2: Case Study

Обявата 3: Пример обработка предавани параметри

Обява 4: Списък на всички възможни константи, които определят специални папки

Код оказа доста малък и трудно, не е нищо в него. Единственото нещо, което може да има проблеми - неизвестни функции. Това е за тях, сега обсъдим. Нека започнем с CreateComObject.

функция CreateComObject описано в ComObj модул. С него се създава обект клас, свързани с идентификатор на класа предава като параметър. В примера дам CLSID_ShellLink. CLSID_ShellLink - това е идентификатор на класа, която е нормална GUID. Говорейки по отношение на Делфи, изпишете идентификатор отговаря TGUID. Можете да отворите ShlObj модул и се опита да намери в нея текста на CLSID_ShellLink. Не е нужно време, за да карам на стойността на начина, по който да се намира нещо подобно на това в текста:

Ако функцията CreateComObject успее, той отговаря с позоваване на IUnknown интерфейс тип идентификатор. Надявам се да хвана общата идея. Ние напред.

След получаване на препратка към типа на интерфейса на IUnknown, ние се инициализира нашия тип променлива ISheellLink и IPersistFile. Обърнете внимание на името на типа на тези променливи започва с буквата I, т.е. Този тип е интерфейс. За да се доведе до IUnknown IShellLink използвам дизайн: IObject като IShellLink. Правейки тук "като"? Отворете всяка книга за Delphi и там, в частта, описваща нюансите на базите PLO тази декларация задължително споменати. Той прекъсва, за да се рови в помощта? След това, просто погледнете в думата "като" е представена в главата ", както". Т.е. конвенционално горната структура може да бъде, както следва: поеме IObject като IShellLink. Сега разбираш ли? Добре!

Всички необходими променливи се инициализират, сега за създаването на етикет. За да направите това, трябва да се работи с интерфейс IShellLink на това някои от неговите характеристики:

- SetPath - Пътят към приложението, за което е създаден на етикета. Тук можем да премине по пътя към нашето заявление, което се получава с помощта на функцията (ParamStr (0)).

- SetWorkingDirectory (); - Работна папка. Тук мисля, и така всичко трябва да е ясно. Работна папка получи традиционната ExtractFilePath ().

Следвайте горните функции, ние ще създадем скелета на етикета. Ние може да получи само по пътя на специалната папка (в нашия случай "Изпращане"). За да се реши този проблем, ние ще Ви помогнем две функции:

- SHGetSpecialFolderLocation - връща указател към ITEMIDLIST структура, съдържаща информация за специални папки. Тази функция може да отнеме три параметъра:
1). hWndOwner - zarezirvirovan.
2). nFolder - папка ID, пътят към който искаме да получим.
3). ppidl - указател към PItemIDList.

След функция, променлива InFolder (това се минава на втори параметър) ще намерят своето място в специална папка. За удобство, се откъсне пътя на променлива LINKNAME, предварително попълване използване на функцията формат. Знаейки пътя към системната папка (не забравяйте, в този случай "Изпращане") или, че ние не се намесва окончателно създадете пряк път. Това се прави с помощта на интерфейса на Save IPersistFile. Всички наши етикет е готов!

Опитайте се да стартирате пробата и производство на тест. Кликвайки върху един-единствен бутон, вие ще създадете пряк път в бутона "Изпрати". Cool? И преди всичко това е просто! За забавление, нашия клас прехвърля от другата папка идентификатор система (вж. Третият изброяването), стартирате приложението и натиснете бутона отново. Резултатът не отнема много време - пряк път към приложението ви ще се появи в определен вас папка.

Подкрепете проекта - споделете линка, благодаря!