Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

cd zum dektop?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
BombE



Anmeldungsdatum: 18.01.2006
Beiträge: 31

BeitragVerfasst am: 04.02.2006, 18:07    Titel: cd zum dektop? Antworten mit Zitat

hallo kann mir einer sagen wie ich schnell zum dektop changen kann ? also sowas wie cd %SYSTEMROOT% aber halt zum desktop datt zum system root
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 04.02.2006, 19:12    Titel: Antworten mit Zitat

Welchen Desktop? Bei Systemen der NT Linie (NT, 2000, XP, 2003) gibt es einen für alle Benutzer und jeweils einen Benutzereigenen. Den All Users Desktop zu verändern wäre einfacher, für den Benutzereigenen wirst du ein VBScript oder FB brauchen, da du dafür die Registry auslesen musst, wenn dein Programm auf allen Versionen von Windows funktionieren soll.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
BombE



Anmeldungsdatum: 18.01.2006
Beiträge: 31

BeitragVerfasst am: 04.02.2006, 19:21    Titel: Antworten mit Zitat

also ich wollte schohn auf den desktop des users mitt dem ich grade eingeloggt binn
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 05.02.2006, 08:58    Titel: Antworten mit Zitat

Etwas Pseudo Code:
Zuerst auf den Pfad "Eigene Dateien" wechseln,
einen Pfad runter
und auf "Desktop" wieder rauf
(so sollte es bei Win XP gehen)

Bei Windows 95 funktioniert das natürlich nicht, dafür konnte man eine Betriebssystem Weichebauen.

Hab mal etwas auf Microsoft.de gesucht, hier einige Ansätze von dort:
http://msdn.microsoft.com/library/DEU/cpref/html/frlrfSystemEnvironmentSpecialFolderClassTopic.asp
Hier der Haken: ".NET Framework-Klassenbibliothek"

http://msdn.microsoft.com/library/deu/default.asp?url=/library/DEU/vsintro7/html/vbconcustomfoldersspecialfolders.asp
http://msdn.microsoft.com/library/deu/default.asp?url=/library/deu/vsintro7/html/vbconFeaturesFilesFoldersDeployment.asp
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 05.02.2006, 11:04    Titel: Antworten mit Zitat

In VBScript unter dem Windows Script Host nimmt man SpecialFolder() zu diesem Zweck. Siehe

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/14761fa3-19be-4742-9f91-23b48cd9228f.asp

Wie sich das aus QB heraus nutzen lässt, demonstriert

http://beilagen.dreael.ch/QB/DESKTOPF.BAS

Hinweis: Bei mir kommt der Pfad bereits 8+3-zeichenverkürzt, so dass ich mir einen CALL INTERRUPT nach INT 21h, AX=7160h (siehe hier) ersparen kann.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.02.2006, 12:33    Titel: Antworten mit Zitat

Ich würde einfach
Code:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop

auslesen. Dann muss der Benutzer kein WSH aktiviert haben. lächeln
Registry rules... cool

edit:
Code:
'Auslesen des Desktopverzeichnisses aus QB heraus, v1.0, 05.02.2006
'(c) 2006 Sebastian Steiner
'Homepage: www.Sebastian-Steiner.de
'E-Mail: sebastian[unterstrich]steiner[ätt]gmx{punkt}de

WinV$=ENVIRON$("WINDIR")
Temp$=ENVIRON$("TEMP")
Modus%=1 '1=Nur aktueller Benutzer, 2=Alle Benutzer
LoeschTempDatei%=0 '1=ja, 0=nein

IF WinV$ <> "" Then
 IF RIGHT$(WinV$,1) <> "\" then WinV$=WinV$+"\"
END IF
IF Temp$ <> "" Then
 IF RIGHT$(Temp$,1) <> "\" then Temp$=Temp$+"\"
END IF

SELECT CASE Modus%
CASE 1: Root$="HKEY_CURRENT_USER\"
CASE ELSE: Root$="HKEY_LOCAL_MACHINE\"
END SELECT

SHELL WinV$+"REGEDIT.EXE /E "+Temp$+"temp.reg "+chr$(34)+Root$+"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\"+chr$(34)

Desktop$=""
PRINT "Resultat:"
PRINT ""

'Aus dieser Datei könnten wir auch noch viele andere Informationen
'herauslesen als den Desktop. Darum werden alle Zeilen ausgegeben... :)
OPEN Temp$+"temp.reg" FOR INPUT AS #1
DO UNTIL EOF(1)
 LINE INPUT #1, TempZeile$
 Zeile$=""
 'Nun müssen wir Nullbytes entfernen, da die Pfade UTF-16 sind...
 FOR i%=1 TO LEN(TempZeile$)
     IF MID$(TempZeile$, i%,1)<>CHR$(0) THEN
         Zeile$=Zeile$+MID$(TempZeile$,i%,1)
     END IF
 NEXT i%
 'Da die Backslashes escaped sind, müssen wir sie noch zu einfachen
 'Slashes umwandeln. Ohne diese Umwandlung sähe der Pfad so aus:
 'C:\\ORDNER\\...\\
 TempZeile$=Zeile$
 Zeile$=""
 flag%=0
 FOR i%=1 TO LEN(TempZeile$)
     IF MID$(TempZeile$, i%, 1) <> "\" OR flag%=0 THEN
         Zeile$=Zeile$+MID$(TempZeile$,i%,1)
         IF MID$(TempZeile$,i%,1) ="\" THEN
             flag%=1
         ELSE
             flag%=0
         END IF
     END IF
 NEXT i%
 PRINT Zeile$
 IF INSTR(UCASE$(Zeile$),"DESKTOP") THEN
  Desktop$=RIGHT$(Zeile$, LEN(Zeile$)-INSTR(Zeile$,"="))
 END IF
 IF EOF(1) THEN EXIT DO
LOOP
CLOSE #1

IF LoeschTempDatei% = 1 THEN KILL Temp$+"temp.reg"
IF Desktop$="" THEN
 PRINT "Fehler beim Auslesen!"
 SLEEP: END
END IF

'Achtung: Umlaute müssen noch ins DOS-Format umgewandelt werden und der lange
'Pfad muss noch mittels Interrupt in einen 8.3 Pfad umgewandelt werden, bevor
'man den Pfad in QB benutzen kann.
PRINT ""
PRINT "Hier dein Desktop: "; Desktop$
SLEEP: END

_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
BombE



Anmeldungsdatum: 18.01.2006
Beiträge: 31

BeitragVerfasst am: 05.02.2006, 17:19    Titel: Antworten mit Zitat

danke für die hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz