09-12-2010, 11:19 AM
هل من فكرة لكيفية الحصول على حجم الملف بمجرد مرور الفأرة فوق الملف
أقصد اي ملف في اي مكان..سطح المكتب اوفي مجلد..
شكرا
أقصد اي ملف في اي مكان..سطح المكتب اوفي مجلد..
شكرا
|
معلومات عن الملفOn MouseHover ؟
|
|
09-12-2010, 11:19 AM
هل من فكرة لكيفية الحصول على حجم الملف بمجرد مرور الفأرة فوق الملف
أقصد اي ملف في اي مكان..سطح المكتب اوفي مجلد.. شكرا
09-12-2010, 12:30 PM
السلام عليكم
1- إستقبال موضع المؤشر GetCursorPos 2- جلب المقبض إنطلاقا من موضع المؤشر WindowFromPoint 3- جلب مسار الملف/مجلد إنطلقا من مقبض المتحصل عليه في (2) GetFinalPathNameByHandle - ملاحظة : GetFinalPathNameByHandle متوفرة في Vista فما فوق !! & لم أجرب . بالتوفيق,, I'M Fly Like A G6
09-12-2010, 12:53 PM
في ما يخص
GetFinalPathNameByHandle Vista... حصرا؟....ماذا عن أكس بي لم تنجح معي الدالة WindowFromPoint تعطيك فقط الكنترول وليس الملفات المؤشر عليها المثال مرفق ![]() لا فكرة؟ لأخذ الهندل للملف على سطح المكتب..؟ كود : [align=left]Use the FileFromPoint property to get the path of the file from the cursor. The control fires the StateChange event when the user selects a file or a folder. Use Get property to retrieve the collection of selected items. Use the BrowseFolderPath property to retrieve the browsed folder path.
The following VB sample displays the file from the cursor:
Private Sub ExFileView1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim f As String
f = ExFileView1.FileFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
If Len(f) > 0 Then
Debug.Print f
End If
End Sub
The following C++ sample displays the file from the cursor:
void OnMouseMoveExfileview1(short Button, short Shift, long X, long Y)
{
CString f = m_fileview.GetFileFromPoint( X, Y );
if ( f.GetLength() > 0 )
OutputDebugString( f );
}
The following VB.NET sample displays the file from the cursor:
Private Sub AxExFileView1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXFILEVIEWLib._IExFileViewEvents_MouseMoveEvent) Handles AxExFileView1.MouseMoveEvent
Dim f As String = AxExFileView1.get_FileFromPoint(e.x, e.y)
If Len(f) > 0 Then
Debug.WriteLine(f)
End If
End Sub
The following C# sample displays the file from the cursor:
private void axExFileView1_MouseMoveEvent(object sender, AxEXFILEVIEWLib._IExFileViewEvents_MouseMoveEvent e)
{
string f = axExFileView1.get_FileFromPoint(e.x, e.y);
if (f.Length > 0)
System.Diagnostics.Debug.WriteLine(f);
}
The following VFP sample displays the file from the cursor:
*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y
with thisform.ExFileView1
local f
f = .FileFromPoint( x, y )
if ( len(f) > 0 )
wait window nowait f
endif
endwith[/align]دلفي ؟؟
11-12-2010, 02:27 AM
إقتباس :sample displays the file from the cursor: يقصد عندما يكون مؤشر الفئرة فوق المكون ExFileView1 ... و ليس من سطح المكتب . لتجريب هذه المكونات ... ثم من الدالفى Component --> Import Active x Control ثم اختر ExFileView... ثم فى حدث MouseMove كود : procedure TForm1.ExFileView1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
f: string;
begin
f := ExFileView1.FileFromPoint[X, Y];
if Length (f) > 0 then
Caption := f;
end;
11-12-2010, 08:23 AM
نعم
يعني لا توجد دالة FileFromPoint في مقابل WindowFromPoint لالتقاط الهندل للملف على سطح المكتب او في اكسبلورر " داخل مجلد" ؟
11-12-2010, 10:56 AM
WindowFromPoint دالة ويندوز أم FileFromPointفهي دالة مضمنة ....
- أشرت إلى GetFinalPathNameByHandle, أيضا يمكن عمل Hook لـ ZwQueryInformationFile نقرأ المعلومات في بنية FileNameInformation لكن لضيق الوقت لم أحظر مثال بعد .... يمكنك مواصلة البحث . بالتوفيق,, I'M Fly Like A G6
11-12-2010, 02:16 PM
شكرا
بالطبع ..سأبحث عن هذه الدوال وفقك الله |
|
|