マニアック

こんにちは これは私の最初のhabratopikです (サンドボックスをカウントしません)

誰がそれを見るかどうかさえわからない:-)

まあ、私はWindowsにはないMacのチップのいくつかが好きです。 可能な限り、私はそれらをスクリプト言語AutoHotKeyで書きます。 あなたはまだこの言語について知りませんか? さて、ここwww.autohotkey.comにある可能性が高いです。 これはほぼすべての本格的な言語で記述できますが、主なものはアイデアであるため、これについて例を挙げます。

たぶん、これは誰かに役立つと思われる

接続されているデバイスを表示して削除する

新しく接続されたデバイスのショートカットがデスクトップに表示される場合、すべて同じように便利です。 また、抽出を意味するアイコンに移動するだけで抽出するのも便利です。



もちろん、このプロセスにはさまざまなユーティリティ( DeskDriveなど )がありますが、残念なことに、それを単に大切なボタンに転送するだけではCD / USBを簡単に取り外すことはできません。 私の場合、抽出アイコンは、Drag`n`Dropからデバイス文字を抽出するコンパイル済みEXEへのショートカットです(はい、それらをすべて選択してそこにドロップすることができ、それらはすべて抽出されます(およびCD \ DVDも)。 ラベルに名前が表示されないようにするには、[名前の変更]をクリックし、入力フィールドでALTを押したまま、NumPadですばやく0160と入力する必要があります。 デスクトップ上のすべてのショートカットがそのようになるためには、名前が一致しないように、各ショートカットに対してこのn回目の実行を行う必要があります。

exe +アイコンはこちら

まず、抽出プログラムを検討します。

(シンプルなバージョン。デバイスのショートカットを使用して食べる-それらは抽出されます)

#NoEnv

#NoTrayIcon



Loop ; .

{

curr:=%A_Index% ;A_Index -



; := %% curr

; 1,2,3... %1%, %2%, .... -



if(curr="") ; :-)

ExitApp ;



FileGetShortcut, %curr%, OutTarget ; Target

Driveletter := SubStr(OutTarget,1,2) ;

;======== Help AutoHotKey=====

hVolume := DllCall("CreateFile"

, Str, "\\.\" . Driveletter

, UInt, 0x80000000 | 0x40000000 ; GENERIC_READ | GENERIC_WRITE

, UInt, 0x1 | 0x2 ; FILE_SHARE_READ | FILE_SHARE_WRITE

, UInt, 0

, UInt, 0x3 ; OPEN_EXISTING

, UInt, 0, UInt, 0)

if hVolume <> -1

{

DllCall("DeviceIoControl" ; USB, CD

, UInt, hVolume

, UInt, 0x2D4808 ; IOCTL_STORAGE_EJECT_MEDIA

, UInt, 0, UInt, 0, UInt, 0, UInt, 0

, UIntP, dwBytesReturned ; Unused.

, UInt, 0)

DllCall("CloseHandle", UInt, hVolume)

}

FileRecycle, %curr% ;

}

return







しかし、それは単純なバージョンでした。 「ベルとホイッスルの束」(複雑なバージョンへのリンクのすぐ上)を持つ複合体は次のようになります。

*ファイルがデバイスへのリンクをスローしない場合は、ゴミ箱に移動します(古き良きMAC)

*同じ運命は、デバイスへのリンクではなく、デバイス内のフォルダー\ファイルへのリンクになります。たとえば、

*ハードドライブへの参照と同じこと。 それらを取得する必要はありません:-)

*パラメータなしでプログラムを起動するとき(ダブルクリックするだけ)、プログラムはチェックします

すべてのデバイスの準備が整い、デスクトップ上のショートカットが更新され(不要になり、必要に応じて追加されます)、exeフォルダー「ico」からデバイスのアイコンと名前が取得されます。 アイコン名の形式は明確だと思います:(J)S​​oap box.ico-これはデバイスJのアイコンであり、デスクトップ上の名前は「Soap box」になることを意味します。



しかし、何かが欠けていると感じますか? うん! 接続時にデスクトップにアイコンが表示されるようにします! ただし、ここで1つの注意点があります。これには、プログラムが常にメモリにハングし、WM_DEVICECHANGEメッセージをキャッチすることが必要であり、これに同意する人はほとんどいません。 それでも、突然の場合:

コード+エグゼ

ミラー(Webfile.ru)

もちろん、いくつかのバグがあります。たとえば、カードリーダーでは正しく動作しないことがよくありますが、これは何らかの理由でシステムがメモリカードをカードリーダーに挿入または挿入するときにWM_DEVICECHANGEを送信しないためです(誰かが解決策を知っていますか?

私のマシン(XP SP3)でのみテストされているので、川でスープが注がれると思います:-)



ps:アイコンはここで取得できます:

deviantArt.com

allday.ru (登録後のみ)

www.iconspedia.com

pps:これがMac Maniacのトピックの最後のトピックではないかのように、または "私はMACにはあまりにも貧弱です" :-)



All Articles