Bunu daha önce inceledikten sonra, sorduğun şeyi kolayca yapmak mümkün değildir. Karşılaştığım en kolay çözüm, sağ tıklama bağlam menüsüne özel bir komut eklemek ve istediğiniz alanları içeren özel bir form başlatmak için kullanmak. Bununla birlikte, bu hala kolay değildir ve çalışması için tüm etki alanı denetleyicilerinin özel koda sahip olmasını gerektirir.
İlgileniyorsanız, özel bir formun yanı sıra bir bağlam menüsünün nasıl oluşturulduğunu anlatan bir bağlantı: http://reddini.blogspot.com/2011/07/additional-active-directory-context.html
Benim durumumda, düzen çok daha esnek olduğundan VBA yerine özel formum için bir HTA dosyası kullanmayı seçtim. Bunun diğer tarafı, kullanıcıların, kullanmış olabileceğiniz herhangi bir özel AD özelliğine kolayca erişmelerini sağlar.
Benim yarattığım form bu. Bunu AD'nin alan içermediği 3 veriyi yakalamak için kullanıyoruz. Bu değerleri özel özelliklere kaydederiz.
İşte yukarıdaki pencere için kullandığım kod. Tabii ki ihtiyaçlarınıza göre ayarlamaya ihtiyacınız olacak. Varolan değerler, içerik menüsünün sağladığı komut satırı argümanlarından geçirilir.
<html>
<head>
<title>Employee Information</title>
<HTA:APPLICATION ID='Info'
SingleInstance='Yes'
SysMenu='No'
MaximizeButton='No'
MinimizeButton='No'
CloseButton='Yes'
SCROLLFLAT ='No'
SCROLL='No'
Border='Thin'
BORDERSTYLE ='simple'
INNERBORDER ='No'
Caption='Yes'
WindowState='Maximized'
APPLICATIONNAME='Employee Info'
Icon='%Windir%\explorer.exe'>
</head>
<SCRIPT LANGUAGE="VBScript">
window.resizeTo 410,340
Dim objSelectedUser
Dim args
Sub Window_OnLoad
args = Split(Info.commandline,"""")
Birthday.Value = "error"
HireDate.Value = "error"
EpicorID.Value = "error"
Set objSelectedUser = GetObject(args(3))
EpicorID.Value = objSelectedUser.epicorID
Birthday.Value = objSelectedUser.employeeBirthday
HireDate.Value = objSelectedUser.employeeHireDate
End Sub
Sub TestSub
if EpicorID.Value <> "" Then
objSelectedUser.Put "epicorID",EpicorID.Value
end if
if Birthday.Value <> "" Then
objSelectedUser.Put "EmployeeBirthday",Birthday.Value
end if
if HireDate.Value <> "" Then
objSelectedUser.Put "EmployeeHireDate",HireDate.Value
end if
objSelectedUser.SetInfo
MsgBox("Settings Saved")
Close
End Sub
Sub CloseWindow
Close
End Sub
</SCRIPT>
<body style="background:rgb(242,242,242); font-family:Calibri;">
<center>
<h3>Employee Information</h3>
<p style="border:solid 1px;">Current values are displayed. Enter new values and click "Save" to overwrite the old values.
Click "Cancel" to exit without making changes. Dates should be entered as MM/DD/YYYY.</p>
<table>
<tr>
<td align="right">Epicor ID:</td>
<td><input type="text" name="EpicorID" size="10"></td>
</tr>
<tr>
<td>Employee Birthdate:</td>
<td><input type="text" name="Birthday" size="20"></td>
</tr>
<tr>
<td>Employee Hire Date</td>
<td><input type="text" name="HireDate" size="20"></td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td align="right"><input id=runbutton type="button" value="Save" name="run_button" onClick="TestSub" style="width:100%;"></td>
<td><input id=runbutton type="button" value="Cancel/Exit" name="run_button" onClick="CloseWindow" style="width:100%;"></td>
</tr>
</table>
</center>
</body>