Deutsch
Forum

Desktop Verknüpfung

 

Thomas
Freier
Da selbst kein WIN7 und nichts probieren kann: Hat einer einen Code, mit dem alle Desktopverknüpfungen ermittelt werden können?
Anlegen und das Ziel ggf. ändern, habe ich schon mit Andreas Ole_ShellLink.inc, unter WIN7 bei einem erfolgreich testen lassen.
Nur das Auflisten ging gegenüber XP voll daneben.
 
Gruß Thomas
Windows XP SP2, XProfan X2
14.12.2012  
 



Hab kein Win7 zur Hand -

hast Du sinngemäß aber mit XProfan schon folgendes Versucht... ?
cd desktoppfad
cd ..
cd ..
dir /a:D// verzeichnisse auflisten

und dann einfach in alle gelisteten Verzeichnisse\Desktop gehen.
 
14.12.2012  
 




Thomas
Freier
Ich denke.
'Rekursive Suche nach Dateien
'aufgeschrieben von Thomas Glockmann unter Mithilfe
'von David Strutz und Frank Abbing
Def FindFirstFile(2) !"kernel32","FindFirstFileA"
Def FindNextFile(2) !"kernel32","FindNextFileA"
Def FindClose(1) !"kernel32","FindClose"
Def Desktop(0) ReadIni$("Hkey_1","Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Desktop")
Def StartMenueProgramme(0) ReadIni$("Hkey_1","Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Programs")
Struct WIN32_FIND_DATA=dwFileAttributes&,ftCreationTime#(8),ftLastAccessTime#(8),\
ftLastWriteTime#(8),nFileSizeHigh&,nFileSizeLow&,dwReserved0&,dwReserved1&,\
cFileName#(260),cAlternate#(14)
Declare Pos&
Declare HandleA&[]
Declare HandleA$[]
Declare Verz&
Declare Datei&
Declare FH&
Declare FindData#
Declare PM$
Dim FindData#, Win32_Find_Data
Declare Pfad$
Declare Maske$

Proc DateiListe

    Parameters Pfad$,Maske$
    PM$ = Pfad$ + "\\" + Maske$
    FH& = FindFirstFile(Addr(PM$),FindData#)

    While (Pos& >= 1) And (FH& >= 0) = 1

        Repeat

            If (@String$(FindData#,44) <> ".") And (@String$(FindData#,44) <> "..")

                If (FindData#.dwFileAttributes& & $10) = $10

                    Inc Verz&
                    HandleA&[Pos&] = FH&
                    HandleA$[Pos&] = Pfad$
                    Pfad$ = Pfad$ + "\\" + @String$(FindData#,44)
                    Inc Pos&
                    Dateiliste(Pfad$,Maske$)

                Else

                    Inc Datei&
                    AddString(DAT_LV%,Pfad$ + "\\" + @String$(FindData#,44))

                EndIf

            EndIf

        Until FindNextFile(FH&,FindData#) = 0

        Dec Pos&

        If Pos& >= 1

            FH& = HandleA&[Pos&]
            Pfad$ = HandleA$[Pos&]
            Case FindNextFile(FH&,FindData#) = 0 : Break

        Else

            Break

        EndIf

    EndWhile

EndProc

Pos& = 1
Cls
var font&=CreateFont("Arial",16,0,0,0,0)
var DAT_LV%=CreateListBox(%hwnd,"",10,30,610,376)
SetFont DAT_LV%,font&
var a$=translate$(Desktop(0),"\","\\")
Print "Suche..."+a$
DateiListe(a$,"*")
FindClose(FH&)
WaitInput
DeleteObject font&
end
 
Gruß Thomas
Windows XP SP2, XProfan X2
15.12.2012  
 



Warum sol höllenkompliziert bzw. was spricht dagegen ... ?
chdir $AppDataDir
chdir "../../"
addfiles "*"
listbox$("",1)

Windows-Versionen mit UAC können dabei natürlich das Wechseln in die Verzeichnisse
verhindern.
 
15.12.2012  
 




Thomas
Freier
Geht um ein Update bei einem DAU. Hatte schon früher vor Ort mehrere Altversionen gefunden. Zukünftig wollte ich via Email und Programm updaten. Also erst einmal alle alten ***.exe suchen und umbennen.
Um den gültigen Arbeitsordner zu erfahren dann das Ziel der Verknüpfung auf dem Desktop ermitteln. . Deshalb der etwas "höllenkomplizierte" Code, der, hier entfernt, alle gefundenen Verknüpfungen und ***.exe in eine **.txt schreibt, die ich dann bekomme für die Updateanpassung.

Nachtrag
Im Prinzip sollte es so sein
Windows 7: Pfad zum Desktop

Der Desktop des gerade angemeldeten Benutzers ist im folgenden Ordner zu finden:

Original-Windows-7-Pfad:
C:\Users\[Benutzername]\Desktop
Pfad-Bezeichnung in der deutschen Windows-7-Version:
C:\Benutzer\[Benutzername]\Desktop

Pfad unter Windows XP, 2000, 2003 (dt.):
C:\Dokumente und Einstellungen\[Benutzername]\Desktop



In der erzeugten **.txt fand ich dann eine Zeile, die vermutlich die gesuchte Verknüpfung sein könnte
C:\Users\Lund\AppData\Roaming\\\\\\\Microsoft\Windows\Recent\JLKurier.lnk

Damit kann ich vermutlich die alte ***.lnk nicht löschen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
15.12.2012  
 




Andreas
Miethe


Wenn ich das richtig verstehe willst Du alle *.lnk auflisten und den Pfad extrahieren ?

Anbei eine Include und ein kleiner Testcode

1 kB
Hochgeladen:15.12.2012
Ladeanzahl146
Herunterladen
6 kB
Hochgeladen:15.12.2012
Ladeanzahl157
Herunterladen
 
XProfan X2
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
15.12.2012  
 




Thomas
Freier
Danke Andreas, auf WIN7 hast du es sicher getestet. Bei mir mit XP kommt alles wie erwartet (nicht).....eine Endlosschleife....da keine *.lnk vorhanden. Bitte einmal anpassen:
Var I& = -1
 
Gruß Thomas
Windows XP SP2, XProfan X2
15.12.2012  
 




Andreas
Miethe


Dann versuch doch mal den Pfad für alle Benutzer
GSFP(0,ADDR(Desktop$),25,0)'Pfad Alle Benutzer-Desktop

Es gibt ja mehrere Möglichkeiten.

Bei mir funktioniert das übrigens auch mit XP
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
15.12.2012  
 




Thomas
Freier
Andreas, ist doch alles super. Ich habe keine *.lnk . Die gängigen Programme sind im Launcher . Und die Schleife endet nicht bei:
Var Count& = GetCount(0)
Var I& =0' hier besser -1

Repeat

    Print GetDir$("@")+"\\"+GetString$(0,I&)
    Print
    Print "Das Programm befindet sich hier :"
    Print GetLinkPath(GetString$(0,I&))
    Inc I&

Until I& = count&


Gönnst du deiner Ole_ShellLink.inc noch einen kleinen Hinweis auf den letzten Stand.


28 kB
Hochgeladen:16.12.2012
Ladeanzahl187
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
16.12.2012  
 




Andreas
Miethe


Ok, ich habe das mal für X2 angepasst. Die Include sowie die Beispiele.

Bei Dir sollte jetzt auch etwas beim Auslesen angezeigt werden, da im Beispiel das Startmenü ausgelesen wird.

3 kB
Hochgeladen:16.12.2012
Ladeanzahl193
Herunterladen
 
XProfan X2
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
16.12.2012  
 




Thomas
Freier
Danke, läuft alles wie es soll.
 
Gruß Thomas
Windows XP SP2, XProfan X2
17.12.2012  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

11.532 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang29.01.2022
funkheld15.01.2022
Stringray05.01.2022
maroro15.06.2018
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Thomas Freier (6x)
Andreas Miethe (3x)
iF (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie