15. marts 2001 - 10:32Der er
5 kommentarer og 1 løsning
fil associering, workdirectory,
jeg har 3 spørgsmål:
1: hvordan for man et program til at lystre på fil associering?:
Jeg har et program der når filen bliver åbnet skal gøre noget så simpelt som at: åbne et andet program + et parameter til det program..
2: hvordan for man et program til at skifte arbejdsbiblotek så den ikke kører kommandoerne fra det biblotek exe\'en ligger i?
3: hvordan laver man en dialogbox til at vælge directory, og får den til at skrive det til en fil eks.: man vælger c:\\windows kommer inifile.ini til se sådan ud: c:\\windows
procedure SetAssociation(Extention, Name: string; IconIndex: Integer = 0); //------------------------------------- //Set Association for a Given Extention: // //Example : SetAssociation(\'Mpp\', Application.ExeNeme); //-------------------------------------
var Regist: TRegistry; begin Regist := TRegistry.Create; try with Regist do begin RootKey := HKEY_LOCAL_MACHINE; if OpenKey(\'\\Software\\Classes\\.\' + Extention, true) then begin WriteString(\'\', Name); if OpenKey(\'\\Software\\Classes\\\' + Name, true) then begin WriteString(\'\', Name); if OpenKey(\'\\Software\\Classes\\\' + Name + \'\\DefaultIcon\', true) then WriteString(\'\', Application.ExeName + \',\' + IntToStr(IconIndex)); if OpenKey(\'\\Software\\Classes\\\' + Name + \'\\shell\\open\\command\', true) then WriteString(\'\', Application.ExeName + \' %1\'); end; end; end; finally Regist.Free; end; end;
//2) // Brug SetCurrentDir
//3)
function BrowseForFolder(hndl: HWND; msg: string=\'\'): string; {hndl iscalling forms handle} var FolderName: string; GDir: string; PList: PItemIDList; bi: TBrowseInfo; begin FillChar(bi, SizeOf(TBrowseInfo), 0); FolderName:= StringOfChar(\' \', MAX_PATH); GDir:= StringOfChar(\' \', MAX_PATH);
with bi do begin hwndOwner:= hndl; pidlRoot:= nil; pszDisplayName:= PChar(FolderName); lpszTitle := PChar(msg); lpfn:= nil; ulFlags:= BIF_DONTGOBELOWDOMAIN or BIF_RETURNONLYFSDIRS or BIF_RETURNFSANCESTORS; end;
PList:= SHBrowseForFolder(bi); {<-- show the dialog}
if Plist<>nil then begin SHGetPathFromIDList(Plist, PChar(GDir)); setlength(GDir, pos(#0, gdir)-1); result:= GDir; end else result:= \'\'; end;
//3) With TIniFile.Create(\'Tmp.ini\') do try WriteString(BrowseForFolder(Form1.Handle),\'Biblotek\',GetCurrentDir); finally free; end;
jeg var væk et stykke tid: mit nye project, en demoafspiller til quake3arena, jeg fandt en for nogle dage siden men den virkede skod, så nu laver jeg selv en :) tak for hjælpen, jeg havde knap nok posted det før der kom svar .. nice
jeg kan ikke få det til at virke, hver gang jeg laver en Tregistery, Tinifile, osv virker det ikke: undeclared identifier, og hvor skal functioner sættes ind henne??
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.