Ivann писал(а):
1nd1g0, Он stdcall в объявлении забыл. Не только, проблема еще в том, что у меня рабочий XP, а символьные работают только на семерке, на XP их надо делать как-то по другому, как - не смог найти.
P.S: семерка то у меня есть (на реальной машине стоит, XP на виртуальной), дело только в поддержке на XP.
------------ Дoбавленo в 09.44:
1nd1g0 писал(а):
И функцию перечисления всех ссылок (путей) выбранного файлаТакое в теории возможно только для HardLink-ов, символьные ссылки никак не связаны с объектом, на который ссылаются (поэтому такие ссылки и называют висячими).
------------ Дoбавленo в 09.46:
nesco писал(а):
Assasin, а как это может нам помочь1. О том, что в XP можно так делать не всем известно.
2. Стороннюю программу как-то не хочется качать.
3. Этого не умеет пакет Windows.
------------ Дoбавленo в 09.52:
Версия с SymbolicLink. (Работает только в Windows 7):
Add(MainForm,2953706,98,154)
{
}
Add(Edit,13358286,294,140)
{
Left=15
Top=5
Width=115
Text="C:\cout.out"
}
Add(Edit,16575284,343,140)
{
Left=15
Top=35
Width=115
Text="C:\cout.txt"
}
Add(Button,1323108,266,203)
{
Left=140
Top=35
Width=100
Caption="CreateHard"
link(onClick,6185762:doCreateHard,[])
}
Add(InlineCode,6185762,315,203)
{
WorkPoints=#12:doCreateHard|16:doCreateSymbolic|
EventPoints=#8:onCreate|
DataPoints=#10:SourceFile|8:LinkFile|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug,Windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|23: onCreate:THI_Event;|4: |34: SourceFile,LinkFile:THI_Event;|4: |56: procedure doCreateHard(var _Data:TData; Index:word);|60: procedure doCreateSymbolic(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|176:function CreateSymbolicLink(lpFileName,lpExistingFileName:PChar; lpSecurityAttributes:PSecurityAttributes):boolean; stdcall; external 'kernel32.dll' name 'CreateSymbolicLinkA';|0:|35:procedure THiAsmClass.doCreateHard;|5:begin|123: _hi_onEvent(onCreate,integer(CreatehardLink(PChar(ReadString(_Data,LinkFile)),PChar(ReadString(_Data,SourceFile)),nil)));|4:end;|0:|39:procedure THiAsmClass.doCreateSymbolic;|5:begin|127: _hi_onEvent(onCreate,integer(CreateSymbolicLink(PChar(ReadString(_Data,LinkFile)),PChar(ReadString(_Data,SourceFile)),nil)));|4:end;|0:|4:end.|
link(onCreate,10084159:doMessage,[])
link(SourceFile,13358286:Text,[(321,187)(300,187)])
link(LinkFile,16575284:Text,[(328,187)(349,187)])
}
Add(Message,10084159,364,203)
{
}
Add(Button,8719893,266,252)
{
Left=140
Top=5
Width=100
Caption="CreateSymbolic"
link(onClick,6185762:doCreateSymbolic,[(306,258)(306,216)])
}