Verknüpfung Speichern & Lesen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Verknüpfung Speichern & Lesen?

Beitrag von Velindos »

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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Verknüpfung Speichern & Lesen?

Beitrag von Bisonte »

Uralt, funzt aber glaub ich noch.... viewtopic.php?p=46694#p46694
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Verknüpfung Speichern & Lesen?

Beitrag von Velindos »

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

Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Verknüpfung Speichern & Lesen?

Beitrag von bobobo »

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
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Verknüpfung Speichern & Lesen?

Beitrag von Sicro »

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.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: Verknüpfung Speichern & Lesen?

Beitrag von Derren »

.url sind nur textdateien (ini format) oder geht's um was anderes?
Signatur und so
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Verknüpfung Speichern & Lesen?

Beitrag von DarkDragon »

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.ä.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: Verknüpfung Speichern & Lesen?

Beitrag von Derren »

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.
Signatur und so
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Verknüpfung Speichern & Lesen?

Beitrag von HeX0R »

Code: Alles auswählen

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")


Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Verknüpfung Speichern & Lesen?

Beitrag von Velindos »

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
.url sind nur textdateien (ini format) oder geht's um was anderes?
habe ich befolgt, nur funzt nicht! Habe Sie als Textdatei gespeichert ...

Code: Alles auswählen

; 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: Alles auswählen

; 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten