Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
단축아이콘의 실제경로를 알려면...
단축아이콘의 실제 경로를 알려면 어떤식으로 하면 되는지...
제능력으로는 너무나 어렵네요...^^
1
COMMENTS
공성환
•
2000.08.25 20:42
ofoot@yahoo.co.kr 님의 알려주셨습니다...
//////////
IShellLink를 이용하라는 군요. 다음은 유즈넷에서
퍼온 겁니다. 참조하셔요... 그럼....
uses
ComObj, ShlObj, ActiveX;
{$R *.DFM}
function uoGetShortcutInfo(const shortCutPath: string; aHWnd: HWnd;
var description, arguments, workingDir, iconFile: string;
var hotKey: word; var showCmd, iconIndex: integer): string;
// Given the full path to a shortcut (typically something like
// c:windowsdesktopsomething.lnk), returns all of the info about
// that shortcut.
var
hRes: longInt;
aISL: IShellLink;
aIPF: IPersistFile;
wfd: TWin32FindData;
shortCutPathW: WideString;
begin
result := ''; // Fall-through value
// Get a pointer to the IShellLink interface.
hres := CoCreateInstance(CLSID_ShellLink, nil,
CLSCTX_INPROC_SERVER, IID_IShellLinkA, aISL);
if (SUCCEEDED(hres)) then
begin
// Get a pointer to the IPersistFile interface.
aIPF := (aISL as IPersistFile);
if assigned(aIPF) then
begin
shortCutPathW := shortCutPath;
// Load the shortcut
hres := aIPF.Load(PWideChar(shortCutPathW), STGM_READ);
if SUCCEEDED(hres) then
begin
// Resolve the link.
if (aHWnd = $FFFFFFFF) then // -1 means no UI wanted
hres := aISL.Resolve(aHWnd, SLR_NO_UI)
else // Windows search dialog will appear if necessary
hres := aISL.Resolve(aHWnd, SLR_ANY_MATCH);
if SUCCEEDED(hres) then
begin
// Get the path to the link target.
SetLength(result, MAX_PATH);
hres := aISL.GetPath(PChar(result),
MAX_PATH, wfd,
SLGP_SHORTPATH );
if (not SUCCEEDED(hres)) then
begin
// We didn't get the path. Reset the length of result
SetLength(result, 0)
end
else
begin
// Set the correct length in the path
SetLength(result, strLen(PChar(result)));
// Now, on to the other information
// The description
SetLength(description, MAX_PATH);
hres := aISL.GetDescription(PChar(description), MAX_PATH);
if SUCCEEDED(hres) then
SetLength(description, strLen(PChar(description)))
else
SetLength(description, 0);
// If the interface didn't give us a description, use the title
// of the link itself
if (length(description) = 0) then
begin
description := ExtractFileName(shortCutPath);
description := ChangeFileExt(description, '');
end;
// The working directory
SetLength(workingDir, MAX_PATH);
hres := aISL.GetWorkingDirectory(PChar(workingDir), MAX_PATH);
if SUCCEEDED(hres) then
SetLength(workingDir, strLen(PChar(workingDir)))
else
SetLength(workingDir, 0);
// The arguments
SetLength(arguments, MAX_PATH);
hres := aISL.GetArguments(PChar(arguments), MAX_PATH);
if SUCCEEDED(hres) then
SetLength(arguments, strLen(PChar(arguments)))
else
SetLength(arguments, 0);
// The icon file and index
SetLength(iconFile, MAX_PATH);
hres := aISL.GetIconLocation(PChar(iconFile), MAX_PATH, iconIndex);
if SUCCEEDED(hres) then
SetLength(iconFile, strLen(PChar(iconFile)))
else
SetLength(iconFile, 0);
// The SHOWCOMMAND
aISL.GetShowCmd(showCmd);
// The hotkey
aISL.GetHotkey(hotKey);
end;
end;
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
description,
arguments,
workingDir,
iconFile : string;
hotKey : word;
showCmd,
iconIndex : integer;
begin
uoGetShortcutInfo( 'C:WINDOWS바탕 화면kanlis.exe의 바로 가기.lnk', handle,
description, arguments, workingDir, iconFile,
hotKey, showCmd, iconIndex) ;
Memo1.Lines.Clear;
Memo1.Lines.Add( description );
Memo1.Lines.Add( arguments );
Memo1.Lines.Add( workingDir );
Memo1.Lines.Add( iconFile );
end;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
사발우성
•
2000.08.25 23:10
1
COMMENTS
/
0
LIKES
SQL문에서 SUM값끼리의 나누기가 안먹어여 ㅠ.ㅠ((어제 수정판임당....))
델초보
•
2000.08.26 04:34
MS-SQL은 안 써봐서 잘 모르겠는데요... 전 Oracle만 사용해봐서요... 혹시 SubQuery리가 가능하담 ...
Zeronine
•
2000.08.25 23:14
1
COMMENTS
/
0
LIKES
server에 있는 data Download하는 방법 질문?
김일영
•
2000.08.25 23:13
자료실에 보시면 제 2회 한델 세미나에서 구창민님이 강의하신 내용과 소스가 있습니다. 참고하세요. Z...
웹사이트
•
2000.08.25 16:51
2
COMMENTS
/
0
LIKES
델파이로 검색엔진을 만들수 있을까요?
권영길
•
2000.08.26 09:10
원하시는 기능을 위해서라면 TNMSMTP냐 winshoe, ics의 http를 이용하면 될 것 같군요. 웹사이트 wrote:...
corbie`
•
2000.08.27 07:37
남의 디비를 함부로 글거 온다늬 ㅠ.ㅠ 그건 피땀을 글거오는거와 같지 않나요?
초봇
2000.08.25 10:21
0
COMMENTS
/
0
LIKES
테이블을 동적으로 생성시 기본설정(value 등)은 어떻게 하여야 하는지요?
이세연
•
2000.08.25 10:50
1
COMMENTS
/
0
LIKES
informix와 delphi5와의 만남(급함니다)
성호종
•
2000.08.26 06:19
이세연 wrote: informix에서 500만건이 넘는 테이블 query하기...... 정말 쉽지않은 문젭니다. 이는 inf...
del초보
•
2000.08.25 08:05
2
COMMENTS
/
0
LIKES
콤보박스에서 이름선택시 그 이름에 해당하는 DB의 모든 data 뿌려주기
사발우성
•
2000.08.25 18:57
sql.add('selete * from 테이블'); sql.add('where 전화번호='''+combobox1.text+''''); 참고 하시와여...
이은정
•
2000.08.25 18:41
del초보 wrote: > 델파이 공부한지 보름된 초보입니다. > 모른다고 너무 구박하지 마시구요..부탁드립니...
초보
2000.08.25 08:04
0
COMMENTS
/
0
LIKES
실행중인 프로세스를 죽일 때, 사용하던 리소스까지 전부 회수하는 방법은?
김철호
2000.08.25 06:44
0
COMMENTS
/
0
LIKES
Tedit 등에서 wheelmouse를 연속해서 작동하면 프로그램이 죽어버리는데..
김민호
•
2000.08.25 04:51
3
COMMENTS
/
0
LIKES
문자열.........좀 봐주세요.
강인규
•
2000.08.25 05:52
무슨 출력값을 원하시는지 모르겠지만...... var str : string; i : integer; begin str := '...
김민호
•
2000.08.25 06:01
답변주셔서 고맙습니다. 제가 질문을 잘못드린거 같네요. rs232를 통해 리턴받는string값입니다. 장비...
강인규
•
2000.08.26 03:45
무슨 결과값을 기다리시는건지 모르겠군요. 그걸 알면 도와드릴수 있을거 같은데요. ^-^ 못도와드릴수도 ...
임호빈
•
2000.08.25 04:42
1
COMMENTS
/
0
LIKES
Database Desktop에서 Oracle 연결시 에러: 서비스가 초기화되지 않았습니다
김일영
•
2000.08.25 04:53
임호빈님 안녕하세요. 우선, 오라클이 서버쪽에서 정상적으로 떠 있는지 확인해보세요. 에러의 설명은 이...
초보자
•
•
2000.08.25 04:33
1
COMMENTS
/
1
LIKES
단축아이콘의 실제경로를 알려면...
단축아이콘의 실제 경로를 알려면 어떤식으로 하면 되는지... 제능력으로는 너무나 어렵네요...^^
공성환
•
2000.08.25 20:42
ofoot@yahoo.co.kr 님의 알려주셨습니다... ////////// IShellLink를 이용하라는 군요. 다음은 유즈넷에...
델초보.
2000.08.25 04:29
0
COMMENTS
/
0
LIKES
mdb 에서 'ㄱ,ㅈ...'으로 select 가 안됩니다....ㅠ.ㅠ
희찬
2000.08.26 04:07
0
COMMENTS
/
0
LIKES
Cport2.6에서 ansi가 작동불 경험하신분 도움줌...
이근도
•
2000.08.25 04:15
3
COMMENTS
/
0
LIKES
폼에 있는 DBGRID에 포커스 주기는?
임형호
•
2000.08.25 04:55
음... 테스트를 해봤는데요. 해보고 나니까 문제를 정확히 파악을 못하겠습니다. 폼이 보여질때 DBGrid에...
lyd
•
2000.08.25 07:31
lee wrote: > 임형호 wrote: > > 음... 테스트를 해봤는데요. 해보고 나니까 문제를 정확히 파악을 못하...
이근도
•
2000.08.25 19:19
이근도 wrote: 억! 이게 안되는지요? 저는 폼에 DBGRID를 하나두고 폼이 활성화 될때 이 그리드의 첫번째...
webcome
2000.08.25 04:27
0
COMMENTS
/
0
LIKES
디시젼큐브와 액세스 연결하여 차트 표현시 데이터 입력이 차트에 반영안되는 이유?
정승운
•
2000.08.25 04:17
3
COMMENTS
/
0
LIKES
DLL에서 동적으로 데이타베이스 SESSION공유방법?
이상탁
•
2000.08.25 19:00
답변이 제대로 될지 모르겠습니다만, 단순히 DLL에서만 DB를 연결하실려면, 메인 폼에서 사용하고 있는 ...
김일영
•
2000.08.25 04:25
드디어 저랑 같은 고민을 하시는 분을 찾았군요! 이거 반가워해야 하는건지~ 그러니까 메인폼에는 Session...
유수정
•
2000.08.25 19:15
안녕하세요? 저도 같은 문제로 많은 고민을 했었습니다. (패스워드 다이얼로그 그거 죽이죠... 유져에게...
푸하하
2000.08.25 03:23
0
COMMENTS
/
0
LIKES
DBGrid에서 하나의 컬럼을 워드랩 하는 방법?
이진우
2000.08.25 02:02
0
COMMENTS
/
0
LIKES
NMHTTP컴포넌트에서 POST방식으로 전달하는 방법 좀 갈켜주세요!
heimdal
•
2000.08.25 02:55
2
COMMENTS
/
0
LIKES
파라독스에서 실수형데이터 선언하는 법?
초봇
•
2000.08.25 09:52
문자일경우는 fieldbyname('xxx').asstring; 실수는 asfloat
Black}{ole
•
2000.08.25 02:56
heimdal wrote: > 파라독스에서 실수형데이터는 무엇으로 선언하나여? > > 단지 값만 실수형이어서 그...
heimdal
•
2000.08.25 01:01
3
COMMENTS
/
0
LIKES
체크리스트박스 체크된 아이템 가져오기
구창민
•
2000.08.25 01:10
heimdal wrote: > 안녕하세여..헤임달입니다.. > > 체크리스트박스에 관한 질문인데여.. > 체크리스트...
heimdal
•
2000.08.25 02:57
procedure Tmain.check_shClickCheck(Sender: TObject); var i : integer; begin for i := 0 t...
구창민
•
2000.08.25 02:57
heimdal님 코드는 잘못된 점이 없어보입니다. 그런데 다만, 아래 이벤트가 어떤 이벤트인가요? check...
초보자
2000/08/25 04:33
Views
393
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
//////////
IShellLink를 이용하라는 군요. 다음은 유즈넷에서
퍼온 겁니다. 참조하셔요... 그럼....
uses
ComObj, ShlObj, ActiveX;
{$R *.DFM}
function uoGetShortcutInfo(const shortCutPath: string; aHWnd: HWnd;
var description, arguments, workingDir, iconFile: string;
var hotKey: word; var showCmd, iconIndex: integer): string;
// Given the full path to a shortcut (typically something like
// c:windowsdesktopsomething.lnk), returns all of the info about
// that shortcut.
var
hRes: longInt;
aISL: IShellLink;
aIPF: IPersistFile;
wfd: TWin32FindData;
shortCutPathW: WideString;
begin
result := ''; // Fall-through value
// Get a pointer to the IShellLink interface.
hres := CoCreateInstance(CLSID_ShellLink, nil,
CLSCTX_INPROC_SERVER, IID_IShellLinkA, aISL);
if (SUCCEEDED(hres)) then
begin
// Get a pointer to the IPersistFile interface.
aIPF := (aISL as IPersistFile);
if assigned(aIPF) then
begin
shortCutPathW := shortCutPath;
// Load the shortcut
hres := aIPF.Load(PWideChar(shortCutPathW), STGM_READ);
if SUCCEEDED(hres) then
begin
// Resolve the link.
if (aHWnd = $FFFFFFFF) then // -1 means no UI wanted
hres := aISL.Resolve(aHWnd, SLR_NO_UI)
else // Windows search dialog will appear if necessary
hres := aISL.Resolve(aHWnd, SLR_ANY_MATCH);
if SUCCEEDED(hres) then
begin
// Get the path to the link target.
SetLength(result, MAX_PATH);
hres := aISL.GetPath(PChar(result),
MAX_PATH, wfd,
SLGP_SHORTPATH );
if (not SUCCEEDED(hres)) then
begin
// We didn't get the path. Reset the length of result
SetLength(result, 0)
end
else
begin
// Set the correct length in the path
SetLength(result, strLen(PChar(result)));
// Now, on to the other information
// The description
SetLength(description, MAX_PATH);
hres := aISL.GetDescription(PChar(description), MAX_PATH);
if SUCCEEDED(hres) then
SetLength(description, strLen(PChar(description)))
else
SetLength(description, 0);
// If the interface didn't give us a description, use the title
// of the link itself
if (length(description) = 0) then
begin
description := ExtractFileName(shortCutPath);
description := ChangeFileExt(description, '');
end;
// The working directory
SetLength(workingDir, MAX_PATH);
hres := aISL.GetWorkingDirectory(PChar(workingDir), MAX_PATH);
if SUCCEEDED(hres) then
SetLength(workingDir, strLen(PChar(workingDir)))
else
SetLength(workingDir, 0);
// The arguments
SetLength(arguments, MAX_PATH);
hres := aISL.GetArguments(PChar(arguments), MAX_PATH);
if SUCCEEDED(hres) then
SetLength(arguments, strLen(PChar(arguments)))
else
SetLength(arguments, 0);
// The icon file and index
SetLength(iconFile, MAX_PATH);
hres := aISL.GetIconLocation(PChar(iconFile), MAX_PATH, iconIndex);
if SUCCEEDED(hres) then
SetLength(iconFile, strLen(PChar(iconFile)))
else
SetLength(iconFile, 0);
// The SHOWCOMMAND
aISL.GetShowCmd(showCmd);
// The hotkey
aISL.GetHotkey(hotKey);
end;
end;
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
description,
arguments,
workingDir,
iconFile : string;
hotKey : word;
showCmd,
iconIndex : integer;
begin
uoGetShortcutInfo( 'C:WINDOWS바탕 화면kanlis.exe의 바로 가기.lnk', handle,
description, arguments, workingDir, iconFile,
hotKey, showCmd, iconIndex) ;
Memo1.Lines.Clear;
Memo1.Lines.Add( description );
Memo1.Lines.Add( arguments );
Memo1.Lines.Add( workingDir );
Memo1.Lines.Add( iconFile );
end;