You would need to add another button to close the ui and a refresh statement after you select the color.
#target Photoshop
var doc = activeDocument;
var dlg = new Window('dialog','Set Stroke Color');
dlg.strokeBtn = dlg.add('button',undefined,'Set Stroke Color');
dlg.ok = dlg.add('button',undefined,'Okay');
dlg.strokeBtn.onClick = function(){
getColor ()
app.refresh()
}
dlg.ok.onClick = function(){dlg.close()}
dlg.show()
function getColor(){
var cP = showColorPicker()
if(cP){
var r = foregroundColor.rgb.red
var g = foregroundColor.rgb.green
var b = foregroundColor.rgb.blue
makeStoke (r, g, b)
}
}
function makeStoke(redC,greenC,blueC) {
var idsetd = charIDToTypeID( "setd" );
var desc6 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref1 = new ActionReference();
var idPrpr = charIDToTypeID( "Prpr" );
var idLefx = charIDToTypeID( "Lefx" );
ref1.putProperty( idPrpr, idLefx );
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref1.putEnumerated( idLyr, idOrdn, idTrgt );
desc6.putReference( idnull, ref1 );
var idT = charIDToTypeID( "T " );
var desc7 = new ActionDescriptor();
var idScl = charIDToTypeID( "Scl " );
var idPrc = charIDToTypeID( "#Prc" );
desc7.putUnitDouble( idScl, idPrc, 416.666667 );
var idFrFX = charIDToTypeID( "FrFX" );
var desc8 = new ActionDescriptor();
var idenab = charIDToTypeID( "enab" );
desc8.putBoolean( idenab, true );
var idpresent = stringIDToTypeID( "present" );
desc8.putBoolean( idpresent, true );
var idshowInDialog = stringIDToTypeID( "showInDialog" );
desc8.putBoolean( idshowInDialog, true );
var idStyl = charIDToTypeID( "Styl" );
var idFStl = charIDToTypeID( "FStl" );
var idOutF = charIDToTypeID( "OutF" );
desc8.putEnumerated( idStyl, idFStl, idOutF );
var idPntT = charIDToTypeID( "PntT" );
var idFrFl = charIDToTypeID( "FrFl" );
var idSClr = charIDToTypeID( "SClr" );
desc8.putEnumerated( idPntT, idFrFl, idSClr );
var idMd = charIDToTypeID( "Md " );
var idBlnM = charIDToTypeID( "BlnM" );
var idNrml = charIDToTypeID( "Nrml" );
desc8.putEnumerated( idMd, idBlnM, idNrml );
var idOpct = charIDToTypeID( "Opct" );
var idPrc = charIDToTypeID( "#Prc" );
desc8.putUnitDouble( idOpct, idPrc, 100.000000 );
var idSz = charIDToTypeID( "Sz " );
var idPxl = charIDToTypeID( "#Pxl" );
desc8.putUnitDouble( idSz, idPxl, 250.000000 );
var idClr = charIDToTypeID( "Clr " );
var desc9 = new ActionDescriptor();
var idRd = charIDToTypeID( "Rd " );
//desc9.putDouble( idRd, 229.000002 ); original line
desc9.putDouble( idRd, redC );
var idGrn = charIDToTypeID( "Grn " );
//desc9.putDouble( idGrn, 17.062257 ); original line
desc9.putDouble( idGrn, greenC );
var idBl = charIDToTypeID( "Bl " );
//desc9.putDouble( idBl, 17.062257 ); original line
desc9.putDouble( idBl, blueC );
var idRGBC = charIDToTypeID( "RGBC" );
desc8.putObject( idClr, idRGBC, desc9 );
var idoverprint = stringIDToTypeID( "overprint" );
desc8.putBoolean( idoverprint, false );
var idFrFX = charIDToTypeID( "FrFX" );
desc7.putObject( idFrFX, idFrFX, desc8 );
var idLefx = charIDToTypeID( "Lefx" );
desc6.putObject( idT, idLefx, desc7 );
executeAction( idsetd, desc6, DialogModes.NO );
}