Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
Turbo Delphi für Win32
|
Re: Suche Tool für USB-Stick ...
13. Aug 2006, 14:38
Zitat von vagus:
das war ja meine frage von vorhin:
ob mir jemand aus diesem profi-forum so was machen könnte/würde?
ALso einfach ein Programm,d ass beim Starten eine Batch-Datei ausführt und beim Beenden eine andere?
Das wäre schnell gemacht:
Hier mal eine Quick'n Dirty Lösung (ohne Garantie auf Funktionalität):
Delphi-Quellcode:
program USBStickMounter;
uses
Windows, Messages, ShellApi;
const
ClassName = 'WndClass';
IDC_BUTTON = 3;
var
hwndButton: DWORD;
function WndProc(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: LParam):
lresult; stdcall;
begin
Result := 0;
case uMsg of
WM_CREATE:
begin
// Batch beim Starten
ShellExecute(hWnd, 'open', 'start.cmd', '', '', 0);
hwndButton := CreateWindowEx(WS_EX_APPWINDOW, 'BUTTON', 'Schließen', WS_VISIBLE or WS_CHILD, 5, 5, 100, 25, hWnd, IDC_BUTTON, hInstance, nil);
end;
WM_COMMAND:
begin
if hiword(wParam) = BN_CLICKED then
case loword(wParam) of
IDC_BUTTON:
begin
SendMessage(hwnd, WM_DESTROY, 0, 0);
end;
end;
end;
WM_DESTROY:
begin
// Batch beim Beenden
ShellExecute(hWnd, 'open', 'close.cmd', '', '', 0);
PostQuitMessage(0);
end;
else
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;
end;
var
wc: TWndClassEx = (
cbSize: SizeOf(TWndClassEx);
Style: CS_HREDRAW or CS_VREDRAW;
lpfnWndProc: @WndProc;
cbClsExtra: 0;
cbWndExtra: 0;
hbrBackground: COLOR_APPWORKSPACE;
lpszMenuName: nil;
lpszClassName: ClassName;
hIconSm: 0;
);
msg: TMsg;
begin
wc.hInstance := hInstance;
wc.hIcon := LoadIcon(hInstance, MAKEINTRESOURCE(100));
wc.hCursor := LoadCursor(0, IDC_ARROW);
RegisterClassEx(wc);
CreateWindowEx(WS_EX_TOPMOST, ClassName, 'USB-Stick', WS_CAPTION or WS_VISIBLE or WS_BORDER, 0, GetSystemMetrics(SM_CYSCREEN) - 90, 130, 60, 0, 0, hInstance, nil);
while GetMessage(msg,0,0,0) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
ExitCode := msg.wParam;
end.
Faux Manuel Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
|