|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"フルパスをクリップボードにコピー(Delphi最小アプリ)"
SendToフォルダに入れてエクスプローラなどからフルパスを取り出すアプリです。
なるべく早く起動させたいのでライブラリは使わず、APIだけを使っています。
クリップボードを APIで操作するときの参考にしてください。
なお、空のプログラムをコンパイルしたときと同じサイズの実行ファイルができ
るので、おそらく Delphiで作れる最小のアプリです。
//エクスプローラなどからクリップボードにフルパスをコピーするツール
// (written by ぜえた)
program PathCopy;
uses Windows;
function SkipExeName(s: PChar): PChar;
begin
Result := s;
if Result^ = '"' then begin
repeat
Inc(Result);
until Result^ = '"';
Inc(Result);
end else begin
repeat
if Result^ = #0 then Exit;
Inc(Result);
until Result^ = ' ';
end;
while Result^ = ' ' do Inc(Result);
end;
label 0;
var
CmdStr: PChar;
MemHandle: HGlobal;
PathStr: PChar;
begin
CmdStr := SkipExeName(CmdLine);
MemHandle := GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, lstrlen(CmdStr) + 1); if MemHandle = 0 then Exit;
PathStr := GlobalLock(MemHandle);
if PathStr <> nil then begin
lstrcpy(PathStr, CmdStr);
GlobalUnlock(MemHandle);
if not OpenClipboard(0) then goto 0;
EmptyClipboard;
SetClipboardData(CF_TEXT, MemHandle);
CloseClipboard;
Exit;
end;
0:GlobalFree(MemHandle);
end.
ぜえた (QZC05100)
Original document by ぜえた 氏 ID:(QZC05100)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|