Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Shadow

#21
OK Gracias por las respuestas! =)

Aunque intente borrarlo como administrador no me dejo.

encontre otra data en ingles que dice:

"go to secpol.msc (open it in command prompt), go to the "Software restriction policies", right click "Add new software restriction". Then go to "Additional Rulese", right click on it and select "New Path Rule". Add the path to the executable you want to stop running."



No lo he probado a ver si me mando una cagada... lo aconsejan?




Randomize... no puse un post nuevo porque al usar el famoso buscador antes de postear encontre este post que parecia no estar resuelto :S
al final, por querer hacer las cosas bien, las hago mal, queria evitar duplicacion de post... nada mas, sorry.



#22
Hola hola

Tengo el mismo problema con una máquina recien instalada.
asi que dudo que se trate de un virus-troyano o lo que sea, el archivo C:\Windows\Helppane.exe inicia cada vez que arranca windows, asi sea como Admin u otro usuario.

en msconfig no figura para desactivarlo, tb use un programa con el cual se ven todos los programas que se ejecutan. (autoruns de sysinternals)y no figura

no puedo borrar el archivo. mmmm y busque en el registro pero no llego a ningun lado...

alguna idea?

s.o= windows 7  32 bits.

Gracias de antemano... :)
#23
Que marca es el HDD? El HDD Esta como esclavo? o ya funciona con el S.O en tu PC?  Tiene particiones? Quizas puedas solo estar leyendo una particion de 32Gb y el resto aun no este como particion.
Revisalo con el Partition Magic a ver que te dice...
Saludos
#24
Hola de nuevo, un pequeño problemita con unas variables string... mira...

Cargo de un texto (que uso como .ini en la carpeta del programa) todo en un list, son nombres de programas y el acceso directo.

en el list aparecen ya cargados asi:


Programa1; "C:\Programas\programa1.exe"

Programita2; "C:\Programas\Programita2.exe"

Programon3; "C:\Programas\Programon3.exe"


Ahora bien, tengo en cada "linea" de este list dos datos que me interesan:
El nombre del programa y la direccion.

si la en la lista el programa esta seleccionado...

Citar
For i = 0 To List2.ListCount
   
If List2.Selected(i) Then
        Dim NombreLink() As String
        Dim DirLink() As String

        NombreLink = Split(List2.List(i), ";")  'aca sale todo bien, pues con el split saco y el parametro ";" funca bien

        DirLink = Split(DirLink(0), ".exe")  'pero aca no sabria como sacar el dato de la direccion... :S


        Set obj = CreateObject("wscript.Shell")
        Set acceso_directo = obj.CreateShortcut(GetSpecialfolder(CSIDL_DESKTOP) & "\" & NombreLink(0) & ".lnk")
            With acceso_directo
            .TargetPath = DirLink(0)
            .Save
            End With
    End If


Next i

Se que existe la opcion MID, pero no todos los programas se llaman iguales, o sea que no todos tienen la misma longitud de caracteres. o bien podria armar una estructura repetitiva hasta que encuentre tal caracter y a partir de ahi me lo tome...creo que seria la mas logica a no ser que exista una sentencia que no conozca.

Como parametros q se repiten en cada linea y son unicos tengo el ".exe" y el ";"  a su vez la direccion esta entre "" q no se si se podria tb usar como parametros.
debe ser una boludez... hace muchisimo que no agarro de nuevo el VB6 :S deberia pasarme ya al Visual Studio 2008 por lo menos.


gracias de antemano.
#25
Tengo que activar el control de cuentas de usuario entonces... pero aun asi como admin no funciona.


Mira el mensaje es algo asi:

El archivo no se pueden importar: El archivo especificado no es un archivo de registro.
Archivos de registro, sólo podrán importarse en el Editor del Registro.

no te lo puedo decir exactamente como seria en español porque lo estoy traduciendo del aleman, pero buscando estoy leyendo en otros foros que se puede tratar de un error de "UNICODE; NT4 = ANSI" o algo asi.

Yo extraje el texto y quizas funcione para regedits de win XP con otra version de regedit, que en W7 por lo que lei es una 6.1...

gracias!!
#26
Windows / Problema al ejecutar .exe en W7.
11 Mayo 2011, 11:23 AM
Hola a todos!!!
Tengo un problema par ejecutar cualquier archivo .exe, claro fue a causa de un virus, que fue eliminado pero me desconfiguro el registro.

encontre esta solución, pero no puedo importarla al registro... alguien reconoce algun error? Puede ser la version del Regedit?

Gracias a todos!!! =)



CitarWindows Registry Editor Version 5.0

[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"

[HKEY_CLASSES_ROOT\.exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"

[HKEY_CLASSES_ROOT\exefile]
@="Application"
"EditFlags"=hex:38,07,00,00
"TileInfo"="prop:FileDescription;Company;FileV ersi on"
"InfoTip"="prop:FileDescription;Company;FileVe rsio n;Create;Size"

[HKEY_CLASSES_ROOT\exefile\DefaultIcon]
@="%1"

[HKEY_CLASSES_ROOT\exefile\shell]

[HKEY_CLASSES_ROOT\exefile\shell\open]
"EditFlags"=hex:00,00,00,00

[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\exefile\shell\runas]

[HKEY_CLASSES_ROOT\exefile\shell\runas\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\exefile\shellex]

[HKEY_CLASSES_ROOT\exefile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"

[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHan dlers]

[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHan dlers\PEAnalyser]
@="{09A63660-16F9-11d0-B1DF-004F56001CA7}"

[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHan dlers\PifProps]
@="{86F19A00-42A0-1069-A2E9-08002B30309D}"

[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHan dlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"

[HKEY_CLASSES_ROOT\regfile]
@="Registration Entries"
"EditFlags"=dword:00100000
"BrowserFlags"=dword:00000008

[HKEY_CLASSES_ROOT\regfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00 ,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,72,00,65,00,67,00,65,00,64,00,69,00,74,00 ,2e,00,65,00,78,00,65,00,\
2c,00,31,00,00,00

[HKEY_CLASSES_ROOT\regfile\shell]
@="open"

[HKEY_CLASSES_ROOT\regfile\shell\edit]

[HKEY_CLASSES_ROOT\regfile\shell\edit\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00 ,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00 ,32,00,5c,00,4e,00,4f,00,\
54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45 ,00,20,00,25,00,31,00,00,\
00

[HKEY_CLASSES_ROOT\regfile\shell\open]
@="Mer&ge"

[HKEY_CLASSES_ROOT\regfile\shell\open\command]
@="regedit.exe \"%1\""

[HKEY_CLASSES_ROOT\regfile\shell\print]

[HKEY_CLASSES_ROOT\regfile\shell\print\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00 ,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00 ,32,00,5c,00,4e,00,4f,00,\
54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45 ,00,20,00,2f,00,70,00,20,\
00,25,00,31,00,00,00

[HKEY_CLASSES_ROOT\.lnk]
@="lnkfile"

[HKEY_CLASSES_ROOT\.lnk\ShellEx]

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214EE-0000-0000-C000-000000000046}]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214F9-0000-0000-C000-000000000046}]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{00021500-0000-0000-C000-000000000046}]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellNew]
"Command"="rundll32.exe appwiz.cpl,NewLinkHere %1"

[HKEY_CLASSES_ROOT\lnkfile]
@="Shortcut"
"EditFlags"=dword:00000001
"IsShortcut"=""
"NeverShowExt"=""

[HKEY_CLASSES_ROOT\lnkfile\CLSID]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile\shellex]

[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandl ers]

[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandl ers\Offline Files]
@="{750fdf0e-2a26-11d1-a3ea-080036587f03}"

[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandl ers\{00021401-0000-0000-C000-000000000046}]

[HKEY_CLASSES_ROOT\lnkfile\shellex\DropHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHan dlers]

[HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHan dlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}]
@="Shortcut"

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32]
@="shell32.dll"
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}\PersistentAddinsRegistered]

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}\PersistentHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}\ProgID]
@="lnkfile"

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}\shellex]

[HKEY_CLASSES_ROOT\CLSID\{00021401-0000-0000-C000-000000000046}\shellex\MayChangeDefaultMenu]
#27
Hola numerooo!!!! Impecable... salio funcionando al toque.
Muchas gracias!!!
=)


;-)
#28
Si lo se, a veces no doy con las busquedas correctas colega, pero de todas formas sigue sin funcionar... y aun asi no volvi a postear... a ver si lo saco.
Has probado algo similar a esto?
un saludo 79137913 (es un buen numero ;)
#29
Que loko.... habra que ver por donde la ponen en un Futuro... y no muy lejano.
#30
Encontre algo "nuevo" porque es vieja la documentacion. (Tengo que probarlo aun.... =) )


Dos formas de crear accesos directos
Usando DDE y el WSH
Publicado: 22/Ene/2000
Actualizado: 21/Jun/2000



Seguramente, (de hecho), hay más formas de hacerlo, pero estas dos que muestro aquí son las más accesibles, es decir, que no necesitas de llamadas al API ni crear referencias a funciones propias del Sistema Operativo para crear links o accesos directos, aunque es lamentable que el Visual Basic no disponga de una función u objeto con el cual poder crear, modificar o simplemente acceder a los accesos directos tan comunes en el Windows... talvez en la versión 7...

La primera forma que mostraré será la que se usaba cuando el Windows 3.x (sí, ese del que ya casi nadie sabe que existió, aunque aún hay gente que trabajan con él), para ello se usaba DDE o lo que es lo mismo la forma antigua de comunicarse entre aplicaciones... no voy a entrar en detalles sobre lo que es el DDE ni nada de eso, ya que hace tiempo que no lo uso y cuando lo usaba simplemente era con ejemplos prefabricados... o casi...

La segunda es usando el Windows Scripting Host (WSH). Seguramente esta forma será la preferida para aquellos que dispongáis del Windows 98/2000, (siempre que hayas seleccionado esa opción) o bien el Windows 95/NT con el WSH instalado, ya que también se puede instalar de forma separada desde el sitio de Microsoft:
http://msdn.microsoft.com/scripting/

Vamos a ver el código de ejemplo para ambos casos:

Usando DDE

He dejado los comentarios originales, aunque, lamentablemente ahora no recuerdo quién fue el autor de los mismos... lo siento.
El icono sólo se creará en la carpeta de Programas del menú de Inicio... con el otro sistema podrás crearlo en otros sitios diferentes...
Otra de las limitaciones de éste método es que no se pueden usar símbolos "raros" en el nombre del acceso directo, entre los cuales están los paréntesis.

Para usar este ejemplo, crea un nuevo proyecto, añádele un par de etiquetas y dos textboxes (en uno irá el nombre del acceso directo y en el otro el path del programa a ejecutar), y un botón para crear el acceso directo.

'
'------------------------------------------------------------------------------
' Crear accesos directos usando DDE                                 (14/Ene/00)
'
' Basado en un código para VB2/3 de 1994... por lo menos,
' que a su vez está basado en otro anterior con las rutinas para trabajar con DDE
' y algunas otras virguerías (al menos en aquellos tiempos)
'
' '------------------------------------------------------------------------------
Option Explicit

Private Sub cmdCrear_Click()
   ' Crear el acceso directo                                       (14/Ene/00)
   ' Se creará dentro de Programas del Menú de Inicio
   '
   CrearIconoEnProgMan Me, Text2.Text, Text1.Text
End Sub

Private Sub cmdSalir_Click()
   ' Salir del programa
   Unload Me
End Sub


'----------------------------------------------------------
' Procedure: CrearIconoEnProgMan
'
' Arguments: X           The form where Label1 exists
'
'            CmdLine$    A string that contains the command
'                        line for the item/icon.
'                        ie 'c:\myapp\setup.exe'
'
'            IconTitle$  A string that contains the item's
'                        caption
'----------------------------------------------------------
Private Sub CrearIconoEnProgMan(X As Form, CmdLine$, IconTitle$)
   
   Dim i As Integer, z As Integer
   
   Screen.MousePointer = 11
   ' Poner la primera letra en mayúsculas
   IconTitle$ = Left$(IconTitle$, 1) & LCase$(Mid$(IconTitle$, 2))
   
   '----------------------------------------------------------------------
   ' Windows requires DDE in order to create a program group and item.
   ' Here, a Visual Basic label control is used to generate the DDE messages
   '----------------------------------------------------------------------
   On Error Resume Next
   
   '---------------------------------
   ' Set LinkTopic to PROGRAM MANAGER
   '---------------------------------
   X.Label1.LinkTopic = "ProgMan|Progman"
   X.Label1.LinkMode = 2
   For i = 1 To 10         ' Loop to ensure that there is enough time to
     z = DoEvents()        ' process DDE Execute.  This is redundant but needed
   Next                    ' for debug windows.
   X.Label1.LinkTimeout = 100
   
   '------------------------------------------------
   ' Create Program Item, one of the icons to launch
   ' an application from Program Manager
   '------------------------------------------------
   X.Label1.LinkExecute "[AddItem(" & CmdLine$ & Chr$(44) & IconTitle$ & Chr$(44) & ",,)]"
   
   '-----------------
   ' Reset properties
   '-----------------
   X.Label1.LinkTimeout = 50
   X.Label1.LinkMode = 0
   
   Screen.MousePointer = 0
End Sub

Usando el WSH

Ahora vamos a ver el código de la otra forma de crear accesos directos en Windows.
Para crear el código que pondré a continuación, tendrás que crear un nuevo proyecto, añade tres etiquetas, tres textboxes, un listbox y un botón para crear el acceso directo.
La primera caja de textos servirá para introducir el nombre del acceso directo.
La segunda indicará el path del programa a ejecutar.
La tercera caja de textos indicará en que sitio queremos crear el acceso directo, el lugar de destino se seleccionará de las opciones mostradas en el Listbox.

Estos son algunos de los "destinos" de los accesos directos:
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup

Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates


El destino "real" se puede averiguar mediante una llamada al método SpecialFolders del objeto Shell del WSH:
x = SpecialFolders("Desktop") ' Devolverá el path del Escritorio

Un, dos, tres...
Básicamente la forma de crear los accesos directos es:

Crear una referencia al objeto Shell del Scripting Host:
Set wshShell = CreateObject("WScript.Shell")
Llamar al método CreateShorcut:
Set vLnk = wshShell.CreateShortcut(sLnkPath)
Asignar el path de destino:
vLnk.Targetpath = sAppPath
y guardar los datos...
vLnk.Save
Las variables usadas son del tipo Variant, ya que pueden recibir objetos de cualquier tipo...

Si prefieres usar los tipos "reales", tendrás que crear una referencia al objeto Windows Scripting Host Object Model (WSHOM.OCX) y usar los siguientes tipos:

Para el objeto Shell:
Private m_wsShell As IWshShell_Class

Crear una referencia al objeto Shell:
Set m_wsShell = New IWshShell_Class

Una variable para crear accesos directos:
Dim vLnk As IWshShortcut_Class

Obtener una de las carpetas especiales:
sLnkPath = m_wsShell.SpecialFolders.Item(Text3.Text)
(fíjate que hay que usar Item para poder acceder... curioso...)

Crear un acceso directo:
Set vLnk = m_wsShell.CreateShortcut(sLnkPath)



Veamos el código del formulario usando objetos del tipo Variant y creando una referencia en tiempo de ejecución (late binding):

'
'------------------------------------------------------------------------------
' Crear accesos directos usando WHS                                 (14/Ene/00)
'
'------------------------------------------------------------------------------
Option Explicit

Private m_wsShell As Variant

Private Sub cmdCrear_Click()
   ' Crear el acceso directo                                       (14/Ene/00)
   Dim sLnkPath As String
   Dim sLink As String
   Dim sAppPath As String
   Dim vLnk As Variant
   
   sAppPath = Text2
   sLink = Text1
   If InStr(sLink, ".lnk") = 0 Then
       sLink = sLink & ".lnk"
   End If
   ' Crearlo en el escritorio:
   'sLnkPath = m_wsShell.SpecialFolders("Desktop")
   '
   ' Crearlo en el indicado en el listbox
   ' Aunque siempre lo crea en el mismo sitio:
   ' C:\WINDOWS\All Users\Desktop
   ' es decir en el escritorio.
   '
   ' Pero eso era usando TEXT3 a secas,
   ' añadiendo el .Text ya si que sale lo que debe salir...
   '
   sLnkPath = m_wsShell.SpecialFolders(Text3.Text)
   sLnkPath = sLnkPath & "\" & sLink
   
   ' Crear el acceso directo
   Set vLnk = m_wsShell.CreateShortcut(sLnkPath)
   vLnk.Targetpath = sAppPath
   '
   '--------------------------------------------------------------------------
   ' Enviado el 20/Jun/00 por:
   ' paco diaz, frandivi@larural.es
   '
   ' definir directorio de trabajo
   vLnk.WorkingDirectory = "D:\gsCodigo" ' Escribe aquí el directorio
   '--------------------------------------------------------------------------
   '
   vLnk.Save
End Sub

Private Sub cmdSalir_Click()
   ' Salir del programa
   Unload Me
End Sub

Private Sub Form_Load()
   Set m_wsShell = CreateObject("WScript.Shell")
   
   List1.Clear
   
   ' Llenar el listbox con los "folders" de SpecialFolders
   '
   'Dim vName As Variant

   ' (Este método es preferible si quieres mostrar todos las carpetas especiales)

   'For Each vName In m_wsShell.SpecialFolders
   '    List1.AddItem vName
   'Next
   '
   '
   ' Estos no son válidos para el W95
   List1.AddItem "AllUsersDesktop= " & m_wsShell.SpecialFolders("AllUsersDesktop")
   'List1.AddItem "AllUsersStartMenu= " & m_wsShell.SpecialFolders("AllUsersStartMenu")
   'List1.AddItem "AllUsersPrograms= " & m_wsShell.SpecialFolders("AllUsersPrograms")
   'List1.AddItem "AllUsersStartup= " & m_wsShell.SpecialFolders("AllUsersStartup")
   '
   List1.AddItem "Desktop= " & m_wsShell.SpecialFolders("Desktop")
   List1.AddItem "Programs= " & m_wsShell.SpecialFolders("Programs")
   List1.AddItem "StartMenu= " & m_wsShell.SpecialFolders("StartMenu")
   List1.AddItem "Startup= " & m_wsShell.SpecialFolders("Startup")
   List1.AddItem "MyDocuments= " & m_wsShell.SpecialFolders("MyDocuments")
   List1.ListIndex = 0
   '
End Sub

Private Sub Form_Unload(Cancel As Integer)
   Set m_wsShell = Nothing
End Sub

Private Sub List1_Click()
   ' Mostrar el destino del acceso directo
   Dim sTmp As String
   Dim i As Long
   
   sTmp = List1.List(List1.ListIndex)
   i = InStr(sTmp, "= ")
   If i Then
       Text3 = Left$(sTmp, i - 1)
   Else
       Text3 = "Desktop"
   End If
End Sub



lo saque de la pagina del guille.