19. november 2002 - 11:57Der er
4 kommentarer og 1 løsning
Variabel navn
Hvordan kan man via VB sætte en variabel i Environment som skal slå igennem første gang ?? Eller kan man via Shell kalde "CMD.exe" med en parameter ???
Jeg forstår desværre ikke helt dit spørgsmål, men du kan godt kalde exe-filer med parametre, på samme måde som i batch-filer (hvis du kender til dem). Husk bare mellemrum mellem kommando og parameter.
Du kan prøve med det her: Declare Function SetEnvironmentVariable Lib "kernel32" Alias _ "SetEnvironmentVariableA" (ByVal lpName As String, _ ByVal lpValue As String) As Long
lRet = SetEnvironmentVariable("VAR", "DETTE ER EN TEST")
Så vidt jeg kan se ud af dokumentationen vil variable sat på denne måde kun være tilgængelig for dit eget programs 'børn'. Jeg har ikke testet koden selv.
Hvis du kan finde nogen som helst anden måde at kommunikere på (DDE, OLE, clipboard - hvad som helst) så vil jeg foreslå det - environment variable er en skrøbelig størrelse at bruge.
Til Joern: Jeg har testet dit forslag med cmd.exe, som ikke kan udføre parameteren. Det er muligt at det vil virke til et windowsbaseret program, men har du prøvet med cmd.exe ??
Til jesperthomsen: Jeg har forsøgt med dit forslag på en XP, og variablen slår ikke igennem.
Jeg er ret sikker på at du ikke kan sætte en environmentvariabel som kan ses uden for dit programs eget miljø. Når du starter et nyt program får det sin egen kopi af environment-miljøet og kan manipulere inden for det, men ikke i den kaldende proces' miljø. Hvis det er det du vil, kommer du nok til at opgive det.
Problemet er nu løst ved, at jeg i min VB routine laver en bat-fil og kalder denne, hvorved variablen bliver lavet om, og ja, "i den kaldene proces´ miljø", citat jesperthomsen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.