Avatar billede force_master Praktikant
12. juli 2004 - 19:59 Der er 13 kommentarer og
1 løsning

oprette icon på skrivebord

Hej
Hvordan oprettes et icon på skrivebordet ?
skal have muligheden for at oprette et , og slette den igen.

MVH
Force_Master
Avatar billede vbcoder Nybegynder
12. juli 2004 - 20:08 #1
tilføj windows scripting host til dit projekt

WshShell.CreateShortcut metoden kan gøre det du ønsker
Avatar billede force_master Praktikant
12. juli 2004 - 20:27 #2
kunne du give et exempel , kan ikke få det til at funke.
Avatar billede vbcoder Nybegynder
12. juli 2004 - 20:30 #3
Du skal huske som det sidste at bruge .save ellers gemmer den ikke din genvej
Avatar billede vbcoder Nybegynder
12. juli 2004 - 20:31 #4
jeg fandt lige et eksempel her

http://www.developerfusion.com/show/245/

har ikke testet det
Avatar billede vbcoder Nybegynder
12. juli 2004 - 23:32 #5
denne kode er testet i vb6

Private Sub Command1_Click()
 
  ' eksempel lavet af vbcoder www.visualcoder.dk
  '
  ' for at eksemplet virker
  ' tilføjes under Project -> References
  ' følgende referencer :
  '
  ' Windows Scripting Host Object Model (Ver. 1.0) - wshom.ocx
  ' Windows Scripting Host Runtime - scrrun.dll
  '
  ' shell object
  Dim wshShell As IWshShell_Class
  ' shellLink object
  Dim owshShellLink As IWshShortcut_Class
  ' string var to hold desktop special folder
  Dim strDesktop As String
 
  ' initialize shell object
  Set wshShell = New IWshShell_Class
  ' setup  desktop folder var 
  strDesktop = wshShell.SpecialFolders.Item("desktop")
  ' create shelllink
  Set owshShellLink = wshShell.CreateShortcut(strDesktop & "\test.lnk")
  ' set properties and save
  With owshShellLink
    ' if the file not is in the path
    ' then supply the fully qualified path
    .TargetPath = "notepad.exe"
    ' tell the system which icon to use
    ' could be another file containg icons
    .IconLocation = "notepad.exe,0"
    ' set up working directory
    ' kan be any directory
    .WorkingDirectory = strDesktop
    ' save changes to disk
    ' must be done otherwise all changes are discarded
    .Save
  End With

End Sub
Avatar billede force_master Praktikant
13. juli 2004 - 21:18 #6
ja det er godt ,
tillægs ?
Hvordan får jeg den til at kunne starte et bestemt SUB op i programmet.
genvejen den ligger på skrivebordet , skal aktivere et SUB i mit program.

og sluttelig , den skal jo fjernes igen, når mit program lukker ned.

MVH
Force-Master
Avatar billede vbcoder Nybegynder
13. juli 2004 - 22:32 #7
brug parametre til programmet

parametre hentes via Command$

dim strParameters as string
strParameters = Command$

kig i hjælp under commandline

fjerne kan du gøre med kommandoen kill

du kender jo stien til desktop og det filnavn du oprettede så du kan slette den med

kill strDesktop & "\test.lnk"
Avatar billede force_master Praktikant
13. juli 2004 - 22:43 #8
kill kommandoen kendes ikke...
er du sikker på den ?
kan heller ikke finde remove, eller andet der sletter.
Avatar billede vbcoder Nybegynder
14. juli 2004 - 08:05 #9
ja jeg er sikker

snip vb6 hjælp

Kill Statement
     
Deletes files from a disk.

Syntax

Kill pathname

The required pathname argument is a string expression that specifies one or more file names to be deleted. The pathname may include the directory or folder, and the drive.

Remarks

In Microsoft Windows, Kill supports the use of multiple-character (*) and single-character (?) wildcards to specify multiple files
Avatar billede force_master Praktikant
14. juli 2004 - 15:50 #10
den skriver "argument not optional"
hvis jeg bruger - kill = pathname.

eller hvis den bliver ændret til
kill pathname.
File not found

desuden mangler jeg stadig lidt hjælp til den med at starte en anden sub fra en genvej.

'MVH
Force MAster
Avatar billede vbcoder Nybegynder
14. juli 2004 - 16:39 #11
den kan ikke slette en fil som ikke findes - så kommer en fejl

men hvis du har en genvej på skrivebordet som du selv har oprettet jvf ovenstående ved du jo også det fulde navn på filen og det er den parameter som kill skal have

altså hvis du har en fil i roden af c: der hedder test.lnk skal den kunne slettes ved at du sletter med det fulde stinavn som er c:\test.lnk

kill "c:\test.lnk"

jvf ovenstående kode der opretter et link

Private Sub Command1_Click()
 
  ' eksempel lavet af vbcoder www.visualcoder.dk
  '
  ' for at eksemplet virker
  ' tilføjes under Project -> References
  ' følgende referencer :
  '
  ' Windows Scripting Host Object Model (Ver. 1.0) - wshom.ocx
  ' Windows Scripting Host Runtime - scrrun.dll
  '
  ' shell object
  Dim wshShell As IWshShell_Class
  ' shellLink object
  Dim owshShellLink As IWshShortcut_Class
  ' string var to hold desktop special folder
  Dim strDesktop As String
 
  ' initialize shell object
  Set wshShell = New IWshShell_Class
  ' setup  desktop folder var 
  strDesktop = wshShell.SpecialFolders.Item("desktop")
  ' create shelllink
  Set owshShellLink = wshShell.CreateShortcut(strDesktop & "\test.lnk")
  ' set properties and save
  With owshShellLink
    ' if the file not is in the path
    ' then supply the fully qualified path
    .TargetPath = "notepad.exe"
    ' tell the system which icon to use
    ' could be another file containg icons
    .IconLocation = "notepad.exe,0"
    ' set up working directory
    ' kan be any directory
    .WorkingDirectory = strDesktop
    ' save changes to disk
    ' must be done otherwise all changes are discarded
    .Save
  End With

  msgbox "filen '" & strDesktop & "\test.lnk" & "' er oprettet.", vbapplicationmodal

  kill strDesktop & "\test.lnk"

  msgbox "filen '" & strDesktop & "\test.lnk" & "' er nu slettet.", vbapplicationmodal

End Sub
Avatar billede vbcoder Nybegynder
14. juli 2004 - 16:42 #12
mht commandolinje

eks.

dim strCommand as string
strCommand = command$

if instr(Ucase$(strCommand), "/MYSUB") then
  mySub
  'du kan så evt slukke programmet her
  'eller gå videre
  'End 'fjern apostroffen foran End
        'og programmet slukker efter eksekvering af sub
end if
Avatar billede force_master Praktikant
18. juli 2004 - 21:43 #13
er ikke helt med .
sådan her skal det virke.

Jeg opretter en genvej på skrivebordet , inde fra mit program, og samtidig går mit program i hi nede på procceslinjen , men et lille icon nede ved uret.
når man så trykker på den genvej på skrivebordet , skal den eksekvere en SUB inde i mit program , som kører i baggrunden.

MVH
Force Master
Avatar billede vbcoder Nybegynder
19. juli 2004 - 07:28 #14
Jeg kan ikke umiddelbart se hvordan det skulle kunne lade sig gøre medmindre du laver dit program på en måde så dine funktioner/procedurer er offentligt tilgængelige via ActiveX. Men det er en helt anden sag.

En genvej starter i sagens natur en ny instance af dit program op.

Dette er i sig selv heller ikke noget problem. Programmet får endnu et afviklings_id (hwnd). Du skal så afslutte programmet når det er færdigt. Afslutning af den nye instance af programmet betyder ikke noget for afviklingen af den første.


dim strCommand as string
strCommand = command$

if instr(Ucase$(strCommand), "/MYSUB") then
 
  mySub

  End 'programmet slukker efter eksekvering af sub
      'du kan også bruge unload me
      'da du så kan lægge evt. oprydningsfaciliteter i frm_queryunload proceduren
end if
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester