PureBoard
http://forums.purebasic.com/german/

Verknüpfung Speichern & Lesen?
http://forums.purebasic.com/german/viewtopic.php?f=16&t=31889
Seite 1 von 2

Autor:  Velindos [ 03.03.2020 16:02 ]
Betreff des Beitrags:  Verknüpfung Speichern & Lesen?

Hallo Leute,

möchte meine Velindos Pfad(zb.C:\Windows oder "https://www.msn.com/de-de?inst=4&AR=8") als Verknüpfung speichern und bzw. lesen!

Hab die Sache mit "WriteString(0, Pfadfile$ )" versucht, funzt aber nicht!

Gruss ... Velindos!

Autor:  Bisonte [ 03.03.2020 23:01 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

Uralt, funzt aber glaub ich noch.... viewtopic.php?p=46694#p46694

Autor:  Velindos [ 04.03.2020 14:58 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

Hallo Bisonte,
Danke für den Tip, finde aber nichts mit speichern!

Gruss ... Velindos!

Autor:  bobobo [ 05.03.2020 18:01 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

den Part Verknüpfung schreiben hab ich mal mit externer Hilfe gelöst


nircmd oder nircmdc von nirsoft https://www.nirsoft.net/utils/nircmd.html
kann sowas

über das OS tue ich mich da auch schwer und ich brauchte ne Lösung
hab das dann per runprogram aufgerufen

Autor:  Sicro [ 05.03.2020 23:11 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

Hier habe ich auch noch ein Include zum Lesen von Verknüpfungen (unterstützt auch Unicode): GetShellLinkTargetPath

URLs unterstützt dieses Include jedoch noch nicht, wie ich festgestellt habe.
Vielleicht finde ich am Wochenende Zeit, um das Include zu erweitern, damit URLs und das Erstellen von Verknüpfungen unterstützt wird.

Autor:  Derren [ 05.03.2020 23:25 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

.url sind nur textdateien (ini format) oder geht's um was anderes?

Autor:  DarkDragon [ 06.03.2020 13:06 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

Derren hat geschrieben:
.url sind nur textdateien (ini format) oder geht's um was anderes?

Vermutlich eher um .lnk Dateien, z.B. Verknüpfungen auf Programme auf dem Desktop o.ä.

Autor:  Derren [ 06.03.2020 13:54 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

Joah, aber .lnk kann er ja schon erstellen, aber URLs werden nicht unterstützt.

Wenn man in Windows eine Verknüpfung erstellt (Rechtsklick auf Desktop/Ordner --> Neu --> Verknüpfung), wird geprüft ob es sich um eine URL handelt, oder um den Pfad zu einem Programm/Datei etc.
Dann wird entweder eine .url oder eine .lnk erstellt.
Die .url lässt sich einfach selber lesen und schreiben.

Autor:  HeX0R [ 06.03.2020 14:17 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

Code:
Procedure CreateShellLink(FileName$, Link$, Argument$, Description$, WorkingDirectory$ = "")
   Protected ppf.IPersistFile, Result, R2
   CompilerIf #PB_Compiler_Unicode
      Protected psl.IShellLinkW
   CompilerElse
      Protected psl.IShellLinkA
   CompilerEndIf
   
   CoInitialize_(0)
   CompilerIf #PB_Compiler_Unicode
      R2 = CoCreateInstance_(?CLSID_ShellLink, 0, 1, ?IID_IShellLinkW, @psl)
   CompilerElse
      R2 = CoCreateInstance_(?CLSID_ShellLink, 0, 1, ?IID_IShellLinkA, @psl)
   CompilerEndIf
   
   If R2 = #S_OK
      psl\SetPath(FileName$)
      psl\SetArguments(Argument$)
      psl\SetWorkingDirectory(WorkingDirectory$)
      psl\SetDescription(Description$)
      psl\SetShowCmd(#SW_SHOWNORMAL)
      psl\SetHotkey(#Null)
      psl\SetIconLocation(FileName$, 0)
      
      If psl\QueryInterface(?IID_IPersistFile, @ppf) = #S_OK
         If ppf\Save(Link$, #True) = #S_OK
            Result = #True
         EndIf
         ppf\Release()
      EndIf
      psl\Release()
   EndIf
   CoUninitialize_()
   
   ProcedureReturn Result
   
   DataSection
      CLSID_ShellLink:
      ;00021401-0000-0000-C000-000000000046
      Data.l $00021401
      Data.w $0000, $0000
      Data.b $C0, $00, $00, $00, $00, $00, $00, $46
      IID_IShellLinkA:
      ;DEFINE_SHLGUID(IID_IShellLinkA,         0x000214EEL, 0, 0);
      ;C000-000000000046
      Data.l $000214EE
      Data.w $0000, $0000
      Data.b $C0, $00, $00, $00, $00, $00, $00, $46
      ;IID_IShellLinkW {000214F9-0000-0000-C000-000000000046
      IID_IShellLinkW:
      Data.l $000214F9
      Data.w $0000, $0000
      Data.b $C0, $00, $00, $00, $00, $00, $00, $46
      IID_IPersistFile:
      ;0000010b-0000-0000-C000-000000000046
      Data.l $0000010b
      Data.w $0000, $0000
      Data.b $C0, $00, $00, $00, $00, $00, $00, $46
   EndDataSection
EndProcedure

CreateShellLink("C:\Windows", GetUserDirectory(#PB_Directory_Desktop) + "Velindos.lnk", "", "Link to Windows folder")



Autor:  Velindos [ 09.03.2020 09:18 ]
Betreff des Beitrags:  Re: Verknüpfung Speichern & Lesen?

Hallo Leute,
Danke für eure Vorschläge! Nun das mit dem *.lnk ist klar.

Mein Problem ist das ich einen Url ablegen möchte. Der Tip

Zitat:
.url sind nur textdateien (ini format) oder geht's um was anderes?


habe ich befolgt, nur funzt nicht! Habe Sie als Textdatei gespeichert ...

Code:
; SCHREIBEN der URL
#Datei = 0
MessageRequester("PureBasic", "Welcome !"+Chr(13) + "PureBasic will write a url named: PureBasicTestFile.url", 0)
; If CreateFile(#Datei, "C:\Users\MEDION\Desktop\PureBasicTestFile.url")
If OpenFile(#Datei, "C:\Users\MEDION\Desktop\PureBasicTestFile.url")
  WriteString(#Datei,"[InternetShortcut]"+Chr(13)+"URL=https://www.purebasic.fr/german/viewtopic.php?f=16&t=31889",#PB_Ascii)
  CloseFile(#Datei)
Else
  MessageRequester("PureBasic", "Error: can't write the url", 0)
  End
EndIf


und gelesen

Code:
; LESEN der URL
If ReadFile(0, "C:\Users\MEDION\Desktop\PureBasicTestFile.url")
 
  First$ =  Trim(ReadString(0))
  MessageRequester("PureBasic", "Line read: "+First$, 0)
  First$ =  Trim(ReadString(0))
  MessageRequester("PureBasic", "Line read: "+First$, 0)
 
  CloseFile(0)
Else
  MessageRequester("PureBasic", "Error: Can't read the file", 0)
EndIf
End


Wenn ich die Sache mit dem Notepad speichere erkennt er den url.

Gruss ... Velindos!

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/