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.

Dann darfste jetzt von mir klauen
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.

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
// 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.
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
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
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...
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...

Verfasst: 11.06.2007 18:04
von Thorsten1867
ts-soft hat geschrieben:@Thorsten
Dann haste irgendeinen Registry-Schalter verdreht
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
