嗨,我最近安装了Visual Studio 2012并转换了一个使用头文件的项目:
#include <mapi.h>
#include <mapix.h>
#include <mapiutil.h>
Run Code Online (Sandbox Code Playgroud)
我看到新的include目录是在C:\Program Files (x86)\Windows Kits\8.0\Include\um但它只有mapi.h头文件而不是其他两个我得到的错误无法打开文件.
任何想法?谢谢
一直在四处寻找,我似乎无法找到解决方案.
问题:我有一个.reg文件,我需要在安装过程中将它添加到注册表中.我正在使用WIX 3.5.我无法使用Registrykey等手动添加它,因为我的客户可能已更改其内容.
有任何想法吗?
谢谢
我已经阅读了关于这个问题的许多答案,但我的问题是询问我放置代码的位置.我希望验证一个数字大于100 edittextPreference.这是我用来填充优先顺序的代码:
public class SettingsFrag extends PreferenceFragment{
//Override onCreate so that the code will run when the activity is started.
@Override
public void onCreate(Bundle savedInstanceState){
//Call to the super class.
super.onCreate(savedInstanceState);
//add the preferences from the XML file.
addPreferencesFromResource(R.xml.preferences);
}
Run Code Online (Sandbox Code Playgroud)
}
它在这里我添加验证还是我必须创建另一个类?
的preferences.xml:
<EditTextPreference
android:key="geofence_range"
android:title="Geofence Size"
android:defaultValue="500"
android:inputType="number"
android:summary="Geofence Size Around User Location"
android:dialogTitle="Enter Size (meters):" />
Run Code Online (Sandbox Code Playgroud) 嗨,我是c ++的新手,所以我不确定这是不是一个非常愚蠢的问题.基本上我正在使用c ++自定义操作项目与我的MSI安装程序进行交互.我得到了一个我的用户将输入的属性,它是一个整数.我需要确保这是8的倍数,我不知道如何解决这个问题.显然,如果它可以被8除以它是一个倍数,但我不知道如果有剩余的话如何捕获.任何帮助将不胜感激,甚至指向正确的方向.谢谢
您好我正在尝试检查用户计算机上的COM端口,然后通过c ++中的自定义操作将它们插入到列表框中.虽然它没有显示信息,但当我调试它时,它说的是"功能无法执行"这是我的列表框的Wix代码:
<Control Id="ListBoxID" Type="ListBox" Property="COMPORT" Width="80" Height="40" X="80" Y="165" Indirect="no">
<ListBox Property="COMPORT">
</ListBox>
<Condition Action="hide">(DEVICETYPE = "1")</Condition>
<Condition Action="show">(DEVICETYPE = "2")</Condition>
<Condition Action="show">(DEVICETYPE = "3")</Condition>
<Condition Action="hide">(DEVICETYPE = "4")</Condition>
</Control>
Run Code Online (Sandbox Code Playgroud)
这是我的自定义操作:
extern "C" UINT __stdcall GetDatascanPort(MSIHANDLE hInstall)
{
HRESULT hr = S_OK;
UINT er = ERROR_SUCCESS;
HKEY keyHandle;
DWORD i,openStatus,cb_value_buffer,cb_buffer,dwType;
char value_buffer[100],buffer[10];
MSIHANDLE hTable = NULL;
MSIHANDLE hColumns = NULL;
MSIDBERROR insertError = MSIDBERROR_NOERROR;
hr = WcaInitialize(hInstall, "GetDatascanPort");
ExitOnFailure(hr, "Failed to initialize");
WcaLog(LOGMSG_STANDARD, "Initialized.");
if (RegCreateKeyEx( HKEY_LOCAL_MACHINE,
"HARDWARE\\DEVICEMAP\\SERIALCOMM",
0, …Run Code Online (Sandbox Code Playgroud) 您好我正在尝试使用以下更改配置文件中的值设置:
<Component Id="Enable32BitAppPoolComponent" Guid="*" Directory="INSTALLLOCATION">
<CreateFolder/>
<util:XmlConfig Id="Enable32BitAppPool" Node="value"
ElementPath="//configuration/system.applicationHost/applicationPools/add[\[]@name='DefaultAppPool'[\]]/@enable32BitAppOnWin64"
File="[inetsrv]\config\applicationHost.config"
Value="true" On="install"/>
</Component>
Run Code Online (Sandbox Code Playgroud)
此代码不会更改applicationHost.config文件中的值.我尝试添加action="create"但我在安装过程中遇到错误,无法打开XML文件.我究竟做错了什么?
嗨,我有一个C / C ++头文件,其产品版本信息初始化如下:
#define nMajorVersion 4
#define nMinorVersion 4
#define nPointVersion 8
#define nBuildVersion 33
#define s_szFileVersion "4.4.8.33"
#define s_szProductVersion "4.4.8.33"
Run Code Online (Sandbox Code Playgroud)
我可以通过wix 3.6安装程序自动读取此文件以更新版本号吗?目前,我已经对其进行了硬编码,这对于发布时并不理想。谢谢
我正在使用此功能从我的msi调用可执行文件。但是,可执行文件的窗口隐藏在我的MSI窗口后面。有什么办法可以把它带到前面。很抱歉nobe问题,但是我已经尝试在调用之前最小化所有窗口,ShellExecute但是仍然不能将可执行窗口置于最前面。谢谢
extern "C" UINT __stdcall InstallDrivers(MSIHANDLE hInstall)
{
HRESULT hr = S_OK;
UINT er = ERROR_SUCCESS;
HANDLE hFile = INVALID_HANDLE_VALUE;
BYTE* pbData = NULL;
DWORD cbData = 0;
char pwzFilename[MAX_PATH], szDriverType[MAX_PATH], pwzSentinelFilename[MAX_PATH], szIsInstalled[MAX_PATH];
LPWSTR szValueBuf = NULL, szIsHaspInstalled = NULL, szIsSentinelInstalled = NULL;
hr = WcaInitialize(hInstall, "InstallDrivers");
ExitOnFailure(hr, "Failed to initialize");
WcaLog(LOGMSG_STANDARD, "Initialized.");
WcaLog(LOGMSG_STANDARD, "%s", szValueBuf);
CreateDirectory("C:\\Temp", NULL);
strcpy_s(pwzFilename, "C:\\Temp\\HASPUserSetup.exe");
hr = ExtractBinary(L"Hasp", &pbData, &cbData);
ExitOnFailure(hr, "failed to extract binary data");
if ((hFile = CreateFile(pwzFilename, GENERIC_WRITE,FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, …Run Code Online (Sandbox Code Playgroud) 嗨,我想在谷歌地图上显示一个按钮,有人可以告诉我如何实现这一点,因为我尝试了不同的位置,我的按钮显示在地图后面.
到目前为止这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/BlanchedAlmond" >
<Button
android:id="@+id/startActivityButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center_vertical"
android:onClick="startActivity"
android:text="@string/start_activity"
android:layout_alignParentBottom="true" />
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/startActivityButton"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 我有一个请求,我知道很多人会大喊大叫,但我没有任何其他方法.在我的WIX设置中,我有一个对话框,它使用设置中设置的属性来确定与我们的算法和需要生成的锁码相关的产品名称(版本类型等).根据这些,用户输入解锁密钥,自定义操作从所有三个文本框中提取详细信息以确保其正确无误.我没有编写用于创建这些的算法,遗憾的是无法改变它.
我的问题是我需要能够在此对话框之前在注册表中创建产品密钥,以便我的锁码算法可以从中读取.所以基本上我需要提升自定义操作.我在某处读到有人实现了一个自定义动作来调用msiexec但现在我找不到它而且不知道如何创建它.有没有人遇到过同样的问题?我一直在读人们有,但我似乎无法找到他们的解决方案,即使有一个解决方案.提前致谢