• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MC

[VB6] Executar "o meu computador" e "os meu documentos"

17 mensagens neste tópico

Alguém sabe o código para executar "o meu computador" e "os meu documentos" através de um botão ?

tenho andado a tentar e não consigo encontrar nada  :wallbash:

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se for vb.net, procura na classe My.Computer.FileSystem.SpecialDirectories

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas que queres fazer em concreto com isso?

"O Meu computador" é: shell:drivefolder

"Os meus documentos" e: shell:personal

podes fazer no butao 1 cena tipo:

'O comando shell executa programas ou outras coisas
shell(shell:drivefolder)

tens aqui a lista suportada...

shell:Common Administrative Tools
shell:Administrative Tools
shell:SystemX86
shell:My Pictures
shell:Profile
shell:CommonProgramFiles
shell:ProgramFiles
shell:System
shell:Windows
shell:History
shell:Cookies
shell:Local AppData
shell:AppData
shell:Common Documents
shell:Common Templates
shell:Common AppData
shell:Common Favorites
shell:Common Desktop
shell:Common Menu
shell:Common Programs
shell:Common Startup
shell:Templates
shell:PrintHood
shell:NetHood
shell:Favorites
shell:Personal
shell:SendTo
shell:Recent
shell:Menu
shell:Programs
shell:Startup
shell:Desktop
shell:Fonts
shell:ConnectionsFolder
shell:RecycleBinFolder
shell:PrintersFolder
shell:ControlPanelFolder
shell:InternetFolder
shell:DriveFolder
shell:NetworkFolder
shell:DesktopFolder

se for vb.net, procura na classe My.Computer.FileSystem.SpecialDirectories

mas é VB 6, que ele ja teve umas duvidas e era VB 6

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

http://www.autohotkey.com/docs/misc/CLSID-List.htm

Suponho que baste executar um daqueles códigos (os que estejam assinalados como "Supported by Run") e o Explorer abre-se na pasta indicada.

Na caixa de diálogo Executar funciona.

PS: já estava escrito e não ia desperdiçar.

pk usar 1 endereço CLSID s pode por so: shell:personal e ta feito? XD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é Vb6 mas com este  codigo da erro

shell(shell:drivefolder)  :) depois coloquei com shell("shell:drivefolder") e dava erro na mesma

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _

    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _

    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd _

    As Long) As Long

   

  Public Sub ShellAnyFile(FormName As Form, FilePath As String, Optional CommandLines As String = "", Optional WorkingDirectory As String = "", Optional WinState As VbAppWinStyle = vbNormalFocus, Optional RaiseErrors As Boolean = False)

Dim Ret As Long

Ret = ShellExecute(FormName.hwnd, "open", FilePath, CommandLines, WorkingDirectory, WinState)

End Sub 

coloquem isto no general

e isto no command

ShellAnyFile Me, "shell:drivefolder"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _

    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _

    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd _

    As Long) As Long

   

  Public Sub ShellAnyFile(FormName As Form, FilePath As String, Optional CommandLines As String = "", Optional WorkingDirectory As String = "", Optional WinState As VbAppWinStyle = vbNormalFocus, Optional RaiseErrors As Boolean = False)

Dim Ret As Long

Ret = ShellExecute(FormName.hwnd, "open", FilePath, CommandLines, WorkingDirectory, WinState)

End Sub

coloquem isto no general

e isto no command

ShellAnyFile Me, "shell:drivefolder"

existem certos comandos k funcionam sem usar essas funções.

exemplo:

Private Sub Command1_Click()

shell ("calc")

End Sub

ou

Private Sub Command1_Click()

shell ("C:\Programas\MSN Messenger\msnmsgr.exe")

End Sub

mas desta forma nao é possivel abrir pastas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _

    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _

    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd _

    As Long) As Long

   

  Public Sub ShellAnyFile(FormName As Form, FilePath As String, Optional CommandLines As String = "", Optional WorkingDirectory As String = "", Optional WinState As VbAppWinStyle = vbNormalFocus, Optional RaiseErrors As Boolean = False)

Dim Ret As Long

Ret = ShellExecute(FormName.hwnd, "open", FilePath, CommandLines, WorkingDirectory, WinState)

End Sub

coloquem isto no general

e isto no command

ShellAnyFile Me, "shell:drivefolder"

existem certos comandos que funcionam sem usar essas funções.

exemplo:

Private Sub Command1_Click()

shell ("calc")

End Sub

ou

Private Sub Command1_Click()

shell ("C:\Programas\MSN Messenger\msnmsgr.exe")

End Sub

mas desta forma nao é possivel abrir pastas

ate era se ele "comesse" o shell:personal ou outro tipo de shell:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

http://www.autohotkey.com/docs/misc/CLSID-List.htm

Suponho que baste executar um daqueles códigos (os que estejam assinalados como "Supported by Run") e o Explorer abre-se na pasta indicada.

Na caixa de diálogo Executar funciona.

PS: já estava escrito e não ia desperdiçar.

pk usar 1 endereço CLSID s pode por so: shell:personal e ta feito? XD

[sarcasm]pk dá erro? XD[/sarcasm]

PS: já estava escrito e não ia desperdiçar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

http://www.autohotkey.com/docs/misc/CLSID-List.htm

Suponho que baste executar um daqueles códigos (os que estejam assinalados como "Supported by Run") e o Explorer abre-se na pasta indicada.

Na caixa de diálogo Executar funciona.

PS: já estava escrito e não ia desperdiçar.

pk usar 1 endereço CLSID s pode por so: shell:personal e ta feito? XD

[sarcasm]pk dá erro? XD[/sarcasm]

PS: já estava escrito e não ia desperdiçar.

[sarcasm]e o teu metodo tb n da haha xD[/sarcasm] lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah, mas funciona!

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
  (ByVal hWnd As Long, ByVal lpOperation As String, _
  ByVal lpFile As String, ByVal lpParameters As String, _
  ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub Command1_Click()
    x = ShellExecute(0&, vbNullString, "::{20d04fe0-3aea-1069-a2d8-08002b30309d}", vbNullString, "", 1)
End Sub

Além disso:

- Eu não programo em VB

- aquelas CLSID funcionam em qualquer linguagem de programação

- não fui eu que disse para usar o Shell, apenas dei os CLSID para usar com uma função de execução.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguém sabe o Internet Explorer ?? é porque não esta na lista

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tenho o meu no D: :confused:

O melhor é ir buscar ao registry:

Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" ( _
   ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, _
   lpType As Long, lpData As Any, lpcbData As Long) As Long

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _
       (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
       ByVal samDesired As Long, phkResult As Long) As Long

Private Const KEY_READ = ((131072 Or &H1 Or &H8 Or &H10) And (Not 1048576))
Private Const HKEY_CLASSES_ROOT = &H80000000
                        
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As _
      Long) As Long

Private Sub Command1_Click()
    Dim hKey As Long
    Dim sBuffer As String
    Dim lBuffer As Long
    
    sBuffer = Space(256)
    lBuffer = Len(sBuffer)

    x = RegOpenKeyEx(HKEY_CLASSES_ROOT, _
        "CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32", _
        0, KEY_READ, hKey)
    If x <> 0 Then
        MsgBox ("Erro ao abrir chave")
    Else
        x = RegQueryValueEx(hKey, vbNullString, 0, 0, ByVal sBuffer, lBuffer)
        RegCloseKey (hKey)
        sBuffer = Left(sBuffer, lBuffer - 1)
    End If
   
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora