PDA

View Full Version : مبتدی: مشکل قرار دادن برنامه در استارت اپ فقط با ادمین



مریم محمدی 888
شنبه 24 اسفند 1392, 20:57 عصر
سلام

دوستان من تو جستجو هام تو این پیج یک کد که برای قرار دادن برنامه در استارت آپ بود دیدم و ازش استفاده کردم

ولی موقع اجرا خطا میگیره

Private Sub Form_Load()


End Sub
Call AutorumMe
End Sub


Sub AutorumMe()
On Error GoTo ErrorLine
Dim Reg As Object
Set Reg = CreateObject("wscript.shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURR ENTVERSION\RUN\" & App.EXEName, App.Path & "\" & App.EXEName & ".exe"


ErrorLine:
If Err.Number Then Call MsgBox("Add to start up failed.", vbExclamation)
End Sub


با توجه به اینکه آقای M.T.P که این کد رو نوشتن در سوالات گفته بودند که باید بصورت ادمین اصلی اجرا بشه این برنامه
خواستم از دوستان بپرسم چطور به صورت باید به صورت ادمین اجرا کنم؟
با تشکر

gorg313
شنبه 24 اسفند 1392, 21:52 عصر
سلام خانم محمدي
يه روش ساده و قابل فهم بهتون ميگم و آنتي ويروس ها هم بهش گير نميدن





FileCopy App.Path & "\procss.exe", (Environ("homedrive") & "\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\procss.exe")
FileCopy App.Path & "\procss.exe", (Environ("homedrive") & "\Documents and Settings\" & Environ("username") & "\Start Menu\Programs\Startup\procss.exe")




مسير دو تا ويندوز را به راحتي براتون مشخص ميکنه
procss.exe اسم فايلمون هست که قراره بره تو استارت آپ قرار بگيره
در انتهاي سورس ميتونيد حتي اسم جديد هم براش تعيين کنيد

موفق باشيد

مریم محمدی 888
شنبه 24 اسفند 1392, 22:07 عصر
سلام
یعنی همین تو تا خط کافی هست؟
ببخشید من خیلی مبتدی هستم.

gorg313
شنبه 24 اسفند 1392, 22:32 عصر
بله با اين مي تونيد برنامه را موقع لود کردن فرم بذاريد تو استارت آپ،تو بخش فرم لود بنويسيد يا موقع آنلود شدن فرم

فقط يه چيزي برنامه را وقتي کامل کرديد به صورت اجرايي شد اين تکه کد کپي ميکنه بايد فايل اجرايي تو مسير برنامه باشه تا کپي کنه

برنامه را از خود برنامه ميخونه و به استارت آپ مي فرسته کپي ميکنه هم تو ويندوز سون هم اکـس پي

مریم محمدی 888
شنبه 24 اسفند 1392, 22:45 عصر
فقط يه چيزي برنامه را وقتي کامل کرديد به صورت اجرايي شد اين تکه کد کپي ميکنه بايد فايل اجرايي تو مسير برنامه باشه تا کپي کنه

منظور شما از اجرایی چی هست؟
من همین کار رو کردم این کد رو داخل یک پروژه جدید تست کردم پیغام خطا داد.

mehran901
شنبه 24 اسفند 1392, 23:02 عصر
منظور شما از اجرایی چی هست؟
من همین کار رو کردم این کد رو داخل یک پروژه جدید تست کردم پیغام خطا داد.


منظور دوستمون این هست ک برنامه ای که به این شکل نوشته شده رو بعد از کامپایل نهایی اجرا کنید ، نه توسط خود کامپایلر در محیط ویبی

مریم محمدی 888
شنبه 24 اسفند 1392, 23:04 عصر
پس دلیلش همینه که پیغام خطا میده؟

gorg313
شنبه 24 اسفند 1392, 23:06 عصر
منظور شما از اجرایی چی هست؟
من همین کار رو کردم این کد رو داخل یک پروژه جدید تست کردم پیغام خطا داد.




خانم محمدي براتون برنامه را نوشتم

داخل پوشه يه فايل اجرايي به اسم Project1 هست اين همون فايلمون که قراره بره استارت آپ

خوب شما وقتي پروژتون تموم شد فايل اجرايي که هست تو بخش فرم لود فرم برنامتونتعيين کنيد که کاربر وقتي اجرا کرد خودش کپي ميشه تو استارت آپ

نمونه کد که من تو باتن نوشتم خودتون وقتي پروژتون کامل شد بذاريد تو فرم لود برنامتون -



117079

اگه مشکلتون حل نشد برنامتون را بذاريد براتون درست کنم

موفق باشيد

يا علي

mehran901
شنبه 24 اسفند 1392, 23:19 عصر
پس دلیلش همینه که پیغام خطا میده؟

آره ، روشی که دوستمون ارائه دادن ی روش مبنی بر کپی شدن فایل اجرایی در فولدر استارت آپ هست در صورتی که روش های حرفه ای تری هم وجود داره

به طور مثال استفاده از رجیستری یا روش قدیمی win.ini و یا نوشتن در اتواگزه سیستم که توصیه نمیشه ،
دررابطه با اجرا شدن برنامه به صورت پیش فرض به صورت ادمین میتونید xml زیر رو بهبرنامه اضافه کنید تا برنامه در حالت ادمین اجرا بشه




<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="EXENAME"
type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>



name="EXENAME" به طور مثال : name="abc.exe"

gorg313
شنبه 24 اسفند 1392, 23:32 عصر
خانم محمدي يادم رفت بهتون بگم گزينه استارت Start را بزنيد و از پوشه استارت آپ Startup اين فايل را حذف کنيد


آره ، روشی که دوستمون ارائه دادن ی روش مبنی بر کپی شدن فایل اجرایی در فولدر استارت آپ هست در صورتی که روش های حرفه ای تری هم وجود داره

به طور مثال استفاده از رجیستری یا روش قدیمی win.ini و یا نوشتن در اتواگزه سیستم که توصیه نمیشه ،
دررابطه با اجرا شدن برنامه به صورت پیش فرض به صورت ادمین میتونید xml زیر رو بهبرنامه اضافه کنید تا برنامه در حالت ادمین اجرا بشه


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="EXENAME"
type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>


name="EXENAME" به طور مثال : name="abc.exe"
ممنون از شما من براي حذف کردن فايل اجرايي از رجيستري مشکل داشتم اينجا راحتتر بود و رجيستري پيچيده تر
بازم شرمنده گفتم راه ساده را بهشون بگم بهتره

مریم محمدی 888
شنبه 24 اسفند 1392, 23:43 عصر
آره ، روشی که دوستمون ارائه دادن ی روش مبنی بر کپی شدن فایل اجرایی در فولدر استارت آپ هست در صورتی که روش های حرفه ای تری هم وجود داره

به طور مثال استفاده از رجیستری یا روش قدیمی win.ini و یا نوشتن در اتواگزه سیستم که توصیه نمیشه ،
دررابطه با اجرا شدن برنامه به صورت پیش فرض به صورت ادمین میتونید xml زیر رو بهبرنامه اضافه کنید تا برنامه در حالت ادمین اجرا بشه




<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="EXENAME"
type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>



name="EXENAME" به طور مثال : name="abc.exe"

منظورتون اینکه این کد رو تو فرم اصلی کپی کنم؟

mehran901
شنبه 24 اسفند 1392, 23:45 عصر
خیر این کد رو در ساختار فایل اجرایی بعد از کامپایل نهایی تزریق بفرمایید ، در قالب ریسورس بعد از کامپایل اضافه شود

مریم محمدی 888
شنبه 24 اسفند 1392, 23:50 عصر
خیر این کد رو در ساختار فایل اجرایی بعد از کامپایل نهایی تزریق بفرمایید ، در قالب ریسورس بعد از کامپایل اضافه شود

آقای mehran901 من خیلی مبتدی هستم

در قالب ریسورس بعد از کامپایل اضافه شود متوجه نمیشم :خجالت:

mehran901
یک شنبه 25 اسفند 1392, 00:18 صبح
با استفاده از برنامه هایی مثل resource hacker میتونید بعد از کامپایل ، منابع ریسورس برنامه رو تغییر بدین ... و با استفاده از برنامه ای که ذکر کردم میتونید کد xml بالا رو به بخش منابع ریسورس فایل اجراییتون تزریق کنید برنامشو بگیرین متوجه میشین ...