Autor Thema: Datei auf "Privaten" Windows Desktop kopieren....  (Gelesen 3460 mal)

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Hallo Liebe @Notes Gemeinde,

habe da mal eine Frage,

Ich habe schon im Forum gesucht, jedoch nicht das gefuden was ich gesucht habe. Folgendes Problem,

ich habe eine Datei auf einem Allgemeinen Netzlaufwerk und diese Datei soll nun per Button auf meine Privaten Desktop kopiert werden.
Ich möchte nicht mit AllUsers arbeiten....

Ich weiß ich kann mir den Pfad des Desktops aus der Registry ziehen, jedoch erhalte ich da ja noch die WindowsVariable "%USERPROFILE%" wie erhalte ich für diese Variable einen Pfad?

Hoffe Ihr könnt mir helfen. Vielen Dank..

Gruß Christian

P.S.
Mein Code bisher:

Code
	Dim text As Variant
	text = Evaluate({@RegQueryValue("HKEY_Current_User"; "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders"; "Desktop")})
	text = text(0) & "\Datei.lnk"
	Filecopy "I:\Verzeichnis\Datei.lnk", text
	Messagebox("''Installation'' erfolgreich durchgeführt!")
« Letzte Änderung: 06.02.09 - 11:41:38 von C_T »
Viele Grüße

Christian T.

Offline Johnson

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Männlich
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #1 am: 06.02.09 - 10:09:05 »
Guck mal hier:

http://runtime-basic.net/Windows-API:Data:shell32.dll:SHGetFolderLocation

Hab's allerdings noch nicht ausprobiert. Das musst du vielleicht noch für LS umschreiben.
Gruß
Johnson

s_Old

  • Gast
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #2 am: 06.02.09 - 10:21:35 »
Ich hab da auch mal was geschrieben:

Code
Declarations

Type FILETIME
	dwLowDateTime As Long
	dwHighDateTime As Long
End Type

Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (Byval hKey As Long, Byval lpSubKey As String, phkResult As Long) As Long
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
Declare Function RegCloseKey Lib "advapi32.dll" (Byval hKey As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (Byval hKey As Long, Byval lpValueName As String, Byval lpReserved As Long, lpType As Long, Byval lpData As String, lpcbData As Integer) As Long
Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (Byval hKey As Long, Byval dwIndex As Long, Byval lpname As String, Byval cbName As Long) As Long
Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (Byval hKey As Long, Byval dwIndex As Long, Byval lpname As String, lpcbName As Long, Byval lpReserved As Long, Byval lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long

Declare Function RegSetValueEx& Lib "advapi32.dll" Alias "RegSetValueExA" _
(Byval hKey As Long, Byval lpValueName As String, Byval Reserved As Long, Byval _
dwType As Long, Byval lpData As String, Byval cbData As Long)

Declare Function RegCreateKey& Lib "advapi32.dll" Alias "RegCreateKeyA" (Byval _
hKey As Long, Byval lpSubKey As String, phkResult As Long)

'-- Constant Definitions for WIN32API
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004

Const SYNCHRONIZE = &H100000
Const STANDARD_RIGHTS_READ = &H20000
Const STANDARD_RIGHTS_WRITE = &H20000
Const STANDARD_RIGHTS_EXECUTE = &H20000
Const STANDARD_RIGHTS_REQUIRED = &HF0000
Const STANDARD_RIGHTS_ALL = &H1F0000
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Const KEY_EXECUTE = (KEY_READ)
Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Const ERROR_SUCCESS = 0&

' Reg Data Types...
Const REG_NONE = 0                       ' No value type
Const REG_SZ = 1                         ' Unicode nul terminated string
Const REG_EXPAND_SZ = 2                  ' Unicode nul terminated string
Const REG_BINARY = 3                     ' Free form binary
Const REG_DWORD = 4                      ' 32-bit number
Const REG_DWORD_LITTLE_ENDIAN = 4        ' 32-bit number (same as REG_DWORD)
Const REG_DWORD_BIG_ENDIAN = 5           ' 32-bit number
Const REG_LINK = 6                       ' Symbolic Link (unicode)
Const REG_MULTI_SZ = 7                   ' Multiple Unicode strings

Code
Public Function GetDesktopPath() As String
	Dim hKey As Long
	Dim lRetType As Long
	Dim lpReturnedString As String*127
	Dim retSize%
	retSize% = 126	
	
	res1& = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", 0, KEY_READ, hKey)
	
	If res1& = ERROR_SUCCESS  Then
		res2& = RegQueryValueEx(hKey, "Desktop", 0, lRetType, lpReturnedString, retSize%)
		If res2& = ERROR_SUCCESS Then
			GetDesktopPath = Left$(lpReturnedString, retSize%-1)
			Exit Function
		End If
	End If
	
	GetDesktopPath = ""
End Function

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #3 am: 06.02.09 - 10:22:30 »
Warum so umständlich?

Code
Msgbox Environ("USERPROFILE")
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Johnson

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Männlich
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #4 am: 06.02.09 - 10:24:52 »
Weil man dann besser angeben kann.   ;D

Spiel, Satz und Sieg für m3.
Gruß
Johnson

s_Old

  • Gast
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #5 am: 06.02.09 - 10:29:05 »
Weil man dann besser angeben kann.   ;D

Spiel, Satz und Sieg für m3.

Ich wollte keinesfalls angeben, habe ich gar net nötig :)
Ich habe den Thread gesehen, wusste, dass wir so was schon gemacht haben und hab das dann gepostet. Das schaut nur so umständlich aus, weil die ganzen Deklaration usw. dort mit drin sind, in der Lib sind natürlcih noch wesentlich mehr Funktionen enthalten.

Offline Johnson

  • Senior Mitglied
  • ****
  • Beiträge: 258
  • Geschlecht: Männlich
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #6 am: 06.02.09 - 10:33:43 »
Ruhig Brauner. Ruuuuhig. Ich weiß. War ja nur Spaß.
Gruß
Johnson

s_Old

  • Gast
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #7 am: 06.02.09 - 10:44:23 »
Jaaa... war ja auch nur Spaß  ;)
Immer dran denken: Heut´ ist Freitag  :)

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #8 am: 06.02.09 - 11:41:28 »
Genau

heute ist Freitag,
Bald ist Feierabend

Und ich danke euch da mir die simple Möglichkeit gereicht hat und alles jetzt klappt.

Bis Dann
Viele Grüße

Christian T.

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #9 am: 06.02.09 - 11:58:03 »
Auch wenn es schon gelöst ist, aber eine weitere Möglichkeit wäre:

WshShell.SpecialFolders("Desktop")

siehe http://msdn.microsoft.com/en-us/library/0ea7b5xe(VS.85).aspx
« Letzte Änderung: 06.02.09 - 14:28:21 von Demian »
Gruß
Demian

Offline C_T

  • Senior Mitglied
  • ****
  • Beiträge: 272
  • Geschlecht: Männlich
Re: Datei auf "Privaten" Windows Desktop kopieren....
« Antwort #10 am: 06.02.09 - 13:42:23 »
Auch dir danke sehr
Viele Grüße

Christian T.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz