VisualBasic6 -Tworzenie skrótu na pulpicie z podanej ścieżki

Witam, mam problem. :?

Robię instalator w Visual Basic 6.0

Chcę żeby ścieżkę którą podam (np. C:\Program Files\Program) program w formacie exe (np. programik.exe) utworzył się skrót na pulpicie.

Nie chodzi mi o instalator, tylko sam skrót na pulpicie.

Czekam na pomoc.

kontrolka fkfx.ocx ma taką procedurę.

http://www.vb4all.pl/component/option,com_remository/Itemid,47/func,fileinfo/id,506/

Dzięki, tylko teraz kod, jak go użyć bo niewiem :cry:

Jeżeli nazwa kontrolki kxfx to po umieszczeniu jej na formie wywołujemy funkcję tworzenia skrótu np. tak:

i = kxfx.CreateShellLink("..\..\Pulpit", "nazwa skrótu", "C:\Program Files\Movie Maker 2.6\MOVIEMK.exe", "")

i = kxfx.CreateShellLink("…\Pulpit", “nazwa skrótu”, "tutaj w tym miejscu chce żeby ścieżka była taka jak podana w TextBoxie", “”)

No, to użyj zmiennej lub wielu zmiennych, np.:

Dim NazwaProgramu , NazwaSkrotu, MiejsceDocelowe as string

NazwaProgramu=text1.text

NazwaSkrotu=text2.text

MiejsceDocelowe="..\..\Pulpit"

i = kxfx.CreateShellLink(MiejsceDocelowe, NazwaSkrotu, NazwaProgramu, "")

NazwaSkrotu=“byle co” ,NazwaSkrotu=“programik.lnk” też działa (sprawdziłem), ale to rozszerzenie: “.lnk” jest zbyteczne bo to jest tylko tekst informacyjny który widzimy na ekranie.

(Jeżeli używasz zmiennej tekstowej, to przypisana do tej zmiennej wartość musi być w cudzysłowie.)

Teraz visal basic pokazuje mi błąd w pogrubionym momencie

i = fx.CreateShellLink(MiejsceDocelowe, NazwaSkrotu, NazwaProgramu, “”)

Ten kod mam skopiować do przycisku, czy do fkFX?

Dodane 29.01.2010 (Pt) 19:16

Teraz jak zmieniłem

i = fkFx1.CreateShellLink(MiejsceDocelowe, NazwaSkrotu, NazwaProgramu, “”)

to całą linikę pokazuje mi że źle

Jeżeli funkcja ma być wywoływana przyciskiem, to jasne że w procedurze:

Private Sub Command1_Click()

i = fkFx1.CreateShellLink(MiejsceDocelowe, NazwaSkrotu, NazwaProgramu, “”)

end sub

Nazwa fkFx1 musi być zgodna z nazwą kontrolki umieszczonej na formie. Nazwę(name) można oczywiście dowolnie sobie zmieniać.

Czy dobrze wszystko zrobiłeś i czy kontrolka jest umieszczona na formie można sprawdzić wpisują tylko: i=fkFx1.CreateShellLink(

wówczas pokaże się tekst podpowiedzi, a jeżeli tego tekstu nie ma to znaczy, że brak kontrolki lub zła nazwa.

Może zmienna ‘i’ musi być zadeklarowana: dim i as integer

A, może trzeba zarejestrować kontrolke czyli uruchomić plik: rejestruj.bat

Musisz zawsze podawać jaki jest rodzaj błędu.

floyd, możesz mi zrobić jakiś projekt?

Bo ja tego nie czaje. :?

Wpisuje ścieżke w TextBox np. c:\program\ i tam mi się instaluje, po kliknięciu przycisku się instaluje i robi się ikona na pulpicie z pliku program.exe

Instalator zrobiłem według tego: http://www.vb4all.pl/component/option,c … fo/id,384/

Prawdę mówiąc to nie bardzo wiem o co Ci chodzi. Piszesz, że robi się ikona na pulpicie, chyba przecież o to ci chodziło więc w czym problem.

No, a poza tym to nie bardzo podoba mi się ten program zwany instalatorem bo sam wymaga instalacji inaczej przecież u nikogo nie zadziała.

Chodzi mi oto żeby ten instalator który robię, robił ikonę na pulpicie i instalował z pliku data.rar

Robił ikonę na pulpicie? Do czego ma być ten skrót i co to znaczy instalował z pliku data.rar. Program który podałeś rozpakowuje jedynie plik data.rar do podanego folderu i nie ma to nic wspólnego z instalacją. Może ten skrót ma być do jakiegoś tam programu instalacyjnego znajdującego się w pliku data.rar i po jego kliknięciu rozpocznie się właściwa instalacja? O to ci chodzi? No to należało by znać nazwę tego programu np. setup.exe i utworzyć do niego skrót na pulpicie.

Tak oto mi chodzi.

Jeśli tak to w podanym przez Ciebie programie(unrarinstalator) na formie(Form3) umieść kontrolkę o nazwie: fkFx1

i zmień procedurę klawisza o nazwie dr_button np. na taką jak poniżej. Oczywiście przy innej zawartości pliku data.rar musisz użyć innej nazwy niż project1.vbp:

Kontrolkę FkFX.ocx najlepiej umieścić w katalogu:C\windows\system32 i zarejestrować ją uruchamiając plik rejestruj.bat.

Kontrolkę będzie można wówczas znaleźć: Project–>components pod nazwą: fullkoderFX

Private Sub dr_button1_Click()

Dim sciezka As String

Dim i As Integer

If fso.FileExists("data.rar") Then

UnRar.Decompress "data.rar", Form2.Dir1.Path & "\"

sciezka = Form2.Dir1.Path & "\" & "Project1.vbp"

If fso.FileExists(sciezka) Then

i = fkFx1.CreateShellLink("..\..\Pulpit", "instalator", sciezka, "")

End If

x = MsgBox("Pomyślnie zakończono kopiowanie plikow.", vbOKOnly, "Zakończono")

End

End If

End Sub

Pokazuje mi jakieś błędy.

Możesz zrobić mi przykładowy projekt :?:

Nie wiem co mi się dzieje. :frowning:

Dzięki, wszystko działa! :slight_smile:

Ta kontrolka jednak jest do bani. :frowning: Działa pod Windowsem XP, ale pod Vistą czy windows7 już nie.

Oto procedura tworząca skrót na pulpicie w każdym Windowsie. (Przykładowo dla notatnika)

Private Sub Command1_Click()

Dim WSHShell As Object

Dim sciezka, nazwa, skrot As String

sciezka = "C:\WINDOWS\system32": nazwa = "\notepad.exe": skrot = "\notatnik.lnk"

Set WSHShell = CreateObject("WScript.Shell")

Dim MyShortcut, MyDesktop, DesktopPath

DesktopPath = WSHShell.SpecialFolders("Desktop")

Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & skrot)

MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings(sciezka + nazwa)

MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings(sciezka)

MyShortcut.WindowStyle = 4

MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings(sciezka + nazwa + ", 0")

MyShortcut.Save

End Sub