Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/50: Рейтинг темы: голосов - 50, средняя оценка - 4.64
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151

Программно создать ярлык к программе

27.08.2012, 16:02. Показов 10522. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый понадобилось создать ярлык к моей программе.
можете подсказать как это программно реализовать
спасибо

Добавлено через 19 минут
Извиняюсь уже нашёл.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2012, 16:02
Ответы с готовыми решениями:

Как программно можно создать ярлык к любому файлу?
Здравствуйте. Подскажите, как программно можно создать ярлык к любому файлу?

Программно создать ярлык
Всем привет. Необходимо создать ярлык сетевого диска и поместить на рабочий стол. Подскажите как это сделать?

Создать программно ярлык с иконкой
Задача. Создать программно ярлык. Но не просто ярлык. А чтобы еще иконка была со своей картинкой. Хочу в ярлык яблочко поместить. как это...

23
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
27.08.2012, 17:06
Раз тему создал - расскажи всем, что именно нашёл.
Ну интересно же
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38171 / 21106 / 4307
Регистрация: 12.02.2012
Сообщений: 34,701
Записей в блоге: 14
27.08.2012, 18:10
Лучший ответ Сообщение было отмечено как решение

Решение

Раз ТС застеснялся, выложу материал Microsoft:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
' Пример для сервера сценариев Windows
'
' ------------------------------------------------------------------------
'                     (C) Корпорация Microsoft, 1996-1998
'
' Вы имеете право, не требующее дополнительных лицензионных платежей, 
' на использование, изменение, воспроизведение и распространение файлов
' примеров (и любой измененной версии) любым способом, учитывая, что
' Корпорация Microsoft не предоставляет гарантий и обязательств, 
' а также не несет ответственности за любой из файлов примеров
' ------------------------------------------------------------------------
 
' Этот пример демонстрирует возможности использования объекта WshShell
' для создания ярлыка на рабочем столе
 
L_Welcome_MsgBox_Message_Text   = "Этот пример создает ярлык для Блокнота на рабочем столе."
L_Welcome_MsgBox_Title_Text     = "Пример сервера сценариев Windows"
Call Welcome()
 
' *****************************************************************************
' *
' * Методы работы с ярлыком.
' *
 
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
 
 
Dim MyShortcut, MyDesktop, DesktopPath
 
' Получение доступа к рабочему столу используя объект WshSpecialFolders
DesktopPath = WSHShell.SpecialFolders("Desktop")
 
' Создание ярлыка на рабочем столе
Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\На Блокнот.lnk")
 
' Установка и запись свойств ярлыка
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("%windir%\notepad.exe")
MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings("%windir%")
MyShortcut.WindowStyle = 4
MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings("%windir%\notepad.exe, 0")
MyShortcut.Save
 
WScript.Echo "Ярлык на Блокнот создан на рабочем столе."
 
' ****************************************************************************
' *
' * Приветствие
' *
Sub Welcome()
    Dim intDoIt
 
    intDoIt =  MsgBox(L_Welcome_MsgBox_Message_Text,    _
                      vbOKCancel + vbInformation,       _
                      L_Welcome_MsgBox_Title_Text )
    If intDoIt = vbCancel Then
        WScript.Quit
    End If
End Sub
5
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
27.08.2012, 20:43
Лучший ответ Сообщение было отмечено как решение

Решение

Раз уж пошла речь о WSH выложу и я срипт от Polyakov A.N.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
'****************************************************************************
'* Script utility for managing shortcut files
'* ver 1.07 2011.07.27
'* Programmed by Polyakov A.N. mailto:xey@yandex.ru
'****************************************************************************
'
' Add Shortcut  - lnk.vbs /add   <shortcut> <target> [args] [work_dir] [icon] [win_style] [hot_key] [descr]
' Get Shortcut  - lnk.vbs /get   <shortcut>
' Get Script    - lnk.vbs /get!  <shortcut>
'   or          - lnk.vbs /getscript <shortcut>
' Find Shortcut - lnk.vbs /find  <folder>   <target_to_find> [args_to_find]
 
' <shortcut> : [sf:SpecialFolder\]Path\ShortcutFile[.lnk]
' <folder>   : [sf:SpecialFolder\]Path
'
' SpecialFolder :
'   Desktop           - Рабочий стол
'   Favorites         - Избранное
'   Fonts             - Шрифты
'   MyDocuments       - Мои документы
'   NetHood           - Сетевое окружение
'   PrintHood         - Принтеры
'   Programs          - подменю Программы из меню Пуск
'   Recent            - подменю Документы из меню Пуск
'   SendTo            - подменю Отправить из контекстного меню файлов
'   StartMenu         - Главное меню
'   Startup           - Автозагрузка из подменю Программы
'   Templates         - Шаблоны
' Only WinNT/2000/XP/2003 :
'   AllUsersDesktop   - Рабочий стол всех пользователей
'   AllUsersStartMenu - Главное меню всех пользователей
'   AllUsersPrograms  - подменю Программы из меню Пуск всех пользователей
'   AllUsersStartup   - Автозагрузка из подменю Программы всех пользователей
 
' [icon] : IconFileName,IconIndex
'   Index 0 is first icon in the file
 
' [win_style] : 3 - Maximize, 4 - Standard, 7 - Minimze
 
' [hot_key] : ALT+SHIFT+<Chr>,  CTRL+ALT+<Chr>,
'             CTRL+SHIFT+<Chr>, ALT+CTRL+SHIFT+<Chr>
 
' <target_to_find> : target|rx:RegExped_Target
' [args_to_find]   : args|rx:RegExped_Args
 
' [args]           special symbols : ^  -> "
'                                    ^^ -> ^
 
rem BEGIN
 
' ver 1.07 2011.07.27 - add alias "/getscript" for "/get!" key
' ver 1.06 2010.04.18 - add special symbols ^ for "
' ver 1.05 2009.09.01 - add return code (for %ERRORLEVEL% variable)
' ver 1.04 2008.10.30 - fix <shortcut> parsing; fix SpecialFolder order; create folders for /add
' ver 1.03 2008.08.27 - add /find key
' ver 1.02 2007.06.16 - support URL-links
' ver 1.01 2006.12.08 - check lnk-file existance; change output format
' ver 1.00 2006.01.21
 
on Error Resume Next
 
const forRead=1
const forWrite=2
 
dim lnk_file, url, target, arg, path, shortcut_name, work_dir, icon, win_style
dim shell, shortcut, parentFolder, fso, fo, rx, colFile, objFile, objFldr
dim Q, ext, rx1, rx2
 
set shell = WScript.CreateObject("WScript.Shell")
set fso = CreateObject("Scripting.FileSystemObject")
 
outCon=right(LCase(wScript.FullName),11)="cscript.exe"
 
nl = chr(13) & chr(10)
 
set pars = WScript.Arguments
cnt=pars.count
 
if cnt<2 then
   ShowHelp
end if
 
 
cmd=LCase(pars(0))
 
lnk_file=pars(1)
 
if LCase(left(lnk_file,3))="sf:" then
   arr1=split(pars(1),"\")
   arr2=split(arr1(LBound(arr1)),":")
   lnk_file=replace(pars(1),arr1(LBound(arr1)),shell.SpecialFolders(arr2(LBound(arr2)+1)))
end if
 
 
if cmd="/getscript" then cmd="/get!"
 
if cmd="/find" then
   if cnt<3 then ShowHelp
 
   folder=lnk_file
 
   target=LCase(trim(pars(2)))
   rx1=left(target,3)="rx:"
   if rx1 then target=right(target,len(target)-3)
 
   if cnt>3 then args=LCase(trim(pars(3))) else args=""
   rx2=left(args,3)="rx:"
   if rx2 then args=right(args,len(args)-3)
 
   if rx1 or rx2 then
      set rx=new RegExp
      rx.IgnoreCase=true
   end if
 
   set colFile=fso.getFolder(folder).Files
   for each objFile in colFile
     lnk_file=objFile.Name
     ext=LCase(right(lnk_file,3))
     if (ext="lnk") or (ext="url") then
        set shortcut = shell.CreateShortcut(folder & "\" & lnk_file)
        Q=false
        if rx1 then
           rx.pattern=target
           Q=rx.test(LCase(shortcut.TargetPath))
        else
           Q=LCase(shortcut.TargetPath)=target
        end if
        if len(args)>0 then
           if rx2 then
              rx.pattern=args
              Q=Q and rx.test(LCase(shortcut.Arguments))
           else
              Q=Q and LCase(shortcut.Arguments)=args
           end if
        end if
        if Q then WScript.echo folder & "\" & lnk_file
     end if
   next
   WScript.quit
end if
 
url=false
 
if cmd="/add" then
   if cnt<3 then ShowHelp
 
   target=trim(pars(2))
   url=Instr(target,"://")>0
 
   if not url then
      if cnt>3 then args=repl2(trim(pars(3)),"^^","^","^",chr(34)) else args=""
      if cnt>4 then work_dir=trim(pars(4)) else work_dir=""
 
      if len(work_dir)=0 then
         set fso = CreateObject("Scripting.FileSystemObject")
         set fo  = fso.getFile(target)
         if (Err.Number<>0) then
            Err.clear
         else
            if fo.type<>"" then
               work_dir=fo.parentFolder
            end if
         end if
      end if
 
      icon=""
      if cnt>5 then
         icon=trim(pars(5))
      end if
 
      win_style=4
      if cnt>6 then
         win_style=trim(pars(6))
      end if
 
      hot_key=""
      if cnt>7 then
         hot_key=UCase(trim(pars(7)))
      end if
 
      descr=""
      if cnt>8 then
         descr=trim(pars(8))
      end if
   end if
end if
 
 
S=LCase(right(lnk_file,4))
if (S<>".lnk") and (S<>".url") then
   S=".lnk"
   if url then
      S=".url"
   end if
   lnk_file=lnk_file & S
end if
 
 
QRet=0
 
Q=fso.FileExists(lnk_file)
set shortcut = shell.CreateShortcut(lnk_file)
 
select case cmd
  case "/add"
    set objFldr=fso.CreateFolder(fso.GetParentFolderName(lnk_file))
    shortcut.TargetPath=target
    shortcut.IconLocation=icon
    if not url then
       shortcut.Arguments=args
       shortcut.WorkingDirectory=work_dir
       shortcut.IconLocation=icon
       shortcut.WindowStyle=win_style
       shortcut.HotKey=hot_key
       shortcut.Description=descr
    end if
    Err.clear
    shortcut.save
    QRet=Err.Number
 
  case "/get"
    if Q then
       target=shortcut.TargetPath
       args=shortcut.Arguments
       work_dir=shortcut.WorkingDirectory
       icon=shortcut.IconLocation
       win_style=shortcut.WindowStyle
       hot_key=shortcut.Hotkey
       descr=shortcut.Description
       Error=""
    else
       Error=" ERROR: (FILE DON'T EXIST) "
       QRet=1
    end if
 
    wscript.echo "Shortcut File   =" & Error & lnk_file
    wscript.echo "TargetPath      =" & target
    wscript.echo "Arguments       =" & args
    wscript.echo "WorkingDirectory=" & work_dir
    wscript.echo "IconLocation    =" & icon
    wscript.echo "WindowStyle     =" & win_style
    wscript.echo "HotKey          =" & hot_key
    wscript.echo "Description     =" & descr
 
  case "/get!"
    if Q then
       lnk_file=replace(sf(lnk_file),"%","%%")
       target=replace(sf(shortcut.TargetPath),"%","%%")
       args=shortcut.Arguments
       work_dir=replace(sf(shortcut.WorkingDirectory),"%","%%")
       icon=replace(sf(shortcut.IconLocation),"%","%%")
       win_style=shortcut.WindowStyle
       hot_key=shortcut.Hotkey
       descr=shortcut.Description
 
       S="cscript.exe //NoLogo " & wScript.ScriptName & " /add "
       S=S & qw(lnk_file) & " "
       S=S & qw(target) & " "
       S=S & qw(args) & " "
       S=S & qw(work_dir) & " "
       S=S & qw(icon) & " "
       S=S & qw(win_style) & " "
       S=S & qw(hot_key) & " "
       S=S & qw(descr)
    else
       QRet=1
    end if
    wscript.echo S
end select
 
wScript.quit(QRet)
 
 
sub ShowHelp
   set fso = CreateObject("Scripting.FileSystemObject")
   set fo = fso.GetFile(wScript.ScriptFullName)
 
   set txt = fo.OpenAsTextStream(forRead)
   S=""
   Q=false
   while not Q
     T=trim(txt.ReadLine)
     Q=(len(T)>0) and (left(T,1)<>"'")
     if not Q then
        if len(T)>0 then S=S & right(T,len(T)-1)
        S=S & vbCrLf
     end if
   wend
   txt.close
   wScript.echo S
   wScript.quit
end sub
 
 
function qw(T)
  Ret=chr(34) & T & chr(34)
  qw=Ret
end function
 
 
function repl2(SS,old1,new1,old2,new2)
  Ret=""
  if len(old1)<len(old2) then
     C=old2
     old2=old1
     old1=C
     C=new2
     new2=new1
     new1=C
  end if
 
  arr=split(SS,old1)
 
  for J=0 to UBound(arr)
    if J>0 then
       Ret=Ret & new1
    end if
    Ret=Ret & replace(arr(J),old2,new2)
  next
 
  repl2=Ret
end function
 
 
function sf(path)
  dim f(16)
 
  Ret=path
 
  f(1)= "AllUsersStartup"
  f(2)= "AllUsersPrograms"
  f(3)= "AllUsersStartMenu"
  f(4)= "AllUsersDesktop"
  f(5)= "Startup"
  f(6)= "Programs"
  f(7)= "StartMenu"
  f(8)= "Desktop"
  f(9)= "Favorites"
  f(10)="Fonts"
  f(11)="MyDocuments"
  f(12)="NetHood"
  f(13)="PrintHood"
  f(14)="Recent"
  f(15)="SendTo"
  f(16)="Templates"
 
  S0=LCase(path)
  set sh=wScript.createObject("wScript.Shell")
 
  for I=1 to 16
    S1=LCase(sh.SpecialFolders(f(I)))
    if instr(S0,S1)=1 then
       Ret="sf:" & f(I) & right(path,len(S0)-len(S1))
       exit for
    end if
  next
  sf=Ret
end function
Вложения
Тип файла: zip lnk.zip (3.2 Кб, 70 просмотров)
4
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
28.08.2012, 13:27
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'Создание/изменение ярлыка
Private Sub CreateLink(ByVal LinkFullName As String, ByVal LinkTargetPath As String, _
    Optional ByVal LinkArguments As String = "", Optional ByVal LinkWorkingDirectory As String = "", _
    Optional ByVal LinkIconLocation As String = ",0", Optional ByVal LinkHotkey As String = "", _
    Optional ByVal LinkWindowStyle As Long = WshNormalFocus, Optional ByVal LinkDescription As String = "")
    Dim oShellLink As Object
    'Создание Объекта WshShortcut
    Set oShellLink = WshShell.CreateShortcut(LinkFullName)
    With oShellLink
        'Передаем аргументы командной строки
        .Arguments = LinkArguments
        'Устанавливаем описание ярлыка
        .Description = LinkDescription
        'Устанавливаем клавиши быстрого вызова
        .Hotkey = LinkHotkey
        'Устанавливаем значек
        .IconLocation = LinkIconLocation
        'Устанавливаем путь к файлу
        .TargetPath = LinkTargetPath
        'Устанавливаем стиль запуска
        .WindowStyle = LinkWindowStyle
        'Устанавливаем рабочий каталог
        .WorkingDirectory = LinkWorkingDirectory
    End With
    'Сохраняем ярлык
    oShellLink.Save
    'Освобождаем объект WshShortcut
    Set oShellLink = Nothing
End Sub
5
64 / 20 / 1
Регистрация: 29.07.2012
Сообщений: 151
28.08.2012, 17:26  [ТС]
Всем спасибо
Я вот это нашёл

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Command1_Click()
Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop") 'ïåðåìåííàÿ strDesktop áóäåò ðàâíà ïóòè äî ðàáî÷åãî ñòîëà áóäü òî ïóòü â windows 7 (C:\Users\Èìÿ ïîëüçîâàòåëÿ\Desktop) èëè â windows xp (C:\Documents and settings\Èìÿ ïîëüçîâàòåëÿ\Ðàáî÷èé ñòîë)
Set oShellLink = WshShell.CreateShortcut(strDesktop & "\Ìîé ÿðëû÷¸ê).lnk")  'êòî íå çíàåò òî ó ÿðëûêîâ ôîðìàò lnk
oShellLink.TargetPath = "Приложение"
oShellLink.WindowStyle = 1
oShellLink.IconLocation = "Значок"
oShellLink.Description = "ярлычок"
oShellLink.WorkingDirectory = "Рабочая папка"
oShellLink.Save
End Sub
1
28.08.2012, 21:07

Не по теме:

Памирыч, не все могут как мы сутками сидеть на форуме:D
ТС как смог откликнулся на второй пост.
А то что его опередили - не надо ставить в вину:)

2
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
12.03.2014, 17:26
добавлю вопросик.! А как определить папку Startup программно из VB6.0?
Дело в то, что я пишу программу, и вот эта функция
PureBasic
1
2
Public Declare Function mciSendString& Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand$, ByVal lpstrReturnString$, ByVal uReturnLength&, ByVal hwndCallback&)
Public Const MCI_ALIAS As String = "Media_1"
как то коряво работает с путями в файлам музыки, тоесть, если имеются пробелы в именах - то все - не услышишь ты своей песни...

другая проблема, это при добавлении впрограммы в автозапуск из RUN в реестре, в строковом параметре не указывается ведь рабочая папка - и вот тогда опять - ТИШИНА.!!! как быть?
решил создать ярлык с именем рабочего каталога и поместить его в папку Startup, это вроде реализовать можно, но... а как мне узнать пусть к этой папке чтобы удалить так же программно?
PS программа работает в разных системах WinXP и Win7, а как всем известно. пути к папкам различаются, так вот. как определить путь? если можеть АПИ или еще что,
подскажите!
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.03.2014, 18:15
Юрий Комар, чтобы функция обрабатывала путь, в котором есть пробелы, его нужно заключать в кавычки. Посмотрите мой код. Там именно так реализовано.

На счет API для SpecialFolder.
или так:
Visual Basic
1
2
Set objShell = CreateObject("Wscript.Shell")
strPath = objShell.SpecialFolders("Startup") 'AllUsersStartup
Цитата Сообщение от Юрий Комар Посмотреть сообщение
другая проблема, это при добавлении впрограммы в автозапуск из RUN в реестре, в строковом параметре не указывается ведь рабочая папка
Если нужно задавать рабочую папку при автозапуске, ссылайтесь на ярлык вместо EXE.
2
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
14.03.2014, 01:27
Dragokas, спасибо... Вот я совсем не долго тут га форуме, но много чего нового узнал и научился... А особенно мне нравится как Вы обьясняете то или иное... Скажем так - от души
0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
20.02.2015, 08:56
Коллеги добрый день!
склоняюсь к тому что самый простой пример этот:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Command1_Click()
Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop") 'переменная strDesktop будет равна пути до рабочего стола будь то путь в windows 7 (C:\Users\Имя пользователя\Desktop) или в windows xp (C:\Documents and settings\Имя пользователя\Рабочий стол)
Set oShellLink = WshShell.CreateShortcut(strDesktop & "\Мой ярлычёк).lnk")  'кто не знает то у ярлыков формат lnk
oShellLink.TargetPath = "Приложение"
oShellLink.WindowStyle = 1
oShellLink.IconLocation = "Значок"
oShellLink.Description = "ярлычок"
oShellLink.WorkingDirectory = "Рабочая папка"
oShellLink.Save
End Sub
как я понял TargetPath может быть описан путь явным образом так и через переменные, например "%windir%\notepad.exe"

1. подскажите как сделать тоже самое но с забросом ярлыков в системную папку
......\Start Menu\Programs\MyFolder

2. какие еще существуют переменные среды, которые можно использовать для подобных целей...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
20.02.2015, 15:31
Цитата Сообщение от kreotodr Посмотреть сообщение
в системную папку
Это не системная папка, а специальная.
Цитата Сообщение от kreotodr Посмотреть сообщение
2. какие еще существуют переменные среды, которые можно использовать для подобных целей...
Пуск -> Выполнить (Win+R) -> cmd -> OK -> ввести set -> нажать ENTER
0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
21.02.2015, 09:38
Коллеги столкнулся с неразрешимой проблемой...
если простоя ярлык, то все создается на ура...

СвойствоЯрлыка.Объект = Notepad.exe

Если ярлык с параметром, например
TargetPath = "Notepad.exe vasia.txt"

То в свойствах ярлыка получаем ссылку на объект:
СвойствоЯрлыка.Объект = "Notepad.exe vasia.txt" что есть НЕ КОРРЕКТНО!
СвойствоЯрлыка.Объект = "Notepad.exe" vasia.txt что есть КОРРЕКТНО...

Подскажите как это решается...???
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.02.2015, 11:10
Вирусы пишем?
0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
21.02.2015, 12:28
Цитата Сообщение от Dragokas Посмотреть сообщение
Вирусы пишем?
Та нет, могу показать что...
Так не в курсе, есть решение вопроса????
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.02.2015, 15:12
Можно пояснить и на словах, зачем создавать ярлык, имеющий дописку, в меню "ПУСК" ?
0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
21.02.2015, 15:18
Цитата Сообщение от Dragokas Посмотреть сообщение
Можно пояснить и на словах, зачем создавать ярлык, имеющий дописку, в меню "ПУСК" ?
__________________
Никто и не говорил про меню пуск.
Речь идет про "закинуть ярлдык на рабочий стол"

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
      
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
Dim strStringToSave, MyShortcut As Object, MyDesktop As String, DesktopPath As String
           
DesktopPath = WshShell.SpecialFolders("Desktop")
Set MyShortcut = WshShell.CreateShortCut(DesktopPath & "\Skyrim Refreshing Project with ENB.lnk")
 
MyShortcut.TargetPath = (App.Path & "\LoaderSkyrim.exe") + " -startHideENBOnUseD3D9"
MyShortcut.WorkingDirectory = WshShell.ExpandEnvironmentStrings(App.Path)
MyShortcut.WindowStyle = 4
MyShortcut.IconLocation = WshShell.ExpandEnvironmentStrings(App.Path & "\LoaderSkyrim\OrigFiles\TESV.exe, 0")
MyShortcut.Save
Результат:
"D:\Dropbox\VB_Project\Project_29\Skyrim Loader\LoaderSkyrim.exe -startHideENBOnUseD3D9"

а нужно:
"D:\Dropbox\VB_Project\Project_29\Skyrim Loader\LoaderSkyrim.exe " -startHideENBOnUseD3D9
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.02.2015, 16:40
Visual Basic
1
MyShortcut.Arguments = "-startHideENBOnUseD3D9"
1
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
21.02.2015, 16:54
Семен СЕМЕНЫЧ...
Спасибо!!!!

а где вы нашли инфу Можно линк?
0
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
21.02.2015, 16:58
Кстати нашел ОФФИГЕНЫЙ пример...
Вложения
Тип файла: zip ShellLink (2).zip (9.2 Кб, 81 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2015, 16:58
Помогаю со студенческими работами здесь

Как создать ярлык программно?
Как создать ярлык программно? Что всмысле туда писать? если тупо открыть блокнотом - открывает целевой файл, если сменить расширение -...

Как программно создать ярлык?
Прошу помощи знающих людей! Для курсовой сказали сделать установщик своей программы. Установщик я сделал, но вот только не знаю как...

Создать программно ярлык для приложения
Требуется создать ярлык для своей программы (или необязательно своей) в какой-либо папке, к примеру на рабочем столе. Как это можно...

Создать ярлык к сторонней программе
Как создать ярлык к файлу test.exe лежаший в директории программы?

Программно создать область выделения в сторонней программе
Знаю handle окна, нужно в нем выделить некоторую область. Поиск дал такие результаты: Модуль: Module MouseClick Public Declare...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru