PDA

View Full Version : پنجره های ویندوز



ucnazard
جمعه 01 مرداد 1389, 15:26 عصر
سلام خسته نباشید

چطوری میتونیم از پنجره های ویندوز مثل پنجره خصوصیات یه فایل یا پنجره ایی که موقع کپی و حذف تو ویندوز وجود دازن تو برناممون استفاده کنیم
امیدورا ماین دفعه سوالم ارسال بشه دفعه چندمه دارم سعی میکنم.
ممنون

ACorvinus
جمعه 01 مرداد 1389, 15:57 عصر
سلام عزیز.

اگه منظورتون پنجره هایی مثل FontDialog، OpenFileDialog، SaveFileDialog هستش میتونین اینجوری ازش نمونه گرفته و نمایشش بدین:

private void btnFontDialog_Click(object sender, EventArgs e)
{
FontDialog objFD = new FontDialog();
objFD.ShowDialog();
}

اگه منظورتون یه چیز دیگه هستش که قطعا اینجوریه، لطفا درخواستتونو بیشتر توضیح بدین.
موفق باشین.

ricky22
جمعه 01 مرداد 1389, 16:25 عصر
منظورشون پست بالایی نبود.
------------------
به چه منظور می خواهید استفاده کنید از اون پنجره ها؟

محسن شامحمدی
جمعه 01 مرداد 1389, 18:06 عصر
برای استفاده از پنجره های ویندوز می تونید از توابع api مربوط به اون استفاده کنید .
مثلا برای پنجره خصوصیات فایل باید از تابع ShellExecuteEX استفاده کنی.

یک مثال با وی بی 6 می زنم شاید به دردتون بخوره

'------Typing New data For Propertis File---------------------
Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type
'---------------Conset For Propertis Dialog-------------------
Public Const SEE_MASK_INVOKEIDLIST = &HC
Public Const SEE_MASK_NOCLOSEPROCESS = &H40
Public Const SEE_MASK_FLAG_NO_UI = &H400
Public Const ATTR_NORMAL = 0
Public Const ATTR_READONLY = 1
Public Const ATTR_HIDDEN = 2
Public Const ATTR_SYSTEM = 4
Public Const ATTR_VOLUME = 8
Public Const ATTR_DIRECTORY = 16
Public Const ATTR_ARCHIVE = 32
'-----------------------Declareing API------------------------------------------
Declare Function ShellExecuteEX Lib "shell32.dll" Alias _
"ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long





Dim SEI As SHELLEXECUTEINFO
With SEI
.cbSize = Len(SEI)
.fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI
.hwnd = OwnerhWnd
.lpVerb = "properties"
.lpFile = FileName
.lpParameters = vbNullChar
.lpDirectory = vbNullChar
.nShow = 0
.hInstApp = 0
.lpIDList = 0
End With
ShellExecuteEX SEI

ucnazard
جمعه 01 مرداد 1389, 21:40 عصر
یه برنامه نوشتم واسه جست وجوی فایلهای تکراری پروژه فینالمه
واسه کلیک راست اسم فایلها میخام properties هم بذارم ونمیخام فرم واسش طراحی کنم میخام خود پنجره های ویندوز رو استفاده کنم اگه میشه یه نمونه تو سی شارپ واسم بذارید ممنون میشم
کپی و حذفم واسه همینطور کار یعنی موقع کپی و حذف فایل ازش استفاده کنم.!!!!!

محسن شامحمدی
جمعه 01 مرداد 1389, 22:23 عصر
این هم همون سورس به زبان VB.Net

http://anuraj.wordpress.com/2008/07/03/file-properties-dialog-box-using-vbnet/

ucnazard
شنبه 02 مرداد 1389, 00:11 صبح
سی شارپیش رو پیدا کردم
اینم کدش
private const int SW_SHOW = 5;
private const uint SEE_MASK_INVOKEIDLIST = 12;
[DllImport("shell32.dll")]
static extern bool ShellExecuteEx(ref SHELLEXECUTEINFO lpExecInfo);
[StructLayout(LayoutKind.Sequential)]
public struct SHELLEXECUTEINFO
{
public int cbSize;
public uint fMask;
public IntPtr hwnd;
[MarshalAs(UnmanagedType.LPStr)]
public string lpVerb;
[MarshalAs(UnmanagedType.LPStr)]
public string lpFile;
[MarshalAs(UnmanagedType.LPStr)]
public string lpParameters;
[MarshalAs(UnmanagedType.LPStr)]
public string lpDirectory;
public int nShow;
public IntPtr hInstApp;
public IntPtr lpIDList;
[MarshalAs(UnmanagedType.LPStr)]
public string lpClass;
public IntPtr hkeyClass;
public uint dwHotKey;
public IntPtr hIcon;
public IntPtr hProcess;
}
public static void ShowFileProperties(string Filename)
{
SHELLEXECUTEINFO info = new SHELLEXECUTEINFO();
info.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(info );
info.lpVerb = "properties";
info.lpFile = Filename;
info.nShow = SW_SHOW;
info.fMask = SEE_MASK_INVOKEIDLIST;
ShellExecuteEx(ref info);
}

ucnazard
شنبه 02 مرداد 1389, 00:37 صبح
من کد زیر رو واسه copy dialog پیدا کردم اما کار نمیکنه

using Microsoft.VisualBasic.FileIO;
FileSystem.CopyDirectory(source file, des file, UIOption.AllDialogs);
ngdga ]di??