Seite 2 von 3

Verfasst: 11.06.2007 17:09
von ts-soft
Thorsten1867 hat geschrieben: Ich glaube, dass habe ich aus JaPBe 'geklaut' und für meine Zwecke abgeändert. :wink:
Dann darfste jetzt von mir klauen :mrgreen:

Code: Alles auswählen

Procedure.s GetDesktopDir()
  Protected *itemid.ITEMIDLIST
  Protected location.s = Space(#MAX_PATH)

  If SHGetSpecialFolderLocation_ (0, #CSIDL_DESKTOP, @*itemid) = #NOERROR
    If SHGetPathFromIDList_(*itemid, @location)
      If Right(location, 1) <> "" : location + "" : EndIf
      ProcedureReturn location
    EndIf
  EndIf
EndProcedure
Bei MemoryAllokierung würde das + 1 Sinn machen

Verfasst: 11.06.2007 17:12
von AND51
Thorsten1867 hat geschrieben:Ich verwende folgende Routine. Der Vorteil ist, dass der Pfad auch beim temporären Compilieren stimmt.
Klickste in der IDE in den Compiler-Einstellungen an, dass die EXE im selben Ordner wie der Source reinkompiliert werden soll, dann kannste auch ProgramFile() benutzen und bis um einen Befehl plattform-unabhängiger. :wink:

Verfasst: 11.06.2007 17:17
von ts-soft
>> und bis um einen Befehl plattform-unabhängiger
Vielleicht mal testen AND, seine Funktion ist plattformunabhängig :mrgreen:

// Nachtrag: Fast

Code: Alles auswählen

Procedure.s GetExePath() ; Program Path
  Protected ProgDir.s = GetPathPart(ProgramFilename())
  Protected TempDir.s = GetTemporaryDirectory()
   If UCase(ProgDir) = UCase(#PB_Compiler_Home + "COMPILERS\") Or ProgDir = TempDir
    ProgDir = GetCurrentDirectory()
  EndIf
  ProcedureReturn ProgDir
EndProcedure

Verfasst: 11.06.2007 17:29
von Thorsten1867
ts-soft hat geschrieben:Protected TempDir.s = GetTemporaryDirectory()
Das funktioniert bei mir seltsamerweise nicht.
Das Programmverzeichnis ist bei mir abgekürzt ("...~...") und TempDir nicht, womit der Vergleich daneben geht. :cry:

Code: Alles auswählen

C:\DOKUME~1\thorsten\LOKALE~1\Temp\
C:\Dokumente und Einstellungen\thorsten\Lokale Einstellungen\Temp\

Verfasst: 11.06.2007 17:37
von ts-soft
@Thorsten
Dann haste irgendeinen Registry-Schalter verdreht :mrgreen:

Code: Alles auswählen

Debug GetPathPart(ProgramFilename())
Debug GetTemporaryDirectory()
Debugger-Ausgabe hat geschrieben:C:\Dokumente und Einstellungen\Thomas\Lokale Einstellungen\Temp\
C:\Dokumente und Einstellungen\Thomas\Lokale Einstellungen\Temp\

Verfasst: 11.06.2007 17:47
von AND51
> // Nachtrag: Fast
Fast <> Ganz :mrgreen:

Ich persönlich bin der Meinung, dass GetPathPart(ProgramFilename()) (auch als Macro verpackt), genügt, zumal man dan den "Ballast" (damit meine ich das Vergleichen, ob man sich im Compilers-Verzeichnis befindet und das manuelle hinzufügen des eventuell fehlenden Backslashes) spart.
Das ganze natürlich unter Verwendung der Option, die in den Compiler-Einstellungen zu finden ist (PB IDE 4.10).

Verfasst: 11.06.2007 17:56
von ts-soft
Ich spare mir lieber den Ballast in meiner Firewall, 3 temporäre Exen mit
häufigen Änderungen im Temp sind mir lieber als wenn die Firewall für jedes
Source-Verzeichnis diese Einträge generiert, bzw. ich nachfragen
beantworten muß.
Temp ist ja auch für sowas vorgesehen, aber da sollte jeder sich das
aussuchen, was für ihn die meisten Vorteile beinhaltet.

Verfasst: 11.06.2007 18:03
von AND51
Da könnte man sich drüber streiten.
Aber dfas lass ich mal lieber... :lol:
Also im Hinblick auf das Ergebnis für den "Kunden", schenk ich mir die Firewaleinträge und lasse das immer zu, denn ich weiß ja selbst am besten was für ein zeuch ich da zusammenprogrmmiere.
Außerdem werde ich so meinem performantem Ruf gerecht... :lol:

Verfasst: 11.06.2007 18:04
von Thorsten1867
ts-soft hat geschrieben:@Thorsten
Dann haste irgendeinen Registry-Schalter verdreht :mrgreen:
Scheint ein JaPBe - Problem zu sein. Mit der PB-IDE bekomme ich auch das gleiche Ergebnis wie du.

Verfasst: 11.06.2007 18:07
von ts-soft
@AND
Wenn Du keine richtige Firewall kennst, dann laß es doch einfach. Ich nutze
nicht die WindowsFirewall, die würde ich nicht mal als sowas bezeichnen.
Bei jeder Compilierung wird die Exe verändert und somit die Einstellungen
ungültig, da es nicht mehr dieselbe Datei ist. Ich müßte als in jedem Source
Ordner mind. 3 Dateien freigegeben mit dem Vermerk "Häufige Änderungen
ignorieren"
Das spare ich mir lieber, genauso wie die unnütze Windows-Firewall :mrgreen: