माइक्रोसॉफ्ट ऑफिस दस्तावेजों का उपयोग कैसे करें, मेरे मामले में: पावरपॉइंट प्रस्तुतियों, प्रतिबंधित अनुमतियां हो सकती हैं। मैं प्रोग्रामेटिक रूप से कैसे पता लगा सकता हूं, मेरे कोड को किसी दिए गए दस्तावेज़ पर कौन सा अनुमति है?मैं कौन हूं? माइक्रोसॉफ़्ट ऑफिस अनुमति/उपयोगकर्ताप्रमिशन
सभी मैं इस विषय पर MSDN पर पा सकते हैं यह है:
Sub test()
Dim perm As Office.Permission
Set perm = ActivePresentation.Permission
Debug.Print "Enabled=" & perm.Enabled
If perm.Enabled Then
Debug.Print "PermissionFromPolicy=" & perm.PermissionFromPolicy
Debug.Print "PolicyName='" & perm.PolicyName & "'"
Debug.Print "PolicyDescription='" & perm.PolicyDescription & "'"
Dim uperm As Office.UserPermission
For Each uperm In perm
Debug.Print uperm.UserId & ", " & uperm.Permission
Next uperm
End If
End Sub
: http://msdn.microsoft.com/en-us/library/aa432118.aspx
अगर मैं निम्नलिखित कोड चलाने के लिए, मैं उन है कि दिए गए दस्तावेज़ की अनुमतियां की एक सूची प्राप्त नमूना उत्पादन:
Enabled=True
PermissionFromPolicy=False
PolicyName='Do Not Distribute'
PolicyDescription='Permission is currently restricted. Only specified users can access this content.'
[email protected], 64
[email protected], 33
[email protected], 33
"अनुमति" एक बिटमैप परिभाषा है जिसके लिए मैं माइक्रोसॉफ्ट के सार्वजनिक कॉम हेडर फाइल में पाया जाता है:
enum MsoPermission
{
msoPermissionView = 1,
msoPermissionRead = 1,
msoPermissionEdit = 2,
msoPermissionSave = 4,
msoPermissionExtract = 8,
msoPermissionChange = 15,
msoPermissionPrint = 16,
msoPermissionObjModel = 32,
msoPermissionFullControl = 64,
msoPermissionAllCommon = 127
};
फिर भी, यह मुझे नहीं बताता कि मेरे कोड की कौन सी विशेष अनुमतियां हैं। अगर मैं केवल जानता हूं कि मैं कौन हूं (UserPermission.UserId के संदर्भ में), मैं अनुमति ऑब्जेक्ट में मेरी अनुमतियां देख सकता था। लेकिन मुझे उस जानकारी की जानकारी नहीं मिल रही है। मैं क्या खो रहा हूँ?
विंडोज उपयोगकर्ता नाम (उस विंडोज मशीन पर वर्तमान उपयोगकर्ता के लिए लॉगिन नाम) प्राप्त करने के ज्ञात तरीके हैं। दुर्भाग्यवश, यह उपयोगकर्ता आईडी नहीं है जिस पर जांच की जाती है जब PowerPoint यह तय करता है कि मेरे पास दस्तावेज़ पर कौन सी अनुमतियां हैं। जोर देने के लिए: पावरपॉइंट एक यूआई प्रदान करता है जो मुझे रन टाइम पर "मैं कौन हूं" बदलने देता हूं। जाहिर है, यह लॉगिन उपयोग नाम नहीं बदलता है (यानी, ADVAPI द्वारा लौटाया गया नाम)। उपयोगकर्ता नाम PowerPoint का जिक्र है, माइक्रोसॉफ्ट के पासपोर्ट के माध्यम से पहचाना/अधिकृत है।
अग्रिम धन्यवाद!
वोल्कर
आह, सदियों पुरानी सवाल "मैं कौन हूँ?"। हमेशा के बाद "मैं यहाँ क्या कर रहा हूँ?" और अन्य महत्वपूर्ण दार्शनिक प्रश्न, सभी "जीवन, ब्रह्मांड और सबकुछ" पर आ रहे हैं। आप जानते हैं कि यह सबसे अच्छा अंतिम आर्किटेक्चर के लिए अंतहीन खोज में केवल गिरावट है जो इसका उत्तर देगा। हां, यह सब कुछ शून्य हो जाएगा, क्योंकि हम सभी को जवाब पता है, फिर भी इसके महत्व को समझ नहीं सकते हैं। (यह 42 है, क्योंकि आपको पूछना था ...) –